Eleventy(11ty)可以有父母和孩子的收藏吗?

时间:2019-11-27 16:27:56

标签: javascript html handlebars.js liquid eleventy

我希望能够使用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>

我知道eleventy-navigation,但看来您也只能对此进行一级导航。

1 个答案:

答案 0 :(得分:0)

据我所知,集合仅深度一层,因此您无法进行collections.parent.child。您可以动态创建集合,以便拥有collections.europe和collections.northamerica。然后,您可以将第二个内部循环切换为这样的内容:

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

这有意义吗?

为了使此功能正常运行,我应该添加您的子帖子,应使用前置事项来设置其父项,例如:continent: europe