Сейчас у нас есть домашняя страница, на которой показаны наши последние 5 сообщений, которые мы написали. Когда мы щелкаем ссылку, она переводит нас на полную страницу этого сообщения.
Но что, если мы хотим увидеть список всех наших сообщений?
Вот тут-то и пригодится шаблон для списков от Hugo.
Шаблон
Создай файл с именем list.html внутри папки layouts/_default.
Структура твоего проекта должна выглядеть так:
my-blog
├── archetypes
| └── default.md
├── content
| └── posts
| └── my-first-post.md
├── data
├── layouts
| ├── _default
| | ├── summary.html
| | ├── single.html
| | ├── list.html
| | └── baseof.html
| └── index.html
├── static
├── themes
└── config.toml
Открой новый файл list.html и вставь следующее:
{{ define "main" }}
<main>
<header>
<h1>{{ .Title }}</h1>
</header>
<div>
{{ range .Pages }}
{{ .Render "summary" }}
{{ end }}
</div>
</main>
{{ end }}
Ты заметишь, что это очень похоже на наш шаблон домашней страницы, но с одним большим отличием.
Наш шаблон домашней страницы использовал функцию first 5 для отображения наших первых 5 сообщений, но в этом шаблоне мы не используем эту функцию, поэтому мы будем отображать все наши сообщения.
Чтобы убедиться, что этот шаблон работает, сохрани изменения и посети локальный сервер разработки по адресу localhost:1313/posts.
Если твой сервер разработки работает на другом порту (выводится после запуска hugo serve), замени 1313 номером твоего порта.
Элемент в списке публикаций
Ты также можешь заметить, что мы повторно используем наш шаблон summary.html на этой странице. Это гарантирует нам, что наше форматирование на домашней странице будет точно такое же, как и на странице со списком публикаций, потому что мы используем точно такой же код.
Примечание о пути
Тебе может быть быть интересно, почему мы должны зайти в /posts в нашем браузере, чтобы увидеть наши сообщения. Это потому, что мы помещаем наши сообщения в папку posts в нашей папке content.
Папка content в Hugo особенная, потому что она создает пути на основе имен папок и файлов внутри. Если мы поместим наши сообщения в папку с названием recipes, тогда, чтобы увидеть все наши рецепты, нам нужно будет перейти по пути/recipes.
Hugo будет использовать шаблон list.html всякий раз, когда внутри папки content есть другая папка.
Для получения дополнительной информации о том, что ты можешь делать на страницах list, ознакомься с документацией Hugo о шаблонах для списков.