变量范围如何在Hugo中用于不同的页面?
我可以将此代码添加到themes\[theme name]/layouts/_default/list.html
,在我的主页上列出帖子标题:
<ul>
{{ range .Data.Pages.ByPublishDate }}
<li>
{{ .Title }}
</li>
{{ end }}
</ul>
然而,独立页面content/archive.md
中的相同代码不会产生任何效果。如何获取独立页面以列出/post
文件夹中的条目?
答案 0 :(得分:2)
.Data
对象的范围限定为在其中调用的内容类型。要访问不同类型的内容,请使用可以访问.Site
对象的.Pages
对象。该对象包含所有内容类型的所有页面。只需使用where函数where .Site.Pages "Type" "post"
过滤所需的内容类型。
所以你的代码变成了:
<ul>
{{ range (where .Site.Pages.ByPublishDate "Type" "post") }}
<li>
{{ .Title }}
</li>
{{ end }}
</ul>