Jekyll for 循环遍历 frontmatter 数组返回两次
Jekyll for loop over frontmatter array returning twice
使用 Jekyll 3.8.5(Github 页)。
我已经建立了一个集合 _resources,其中包含这样的文件:
---
title: Resource 1
categories:
- title: cat3
level: 1
- title: cat2
level: 2
---
我正在使用简单的 Liquid for 循环遍历类别及其数据:
<ul>
{% for category in resource.categories %}
<li> Category: {{ category.title }} | Level: {{ category.level }}</li>
{% endfor %}
</ul>
预期结果应该是:
<ul>
<li> Category: cat3 | Level: 1</li>
<li> Category: cat2 | Level: 2</li>
</ul>
相反,我得到了额外的 <li>
元素:
<ul>
<li> Category: cat3 | Level: 1</li>
<li> Category: cat2 | Level: 2</li>
<li> Category: | Level: </li>
<li> Category: | Level: </li>
</ul>
我使用 {{ categories.size }}
检查并返回 4
所以,我确定我的 YAML 格式有问题,因为 Jekyll 认为有两个额外的类别。
我尝试删除 YAML 中的连字符,但 Jekyll 抛出错误:
no implicit conversion of Hash into Array
非常感谢收到任何帮助。
谢谢,
马克
tag
、tags
、category
和 categories
对于集合中的文档(包括帖子)具有特殊含义。
Jekyll 期望文档的 tag
和 category
属性是简单的字符串并且
属性 tags
和 categories
为简单数组。
您可以尝试将 categories
键换成其他键,比如 foobars
..
然后,如果更新后的 Liquid 循环呈现预期的标记,则一切就绪。将 foobars
替换为更合适的标签。
如果问题仍然存在,则说明您的布局/包含有问题。
使用 Jekyll 3.8.5(Github 页)。
我已经建立了一个集合 _resources,其中包含这样的文件:
---
title: Resource 1
categories:
- title: cat3
level: 1
- title: cat2
level: 2
---
我正在使用简单的 Liquid for 循环遍历类别及其数据:
<ul>
{% for category in resource.categories %}
<li> Category: {{ category.title }} | Level: {{ category.level }}</li>
{% endfor %}
</ul>
预期结果应该是:
<ul>
<li> Category: cat3 | Level: 1</li>
<li> Category: cat2 | Level: 2</li>
</ul>
相反,我得到了额外的 <li>
元素:
<ul>
<li> Category: cat3 | Level: 1</li>
<li> Category: cat2 | Level: 2</li>
<li> Category: | Level: </li>
<li> Category: | Level: </li>
</ul>
我使用 {{ categories.size }}
检查并返回 4
所以,我确定我的 YAML 格式有问题,因为 Jekyll 认为有两个额外的类别。
我尝试删除 YAML 中的连字符,但 Jekyll 抛出错误:
no implicit conversion of Hash into Array
非常感谢收到任何帮助。
谢谢,
马克
tag
、tags
、category
和 categories
对于集合中的文档(包括帖子)具有特殊含义。
Jekyll 期望文档的 tag
和 category
属性是简单的字符串并且
属性 tags
和 categories
为简单数组。
您可以尝试将 categories
键换成其他键,比如 foobars
..
然后,如果更新后的 Liquid 循环呈现预期的标记,则一切就绪。将 foobars
替换为更合适的标签。
如果问题仍然存在,则说明您的布局/包含有问题。