如何在Hugo中按FilePath订购内容?

时间:2019-05-30 12:08:27

标签: templates hugo static-site

我正在尝试基于FilePath订购内容。我希望FilePath优先于链接标题。我正在创建一个文档站点,其中包含将按顺序排列的内容的教程。我希望文件结构与教程的顺序相匹配(例如01_getting_started.md,2_setup.md等)。我宁愿依靠文件路径命名,而不是两次定义序列信息(在文件路径和权重前端)。

https://gohugo.io/templates/lists/#order-content

1 个答案:

答案 0 :(得分:0)

给出以下内容:

content/
├── 01_getting_started.md
├── 02_setup.md
└── 03_configuration.md

然后输入此模板代码:

{{ $pages := slice }}

{{ range .Pages }}
  {{ $pages = $pages | append (dict "page" . "file_path" .File.Path) }}
{{ end }}

{{ range sort $pages "file_path" }}
  {{ .page }}
{{ end }}

将输出页面,按文件路径排序:

  Page(/01_getting_started.md)

  Page(/02_setup.md)

  Page(/03_configuration.md)

它通过创建一个空切片(也称为数组)来工作。它遍历所有页面,将页面对象的字典(又称地图)及其文件路径附加到切片。然后按文件路径的升序对切片进行排序,并循环遍历。

然后,您可以像平常的.page一样对待.。因此.page.Title等同于.Title