hugo 如何在 terms.html 中对标签和类别进行排序

hugo how to sort tags and categories in terms.html

根据文档,我的 layouts/_default/terms.html 模板如下所示:

{{ range .Pages }}
<li>
    <a href="{{ .Permalink }}">{{ .Title }}</a>
</li>
{{ end }}

我的标签或类别(取决于我是在 /tags/ 还是 /categories/)列出所有 tags/categories 但不是按字母顺序排列。

如何排序?我试过像这样 {{ range sort .Pages }} 添加 sort 关键字,但它不起作用。知道如何按 .Title 对它们进行排序吗?

您需要指定 属性 才能排序到 sort function。由于您正在遍历标签页列表,因此您可能希望使用页面标题(即标签名称):

{{ range (sort .Pages "Title") }}
<li>
    <a href="{{ .Permalink }}">{{ .Title }}</a>
</li>
{{ end }}

如果您希望列表的顺序相反,请将 "desc" 作为第三个参数传递给 sort 函数。

减少混乱:

{{range .Pages.ByTitle}} 
<li>
    <a href="{{ .Permalink }}">{{ .Title }}</a>
</li>
{{ end }}

文档:https://gohugo.io/templates/lists/#by-title