yaml - Jekyll for 循环遍历 frontmatter 数组返回两次
问题描述
使用 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 会抛出一个错误:
没有将哈希隐式转换为数组
非常感激地收到任何帮助。
谢谢,
标记
解决方案
tag
, tags
,category
并且categories
对于集合中的文档(包括帖子)具有特殊含义。
Jekyll 期望文档tag
和category
属性是简单的字符串和属性tags
以及categories
简单的数组。
您可以尝试将categories
密钥交换为其他内容foobars
.. 然后,如果您更新的 Liquid 循环呈现预期的标记,则一切就绪。替换foobars
为更合适的标签。
如果问题仍然存在,则您的布局/包含有问题。
推荐阅读
- react-native - 如何在导航 5 中制作自定义标题栏?
- php - 删除 myaccount 页面中的 WooCommerce noindex 元数据
- c - 分配 struct file_operations 字段时从不兼容的指针类型初始化
- c - 将C中文件中的每个单词都大写
- xpath - xpath:如果类别是类型,我怎么能得到然后得到别墅
- pandas - 2个时间序列数据帧之间的相关性
- react-native - 无法读取未定义 [React Native] 的属性“getUserMedia”
- angular - 如何将 Firestore 数据映射到 Ionic / Angular 应用程序中的打字稿界面?
- prismjs - 如何正确地将 PrismJS 集成到 Eleventy 项目中?
- python - Tkinter Bugs wrt 向菜单栏添加多个按钮