部分和内容的嵌套列表 - Hugo

Nested list of sections and content - Hugo

我有一系列包含食谱的嵌套部分,按菜肴类型分组,例如:

content
└─ recipes
   ├─ _index.md
   ├─ bread
   │  ├─ _index.md
   │  ├─ beer_rolls.md
   │  ├─ ciabatta.md
   │  └─ potato_bread.md
   ├─ dessert
   │  ├─ _index.md
   │  ├─ chocolate_brownies.md
   │  ├─ elderberry_pie.md
   │  └─ victoria_sponge_cake.md
   └─ mains
      ├─ _index.md
      ├─ bean_chilli.md
      ├─ braised_leeks.md
      └─ yorkshire_pudding.md

我想为 content/recipes/_index.md 编写一个 list.html,以生成反映 recipes/ 中目录结构的嵌套列表,这样列表的第一层链接到小节例如breaddessert,列表的第二层链接到各个食谱,例如bread/beer_rolls.mdmains_bean_chilli.md.

list.html 包含什么?我是否需要多个 list.html 文件,每个嵌套小节一个?

this example 的帮助下,我构建了以下系统,对我来说效果很好:

layouts/recipes/list.html 我包括了这个:

{{ if (eq .Title "Recipes") }}
  <ul class="postlist">
    {{ range .Sections.ByTitle }}
      <li>            
        <a href="{{ .RelPermalink }}">{{ .Title }}</a>
        {{ partial "recursive.html" . }}
      </li>
    {{ end }}
  </ul>
{{ else }}
  <ul class="postlist">
    {{ range .RegularPages }}
    <li>
      <a href="{{ .RelPermalink }}">{{ .Title | markdownify }}</a>
    </li>
    {{ end }}
  </ul>
{{ end }}

layouts/partials/recursive.html 中我包括了这个:

{{ $child_pages := union .Sections .Pages }}
<ul>
  {{ range $child_pages.ByTitle }}
  <li>                                    
    <a href="{{ .RelPermalink }}"> {{ .Title }} </a>
    {{ if or (.Sections) (.Pages) }}
    {{ partial "recursive.html" . }}
    {{ end }}
  </li>
  {{ end }}
</ul>

content/recipes/_index.md 看起来像这样:

---
title: "Recipes"
---

例如 content/recipes/drinks/_index.md 看起来像这样:

---
title: "Drinks"
---

这会在 ./recipes 生成一个页面,其中包含一个分组列表,其中第一级包含指向更多列表页面的链接(例如 ./recipes/bread),这些页面本身包含指向该组中食谱的链接. ./recipes.

上的所有食谱也列在其父组下方