7

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

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

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

然后在 pages-listing 页面中,它应该是这样的:

page listing
 * parent1
   * son1
   * son2
 * parent2

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

我该怎么做?

非常感谢。

4

1 回答 1

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 %}

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

可能编写插件更容易。

于 2013-06-22T14:09:05.167 回答