В определенный момент мне захотелось чтобы на каждой странице отображался список тэгов, так как это упрощает навигацию по контенту.
У Zola есть красивый сайт с документацией, но покрытие примерами довольно слабое. И именно работу с тэгами авторы обошли стороной.
В документации есть два тематических раздела Taxonomies. Первый про настройку в конкретных постах, а второй про использование в шаблонах.
Таксоно́мия (от др.-греч. τάξις — строй, порядок и νόμος — закон) — учение о принципах и практике классификации и систематизации
Разделы содержат три вида сущностей:
Например, мне нужно выводить тэги к посту сразу под его заголовком (frontmatter).
В файле-конфигурации темы theme.toml
нужно подключить taxonomies:
taxonomies = [ {name = "tags", rss = true} ]
В шаблоне page.html
добавить HTML-код
Каждая страница имеет глобальную переменную page
, которая содержит словарь taxonomies
.
Чтобы достучаться до тэгов, нужно обратиться к одноименному ключу - tags
.
Результат будет содержать массив тэгов.
Затем использовать цикл for чтобы пробежаться по списку.
Например, вот так:
{% for tagName in page.taxonomies['tags'] %} <a class="btn btn-tiny btn-light" href="/tags/{{tagName}}/">{{tagName}}</a> {% endfor %}
Настроить тэги для поста
Во frontmatter-части файла с постом нужно добавить описание тэгов. Например, вот так:
[taxonomies] tags = ["zola"]
Пример отображения тэгов вы можете увидеть сразу под заголовком данной статьи.
По тэгу zola вы можете найти другие статьи из этого цикла.