在Jekyll中访问_data(循环循环)

Wol*_*lfr 5 liquid jekyll

鉴于此YAML:

- maincategory:
    title: "Projects"
    subcategory:
        title: "General"
        item:
          title: "Alpha"
        item:
          title: "Beta"

- maincategory:
    title: "Support"
    subcategory:
        title: "General"
        item:
          title: "Something"
        item:
          title: "Else"
Run Code Online (Sandbox Code Playgroud)

如果Jekyll _data文件称为entrys.yml,如何对这些数据进行迭代?

到目前为止,我已经到了这里,但是我不确定是否应该继续在子循环中引用site.data对象。也不确定这是否可能。

  {% for entry in site.data.entries %}
    <h2>{{ entry.maincategory.title }}</h3>
    {% for subcategory in site.data.entries.maincategories %}
      <h3>{{ entry.maincategory.subcategory.title }}</h3>
      <ul>
      {% for item in site.data.entries.maincategory.subcategories %}
        <li><a href="{{ item.href }}">{{ item.title }}</a></li>
      {% endfor %}
    </ul>
    {% endfor %}
  {% endfor %}
Run Code Online (Sandbox Code Playgroud)

需要明确的是,这是我要结束的地方(明智的输出):

<!-- Loop over every main category -->
<h2>Main category title</h2>
<!-- Loop over every sub category within main category -->
<h3>Subcategory title</h3>
<ul>
  <!-- Loop over every item in this subcategory -->
  <li><a href="#">Item title</a>
</li>
Run Code Online (Sandbox Code Playgroud)

Chr*_*cht 5

YAML:

- title: "Projects"
  subcategories:
    - title: "project-sub1"
      items:
        - title: "project-sub1-item1"
          href: "#"
        - title: "project-sub1-item2"
          href: "#"
    - title: "project-sub2"
      items:
        - title: "project-sub2-item1"
          href: "#"
        - title: "project-sub2-item2"
          href: "#"

- title: "Support"
  subcategories:
   - title: "support-sub1"
     items:
      - title: "support-sub1-item1"
        href: "#"
      - title: "support-sub1-item2"
        href: "#"
Run Code Online (Sandbox Code Playgroud)

嵌套循环:

{% for entry in site.data.entries %}
  <h2>{{ entry.title }}</h2>
  {% for subcategory in entry.subcategories %}
    <h3>{{ subcategory.title }}</h3>
    <ul>
    {% for item in subcategory.items %}
      <li><a href="{{ item.href }}">{{ item.title }}</a></li>
    {% endfor %}
    </ul>
  {% endfor %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

输出:

<h2>Projects</h3>

  <h3>project-sub1</h3>
  <ul>
    <li><a href="#">project-sub1-item1</a></li>
    <li><a href="#">project-sub1-item2</a></li>
  </ul>

  <h3>project-sub2</h3>
  <ul>
    <li><a href="#">project-sub2-item1</a></li>
    <li><a href="#">project-sub2-item2</a></li>
  </ul>

<h2>Support</h3>

  <h3>support-sub1</h3>
  <ul>
    <li><a href="#">support-sub1-item1</a></li>
    <li><a href="#">support-sub1-item2</a></li>
  </ul>
Run Code Online (Sandbox Code Playgroud)