Как отобразить список тэгов в Zola

.
Время чтения — 2 мин.
zola

В определенный момент мне захотелось чтобы на каждой странице отображался список тэгов, так как это упрощает навигацию по контенту.

alt text

У Zola есть красивый сайт с документацией, но покрытие примерами довольно слабое. И именно работу с тэгами авторы обошли стороной.

В документации есть два тематических раздела Taxonomies. Первый про настройку в конкретных постах, а второй про использование в шаблонах.

Таксоно́мия (от др.-греч. τάξις — строй, порядок и νόμος — закон) — учение о принципах и практике классификации и систематизации

Разделы содержат три вида сущностей:

Настройка

Например, мне нужно выводить тэги к посту сразу под его заголовком (frontmatter).

  1. В файле-конфигурации темы theme.toml нужно подключить taxonomies:

    taxonomies = [
        {name = "tags", rss = true}
    ]
    
  2. В шаблоне 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 %}
    
  3. Настроить тэги для поста
    Во frontmatter-части файла с постом нужно добавить описание тэгов. Например, вот так:

    [taxonomies]
    tags = ["zola"]
    

Пример отображения тэгов вы можете увидеть сразу под заголовком данной статьи.

Другие статьи про Zola

По тэгу zola вы можете найти другие статьи из этого цикла.