Grav 模板 -- Twig 未列出 child 个页面

Grav template -- Twig not listing child pages

我用这样的分类法在 grav 中制作了几页。

- Home (category type)
- programming (category type)
- stuff (category type)
    - stuff1 (page type)
    - stuff2 (page type)
    - stuff3 (page type)

我还制作了一个名为 "category" 的模板类型,希望它能抓取指向 stuff1/2/3 的所有链接,并将它们作为链接放在 "stuff" 页面上。我的代码看起来有点像这样:

    {% block body %}
        {% block content %}
        <ul>
            {% for p in self.children %}
                <li><a href="{{p.url}}">{{ p.title }}</a></li>
            {% endfor %}
        </ul>
        {% endblock %}
    {% endblock %}

最终目标是为 children 获取一个简单的链接列表,指向如下类别:

<ul>
   <li><a href="/stuff1">stuff1</a></li>
   <li><a href="/stuff2">stuff2</a></li>
   <li><a href="/stuff3">stuff3</a></li>
</ul>

我已经尝试使用 page.children、self.children 和其他一些东西,但似乎没有任何东西可以按照我想要的方式工作。

如有任何帮助,我们将不胜感激。

恐怕我不太明白你所说的 'category type' 和'页面类型...

Page Collections 上的文档可能很有帮助。

示例: 如果您想要一个带有模板 'category.html.twig' 的页面,该页面显示包含特定类别(或标签)的所有页面的 URL 列表,您可以执行以下操作:

  1. 创建页面'category.md' 在 frontmatter 中定义类别集合:

    content:
      items:
        '@taxonomy.category': mycategory
    
  2. 创建模板 'category.html.twig' 包含:

    <ul>
      {% for p in page.collection() %}
        <li><a href="{{p.url}}">{{p.title}}</a></li>
      {% endfor %}
    </ul>
    

生成的页面将如下所示:

<ul>
    <li><a href="/site-stack">Home</a></li>
    <li><a href="/site-stack/blog/hero-classes">Body & Hero Classes</a></li>
</ul>