Разбивка на страницы в Hugo не работает должным образом
Я хочу, чтобы в моей теме Hugo отображалось только 5 резюме сообщений на странице.
В моемconfig.toml
файл я поместил следующее значение:
pagination = 5
Мойthemes/<theme_name>/layouts/_default/list.html
выглядит так:
{{ define "main" }}
<div class="container">
<h1>{{ .Title }}</h1>
{{ range .Paginator.Pages.ByPublishDate.Reverse }}
<p>
<h3><a class="title" href="{{ .RelPermalink }}">{{ .Title }}</a></h3>
{{ partial "metadata.html" . }}
<p>{{ .Summary }}</p>
</p>
<a href="{{ .RelPermalink }}" className='text-decoration-none'><button type="button" class="btn btn-outline-danger">Read More</button></a>
{{ end }}
{{ template "_internal/pagination.html" . }}
</div>
{{ end }}
Что из всего, что я читал, включая документы, должно работать
Однако это не влияет на мою страницу сообщений, где отображается список сообщений. В настоящее время у меня есть 6 сообщений, и все сообщения перечислены на одной странице без отображения настроек разбиения на страницы. Нет ошибок, возвращаемых при выполненииhugo server -D
Я попытался удалить.ByPublishDate.Reverse
от значения диапазона, но это также не влияет
Я считаю, что пропустил что-то фундаментальное, но я не уверен, где искать дальше. Любая помощь будет оценена по достоинству.
1 ответ
Вы должны убедиться, что ваш шаблон list.html использует функцию .Paginate для фактического разбиения сообщений на страницы.
Замените строку {{ range .Paginator.Pages.ByPublishDate.Reverse }} на следующую:
{{ range (.Paginate (where .Data.Pages "Type" "post")).Pages }}
Это будет использовать функцию .Paginate для разбиения на страницы только страниц типа post (которые должны включать ваши сообщения в блоге), а затем перебирать каждую страницу сообщений с помощью функции .Pages.
Кроме того, вы можете изменить свой {{ шаблон "_internal/pagination.html" . }} для включения стилей и/или текста, чтобы было понятно, что нумерация страниц действует.
Пример:
<div class="pagination">
{{ if .Paginator.HasPrev }}
<a href="{{ .Paginator.Prev.URL }}">← Newer Posts</a>
{{ end }}
{{ if .Paginator.HasNext }}
<a href="{{ .Paginator.Next.URL }}">Older Posts →</a>
{{ end }}
</div>