For loop Jekyll中的嵌套液体循环不会相应地迭代多个子项

For 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 我想在每一行的表格中显示公司名称以及标记。现在我正在使用此解决方案: 代码

我有一个包含公司的.yml文件。每个公司都有子项,每个子项也有标签。看起来是这样的:

YAML

- 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>