Антон Малявский Антон Малявский

Закреплённые посты в Hugo

24 апреля 2024 г.

Иногда нужно прикрепить старые, но интересные посты на главной странице или в разделах. Можно переписывать шаблон лент и добавлять параметр типа pinned, но это сложно. Мы будем пользоваться стандартными средствами Hugo — сортировкой по весу поста weight.

Фрагмент кода в файле index.html.

GO
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. Дополнительное удобство в том, что с помощью числа можно сортировать закреплённые сообщения.

YAML
1Title: Post title 
2weight: 10

Убрать пост с главной страницы  Ссылка на этот раздел

Иногда удобно закрепить старый пост в разделе, но скрыть с главной страницы т.к. туда попадают посты отовсюду. Для этого используем "(where (where .Site.RegularPages "Type" "post") ".Params.hiddenfromhomepage" "!=" true)

Источники  Ссылка на этот раздел

Есть что сказать? Напишите мне!
Комментировать по почте
Понравилось? Подпишитесь на меня!
RSS Телеграм