如何列出/ folder1 / folder2 / _post / in jekyll中的所有帖子?

时间:2016-06-22 21:50:22

标签: jekyll

我有一个这样的文件夹:

tutorials/
├── machine_learning
│   └── scikit_learn
│       ├── index.html
│       └── _post
│           └── 2014-09-22-my-title.md
└── web_design
    ├── index.html
    └── _post
        └── 2010-02-11-my-title.md

我希望jekyll列出/ tutorials / machine_learning / scikit_learn / _post中的所有帖子。怎么做?

我试过了site.categories.tutorials.machine_learning.scikit_learn。它不起作用。

感谢。

1 个答案:

答案 0 :(得分:1)

杰基尔的魔术类别。

任何帖子都会在类别数组中添加文件夹层次结构名称。

我们有两个帖子:

  • folder1 > _posts> YYYY-MM-DD-的一个 .MD
  • folder1 > folder2 > _posts> YYYY-MM-DD-的 2 .MD

发布一个将位于 folder1 类别中。

发布两个将位于 folder1 文件夹 2个类别中。

了解我们的文件夹层次结构,我们可以选择合适的级别

<ul>
  {% for post in site.categories["folder1"] %}
  <li>{{ post.title }}</li>
  {% endfor %}
</ul>
  • 使用site.categories [“ folder1 ”]我们收到帖子一个两个
  • 使用site.categories [“ folder2 ”]我们发布两个

这是一个简单的用例。

现在,让我们假设我们有一个层次结构:

.
├── steel
│   ├── brands
│   │   └── _posts
│   │       └── 2014-01-27-steel-brands.md
│   └── objects
│       └── _posts
│           └── 2014-01-27-steel-objects.md
└── wood
    ├── brands
    │   └── _posts
    │       └── 2014-01-27-wood-brands.md
    └── objects
        └── _posts
            └── 2014-01-27-wood-objects.md

如果我们想要木制品,我们不能简单地在 site.categories [“对象”] 中循环,因为我们也会收到帖子来自钢铁对象

为了只获得木制物品,我们可以这样做:

<ul>
  {% for post in site.categories["objects"] %}
    {% if post.categories contains "wood" %}
      <li>{{ post.title }}</li>
    {% endif %}
  {% endfor %}
</ul>

注意:始终使用 post.categories 。从不使用 post.category ,这是错误的。