Обновление: @ 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
.