1

我希望能够使用Eleventy拥有父集合和子集合,然后我可以循环创建导航。

我目前在一个名为 的集合中有一些帖子,continents前面的内容显示如下:

---
title: Europe
tags: continents
---

我循环创建链接列表:

<ul class="parent-list">
  {% for post in collections.continents %}
    <li><a href="{{ post_url | post }}">{{ post.data.title}}</a></li>
  {% endfor %}
</ul>

是否可以有一个子集合continents?例如countries?如果是这样,这些数据需要在哪里添加到我的主题中?

能够像这样遍历集合会很棒:

<ul class="parent-list">
  {% for post in collections.continents %}
    <li><a href="{{ post_url | post }}">{{ post.data.title}}</a></li>
    <ul class="child-list">
      {% for post in collections.countries %}
        <li><a href="{{ post_url | post }}">{{ post.data.title}}</a></li>
      {% endfor %}
    </ul>
  {% endfor %}
</ul>

我知道有110 个导航,但看起来你也只能有一个级别的导航。

4

1 回答 1

1

据我所知,集合只有一层深,所以你不能这样做collections.parent.child。您可以动态创建集合,例如拥有 collections.europe 和 collections.northamerica。然后,您可以将第二个内部循环切换为如下内容:

{% for post in collections.countries[post.data.title] %}

那有意义吗?

我应该补充一点,为了使它起作用,你的子帖子应该使用前面的内容来设置他们的父母,比如:continent: europe

于 2019-12-04T16:40:03.377 回答