Закреплённые посты в Hugo
Иногда нужно прикрепить старые, но интересные посты на главной странице или в разделах. Можно переписывать шаблон лент и добавлять параметр типа pinned, но это сложно. Мы будем пользоваться стандартными средствами Hugo — сортировкой по весу поста weight.
Фрагмент кода в файле index.html.
1{{- define "content" -}}
2 <section id="posts" class="posts">
3 {{/* (index .Site.Paginate) */}}
4 {{- $paginator := .Paginate (where (where .Site.RegularPages "Type" "post") ".Params.hiddenfromhomepage" "!=" true) }}
5 {{- range $paginator.Pages -}}
6 {{ .Render "summary" }}
7 {{ end -}}
8 </section>Нас интересует строка, содержащая $paginator. Если строка есть, значит всё в порядке и мы можем сортировать сообщения штатными средствами Hugo, используя параметр weight. Дополнительное удобство в том, что с помощью числа можно сортировать закреплённые сообщения.
1Title: Post title
2weight: 10Убрать пост с главной страницы
Иногда удобно закрепить старый пост в разделе, но скрыть с главной страницы т.к. туда попадают посты отовсюду. Для этого используем "(where (where .Site.RegularPages "Type" "post") ".Params.hiddenfromhomepage" "!=" true)