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

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

24 апреля 2024 г.

Иногда нужно прикрепить старые, но интересные посты на главной странице или в разделах. Можно переписывать шаблон лент и добавлять параметр типа 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)

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

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