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>