为什么{{site.eggs.label}}不会为jekyll集合“egg”返回“eggs”?

时间:2017-03-08 11:04:35

标签: jekyll

config.yml定义了collectio eggs

collections:
  eggs:
    output: true

文件夹_eggs有一个带有前端内容的文档

我可以访问集合标签:

{{ site.collections[0].label }}

返回“鸡蛋”但不是这样

{{ site.eggs.label }}

没有返回任何内容:

{{ site.eggs }}

https://jekyllrb.com/docs/collections/#liquid-attributes上关于集合的文档对我来说没有多大意义:“集合也可以在site.collections下使用,并带有您指定的元数据”。在github的一个问题中,作者说,集合字段是(默默地)删除(https://github.com/jekyll/jekyll/issues/4392)。

我目前正在评估杰基尔,这会引起人们怀疑它的稳定性,最新的文档以及未来的其他陷阱。

我是否误解了文档?为什么以上对集合元数据的访问不起作用。

1 个答案:

答案 0 :(得分:1)

每个集合的元数据都可以通过site.collections获得,这意味着,它将返回包含元数据的集合数组。

如果直接访问集合,例如site.eggs,则不会有可用的元数据,而是所有集合文件的数组,即_eggs文件夹中的所有文件。

例如

要显示site.eggs的内容,您可以迭代每个文件,请考虑在/_eggs/item.yml

中包含以下文件
---
title: "Jekyll is awesome"
---

然后您可以在/index.yml中显示它:

{% for egg in site.eggs %}
{{egg.title}}
{% endfor %}

输出:

Jekyll is awesome