在Jekyll的一个文件夹下显示页面?

时间:2013-06-22 12:52:55

标签: jekyll jekyll-extensions jekyll-bootstrap

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

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

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

然后在页面列表页面中,它应该是这样的:

page listing
 * parent1
   * son1
   * son2
 * parent2

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

我该怎么做?

非常感谢。

1 个答案:

答案 0 :(得分:1)

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

然而,创建嵌套列表会更复杂。您可以在YAML Front Matter中对该结构进行epscify,或者使用帖子。

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

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

可能更容易编写插件。