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>