我正在尝试根据FilePath对内容进行排序。我希望FilePath优先于链接标题。我正在创建一个带有教程的文档站点,这些教程将包含有序的内容。我希望文件结构与教程的顺序相匹配(例如01_getting_started.md、2_setup.md等)。我更喜欢依赖文件路径命名,而不是定义两次序列信息(在文件路径和权重前面)。
发布于 2019-05-31 01:38:22
更新: @Jura有一个更简洁的解决方案:
{{ range sort site.RegularPages "File.Path" }}
{{ . }}
{{ end }}
给定以下内容:
content/
├── 01_getting_started.md
├── 02_setup.md
└── 03_configuration.md
然后这个模板代码:
{{ $pages := slice }}
{{ range site.RegularPages }}
{{ $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
。
https://stackoverflow.com/questions/56378051
复制相似问题