嵌套导航

时间:2020-10-28 12:21:54

标签: eleventy

我的数据正在创建许多分页的帖子。我的主要问题如下:

---
pagination:
    data: cms
    size: 1
    alias: article
    addAllPagesToCollections: true
layout: "_base.njk"
tags: articles
permalink: "/articles/{{ article.title | slug }}/"
eleventyComputed:
    title: "{{ article.title }}" 
    eleventyNavigation:
        key: "{{ article.title}}"
        parent: "{{articles}}" //<-- how do I set the parent?
---

我想阅读我的导航HTML结构

<ul>
  <li>articles</li>
    <ul>
     <li>post-1</li>
     <li>post-2</li>
    </ul>
</ul>

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用来创建层次结构。

但还有一种另一种方法:将层次结构展平,并为每个节点分配一个描述嵌套级别的变量。

然后可以使用类似的代码(如下所示)来呈现该层次结构:

{% set level = 0 %}

{% for category in collections.categoryCollection %}

    {% set ulCount = (category.level - level) | abs %}

    {% for i in range(0, ulCount) %}
        {% if category.level > level %}
            <ul>
        {% else  %}
            </ul>
        {% endif %} 
    {% endfor %}

    <li>
        <a href="{{ category.categoryUri | url | normalize | firstPage(globals.categories.category.postPageSize) }}">
            {{ category.categoryName }} ( {{category.items.length}} / {{ category.allItems.length }} )
        </a>
    </li>

    {% set level = category.level %}

{% endfor %}

{% for i in range(0, level) %}
    </ul>
{% endfor %}

希望这有帮助,我知道它有效,用它们来得到这样的东西: enter image description here