【问题标题】:Show pages under one folder in Jekyll?在 Jekyll 的一个文件夹下显示页面?
【发布时间】:2013-06-19 12:16:37
【问题描述】:

我认为管理 Jekyll 页面的原生方式,即在根文件夹下创建 .md 文件/文件夹,有点混乱。

因此,我想将要显示的每一页放入名为“pages”的文件夹中。此外,我希望这些页面具有级联结构:假设我的文件夹具有以下结构:

pages
 |-> parent1
      |-> index.html
      |-> son1.html
      |-> son2.html
 |-> parent2
      |-> index.html

那么在pages-listing页面中,应该是这样的:

page listing
 * parent1
   * son1
   * son2
 * parent2

此外,不在 pages 文件夹下的其他 *.html 文件不应显示在此页面列表页面中。

我该怎么做?

非常感谢。

【问题讨论】:

    标签: jekyll jekyll-extensions jekyll-bootstrap


    【解决方案1】:

    没有什么能阻止你这样做。在上述场景中,yourdomain.tld/pages/pret1/son1.html 将是 parent1/son1 文件的 URL。

    但是,创建嵌套列表会更加复杂。您可以在 YAML Front Matter 中删除该结构,也可以使用帖子。

    pages
     |-> parent1
        |-> _posts/
          |-> index.html
          |-> son1.html
          |-> son2.html
     |-> parent2
        |->_posts
          |-> index.html
    

    => 这样您的文件将是 parent1 和 parent2 类别中的帖子,您可以通过显示类别及其内容来创建列表。

    如果您真的想在不使用帖子和类别的情况下显示树状结构,那么您将需要做更多的黑魔法。但幸运的是,Liquid 提供了一个split 过滤器,您可以使用它来将站点的路径分成多个块,例如

    {% for page in site.pages %}            
        {{ page.url | split:'/' | join:'+'}}
    {% endfor %}
    

    您不想加入它们(这纯粹是为了演示),而是要填充一个包含树结构的数组,然后再遍历该数组以显示目录树。这是可能的,但并不容易。而且我认为没有现成的东西。

    可能写一个插件更容易。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-01
      相关资源
      最近更新 更多