For loop Jekyll中的嵌套液体循环不会相应地迭代多个子项
我有一个包含公司的.yml文件。每个公司都有子项,每个子项也有标签。看起来是这样的: YAMLFor loop Jekyll中的嵌套液体循环不会相应地迭代多个子项,for-loop,markdown,jekyll,liquid,For Loop,Markdown,Jekyll,Liquid,我有一个包含公司的.yml文件。每个公司都有子项,每个子项也有标签。看起来是这样的: YAML - name: acme subfolderitems: - item: books item-url: http://acme.com/books item-tag: - Nice book - Cool books - Wow books 我想在每一行的表格中显示公司名称以及标记。现在我正在使用此解决方案: 代码
- name: acme
subfolderitems:
- item: books
item-url: http://acme.com/books
item-tag:
- Nice book
- Cool books
- Wow books
我想在每一行的表格中显示公司名称以及标记。现在我正在使用此解决方案:
代码
<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>
我的问题是标记的循环没有按预期工作
输出
<table>
<tbody>
<tr>
<td>acme</td>
<td><span class="tag">Nice bookCool booksWow books</span></td>
</tr>
</tbody>
</table>
顶点
好书好书好书哇
理想的输出应该是这个Nice bookCool booksWow books
有什么建议吗?如果您使用
检查过滤器:
<span class="tag">{{ subfolderitem.item-tag | inspect }}</span>
{{subfolderitem.item-tag | inspect}
您可以看到标记数组是一次性打印的。
您需要添加另一个循环来逐个打印标记
<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>
{site.data.companys%中的公司为%s}
{company.subfolderitems%中的子文件夹项为%1}
{%if子文件夹item.item==page.ref%}
{{company.name}
{company.subfolderitems%中的子文件夹项为%1}
{子文件夹item.item-tag%中的标记为%1}
{{tag}}
{%endfor%}
{%endfor%}
{%endif%}
{%endfor%}
{%endfor%}
工作完美无瑕,我学到了一些新东西。非常感谢。由于我的数据库包含每个公司添加的多个子文件夹项,因此我在子文件夹项中的标记的{%if subfolderitem.item==page.ref%}
之前添加了{%if subfolderitem.item-tag%}
,以便在每个页面上显示正确的标记。
<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>