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

son*_*gyy 7 jekyll jekyll-extensions jekyll-bootstrap

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

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

pages
 |-> parent1
      |-> index.html
      |-> son1.html
      |-> son2.html
 |-> parent2
      |-> index.html
Run Code Online (Sandbox Code Playgroud)

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

page listing
 * parent1
   * son1
   * son2
 * parent2
Run Code Online (Sandbox Code Playgroud)

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

我该怎么办?

非常感谢.

Pol*_*ome 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
Run Code Online (Sandbox Code Playgroud)

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

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

{% for page in site.pages %}            
    {{ page.url | split:'/' | join:'+'}}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

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

可能编写插件更容易。