如何在 Jekyll 中拥有多个可迭代目录?

How to have multiple iterable directories in Jekyll?

在 Jekyll 中,帖子被写入并存储在 _posts 目录中。

创建帖子索引的 Jekyll 教程的一部分是:

<ul>
  {% for post in site.posts %}
    <li>
      <a href="{{ post.url }}">{{ post.title }}</a>
    </li>
  {% endfor %}
</ul>

我想要的是拥有另一个包含文本文件的目录,并能够创建一个 "index" 类似于用于帖子的目录。我需要的字段是 titlecontent.

我不想用posts的原因是因为我已经在用了

这可行吗?

是的,你可以!

两个选项:collections or page

两者都可以在前面有一个title变量,还有一个content.

Collections

设置好 collection 后(例如:mycollection),您只需使用 :

生成索引
<ul>
{% for item in site.mycollection %}
  <li><a href="{{ site.baseurl }}{{ item.url }}">{{ item.title }}</a></li>
{% endfor %}
</ul>

页数

您可以使用可以在前端使用自定义变量排序的页面,例如:

---
title: my page
mycustomvar: true
---

通过执行 {% assign custompages = site.pages | where: "mycustomvar", true %},您将获得包含设置为 true 的自定义变量的页面数组。

然后你只需要在这个数组中循环来生成你的索引:

{% assign custompages = site.pages | where: "mycustomvar", true %}
<ul>
{% for item in custompages %}
  <li><a href="{{ site.baseurl }}{{ item.url }}">{{ item.title }}</a></li>
{% endfor %}
</ul>