1

我有一个没有输出的 Jekyll 集合,但其中的元素显示在单个页面上,如下所示:

{% for element in site.collection %}
  {{ element.content }}
{% endfor %}

我希望能够做这样的事情:

{% for element in site.collection %}
  {{ element.content }}
  {% for front_matter in element %}
    <!-- do stuff -->
  {% endfor %}
{% endfor %}

这对于 YAML _data 文件中的 YAML 哈希是可能的,但在这里不起作用,因为它{{ element }}本身似乎与{{ element.content }}. 似乎没有为此指定任何变量,例如{{ element.front_matter }}. 是否可以循环遍历 jekyll 集合中元素的前面问题?

我知道这样做的理想方法是将我想要循环的所有 front_matter 包含在一个变量中,例如:

---
front_matter:
  foo: bar
  bar: foo
---

但是,当我试图将这些配对 (foobar) 配置为可以通过 prose.io 轻松更新时,它们不能嵌套在其他值下。如果散文有办法解决这个问题,我会接受这个答案。

非常感激!

4

1 回答 1

2

可以循环遍历 Jekyll 集合中元素的变量:

{% for items in site.my_collection %}
  {% for item in items %}
    {{ item }}: {{ items[item] }}
  {% endfor %}
{% endfor %}

但重要的是要记住还有其他可用的元数据,并将包含在迭代中,例如path,url等,以及您的首要事项,例如_my_collection/something.md

next:

path: _my_collection/something.md

output: <p></p>

url: /my_collection/something.html

id: /my_collection/something

content: <p></p>

collection: my_collection

relative_path: _my_collection/something.md

excerpt: <p></p>

previous:

draft: false

categories:

slug: something

ext: .md

tags:

date: 2017-05-23 14:43:57 -0300
于 2017-05-23T17:47:14.367 回答