Jekyll 中的嵌套液体循环不会正确地迭代多个子项
Nested liquid loop in Jekyll does not iterate multiple sub-items corrently
我有一个包含公司的 .yml 文件。每个公司都有子项,每个子项也有标签。它看起来像这样:
YAML
- name: acme
subfolderitems:
- item: books
item-url: http://acme.com/books
item-tag:
- Nice book
- Cool books
- Wow books
我想在每行的 table 中显示公司名称以及标签。现在我正在使用这个解决方案:
代码
<table>
{% for company in site.data.companies %}
{% for subfolderitem in company.subfolderitems %}
{% if subfolderitem.item == page.ref %}
<tr>
<td>{{ company.name }}</td>
<td>{% for subfolderitem in company.subfolderitems %}<span class="tag">{{ subfolderitem.item-tag }}</span>{% endfor %}</td>
</tr>
{% endif %}
{% endfor %}
{% endfor %}
</table>
Frontmatter(书籍)
---
layout: page
ref: books
title: Books
---
我的问题是标签循环没有按预期工作。
输出
<table>
<tbody>
<tr>
<td>acme</td>
<td><span class="tag">Nice bookCool booksWow books</span></td>
</tr>
</tbody>
</table>
期望的输出应该是这样 <span class="tag">Nice book</span><span class="tag">Cool books</span><span class="tag">Wow books</span>
有什么建议吗?
如果您使用 inspect
过滤器:
<span class="tag">{{ subfolderitem.item-tag | inspect }}</span>
可以看到tags数组是一次性打印出来的。
您需要添加另一个循环来逐个打印标签。
<table>
{% for company in site.data.companies %}
{% for subfolderitem in company.subfolderitems %}
{% if subfolderitem.item == page.ref %}
<tr>
<td>{{ company.name }}</td>
<td>{% for subfolderitem in company.subfolderitems %}
{% for tag in subfolderitem.item-tag %}
<span class="tag">{{ tag }}</span>
{% endfor %}
{% endfor %}</td>
</tr>
{% endif %}
{% endfor %}
{% endfor %}
</table>
我有一个包含公司的 .yml 文件。每个公司都有子项,每个子项也有标签。它看起来像这样:
YAML
- name: acme
subfolderitems:
- item: books
item-url: http://acme.com/books
item-tag:
- Nice book
- Cool books
- Wow books
我想在每行的 table 中显示公司名称以及标签。现在我正在使用这个解决方案:
代码
<table>
{% for company in site.data.companies %}
{% for subfolderitem in company.subfolderitems %}
{% if subfolderitem.item == page.ref %}
<tr>
<td>{{ company.name }}</td>
<td>{% for subfolderitem in company.subfolderitems %}<span class="tag">{{ subfolderitem.item-tag }}</span>{% endfor %}</td>
</tr>
{% endif %}
{% endfor %}
{% endfor %}
</table>
Frontmatter(书籍)
---
layout: page
ref: books
title: Books
---
我的问题是标签循环没有按预期工作。
输出
<table>
<tbody>
<tr>
<td>acme</td>
<td><span class="tag">Nice bookCool booksWow books</span></td>
</tr>
</tbody>
</table>
期望的输出应该是这样 <span class="tag">Nice book</span><span class="tag">Cool books</span><span class="tag">Wow books</span>
有什么建议吗?
如果您使用 inspect
过滤器:
<span class="tag">{{ subfolderitem.item-tag | inspect }}</span>
可以看到tags数组是一次性打印出来的。 您需要添加另一个循环来逐个打印标签。
<table>
{% for company in site.data.companies %}
{% for subfolderitem in company.subfolderitems %}
{% if subfolderitem.item == page.ref %}
<tr>
<td>{{ company.name }}</td>
<td>{% for subfolderitem in company.subfolderitems %}
{% for tag in subfolderitem.item-tag %}
<span class="tag">{{ tag }}</span>
{% endfor %}
{% endfor %}</td>
</tr>
{% endif %}
{% endfor %}
{% endfor %}
</table>