如何在当前部分列出页面

时间:2017-03-17 22:34:36

标签: hugo

我正在尝试列出当前网址部分中的网页。

  • 获取所有部分
  • 将范围限制为当前章节
  • 列出当前章节中的页面
{{ range $value := .Site.Sections }}

    {{ range .Section }}

        {{ range $value.Pages }}
            <ul>
                <li>{{ .Title }}</li>
            </ul>
        {{ end }}

    {{ end }}

{{ end }}

虽然它返回null,因为{{ range .Section }}不是有效代码。

这样做的正确方法是什么?

https://gohugo.io/templates/variables/

1 个答案:

答案 0 :(得分:6)

您需要使用where function按部分过滤.Site.Pages。试试这个:

<ul>
{{ range where .Site.Pages "Section" .Section }}
  <li>{{ .Title }}</li>
{{ end }}
</ul>

如果要避免使用空列表,可以在输出ul标签之前将切片页面存储在变量中并检查其长度。

{{ $sectionPages := where .Site.Pages "Section" .Section }}
{{ if ge (len $sectionPages) 1 }}
  <ul>
    {{ range $sectionPages }}
      <li>{{ .Title }}</li>
    {{ end }}
  </ul>
{{ end }}