Как на HUGO (генератор статических сайтов) Сделать категории с подкатегориями?

Для того чтобы создать категории с подкатегориями на HUGO, вам понадобится использовать две основные концепции: секции и модули.

Секции представляют коллекции контента, которые можно использовать для организации контента на вашем сайте. Каждая секция может быть настроена с помощью параметра contentDir в файле config.toml. Например, чтобы создать секцию "articles", вы можете добавить следующую строку в свой файл config.toml:

[module]
path = "articles"
[[module.mounts]]
source = "content/articles"
target = "articles"

Теперь вы можете создать файлы Markdown в папке content/articles, которые будут относиться к этой секции.

Для того чтобы создать подкатегории, вам будет необходимо добавить папки внутри папки секции. Например, вы можете создать папку content/articles/news для подкатегории "новости" и content/articles/tutorials для подкатегории "руководства". Каждая подкатегория будет представлять отдельную папку внутри секции.

Затем вам необходимо создать макеты для отображения контента на страницах сайта. Вы можете создать базовый макет для секции articles в файле layouts/_default/section.html. Этот макет будет использоваться для отображения списка статей внутри этой секции.

Также вы можете создать макеты для каждой подкатегории внутри секции. Например, вы можете создать макет layouts/articles/news.html и layouts/articles/tutorials.html для отображения списка статей в каждой подкатегории.

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

Например, в макете layouts/articles/news.html вы можете добавить следующий код:

{{ range where .Site.Pages "Section" "articles" }}
  {{ if .Params.category | eq "news" }}
    <!-- отображение статьи -->
  {{ end }}
{{ end }}

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

Таким образом, вы можете организовать свой контент на сайте с использованием секций и подкатегорий на HUGO. Это позволит вам легко управлять и отображать контент в соответствии с вашей структурой категорий и подкатегорий.