Обзор урока

Списки

Узнай, как использовать шаблон для списков, чтобы отображать нескольких элементов в Hugo.
Несколько минут 377 слов

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

Поделиться этой страницей