我正在尝试列出当前网址部分中的网页。
{{ range $value := .Site.Sections }}
{{ range .Section }}
{{ range $value.Pages }}
<ul>
<li>{{ .Title }}</li>
</ul>
{{ end }}
{{ end }}
{{ end }}
虽然它返回null,因为{{ range .Section }}
不是有效代码。
这样做的正确方法是什么?
答案 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 }}