Hugo 中不同页面的变量作用域是如何工作的?
How does variable scope work in Hugo for different pages?
Hugo 中不同页面的变量范围如何工作?
我可以通过将此代码添加到 themes\[theme name]/layouts/_default/list.html
来在我的主页上制作 post 个标题的列表:
<ul>
{{ range .Data.Pages.ByPublishDate }}
<li>
{{ .Title }}
</li>
{{ end }}
</ul>
然而,独立页面中的相同代码 content/archive.md
什么也没有产生。我如何获得一个独立页面来列出 /post
文件夹中的条目?
.Data
对象的范围限定为在其中调用它的内容类型。要访问不同类型的内容,请使用 .Site
对象,您可以在该对象上访问 .Pages
对象。该对象包含所有内容类型的所有页面。只需使用 where 函数 where .Site.Pages "Type" "post"
.
过滤您想要的内容类型
因此您的代码变为:
<ul>
{{ range (where .Site.Pages.ByPublishDate "Type" "post") }}
<li>
{{ .Title }}
</li>
{{ end }}
</ul>
Hugo 中不同页面的变量范围如何工作?
我可以通过将此代码添加到 themes\[theme name]/layouts/_default/list.html
来在我的主页上制作 post 个标题的列表:
<ul>
{{ range .Data.Pages.ByPublishDate }}
<li>
{{ .Title }}
</li>
{{ end }}
</ul>
然而,独立页面中的相同代码 content/archive.md
什么也没有产生。我如何获得一个独立页面来列出 /post
文件夹中的条目?
.Data
对象的范围限定为在其中调用它的内容类型。要访问不同类型的内容,请使用 .Site
对象,您可以在该对象上访问 .Pages
对象。该对象包含所有内容类型的所有页面。只需使用 where 函数 where .Site.Pages "Type" "post"
.
因此您的代码变为:
<ul>
{{ range (where .Site.Pages.ByPublishDate "Type" "post") }}
<li>
{{ .Title }}
</li>
{{ end }}
</ul>