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