Я использую Jekyll на страницах GitHub, и я хочу иметь такие иерархические категории, как это:
- животные → млекопитающие → кошки → _posts → housecat.md, tiger.md
- животные → млекопитающие → собаки → _posts → poodle.md, doberman.md
- животные → рептилии → ящерицы → _posts → iguana.md, chameleon.md
Я хочу, чтобы пользователи могли посещать /animals
и просматривать список всех сообщений из каждой категории. Но если они пойдут на /animals/mammals
, они будут видеть только млекопитающих. Если они идут к /animals/mammals/cats
, то они видят только кошек.
Я знаю, что могу сделать это вручную, поместив файл index.html
в каждый отдельный каталог, а затем, например, перейдя через site.categories.mammals
или site.categories.cats
.
Но это кажется немного слишком грубой силой, и я надеюсь, что там лучший способ. Если я хочу изменить, как я показываю списки, мне придется изменить это в каждой отдельной подкатегории. У меня также будут проблемы, когда подкатегории имеют общее имя, например /ABC/XYZ/_posts/one.md
и /DEF/XYZ/_posts/two.md
.
Я попытался выполнить эту статью, в которой используется одна главная страница category.html
, которая проходит через page.category
:
{% for post in site.categories.[page.category] %}
<h2><a href=""></a></h2>
<p></p>
{% endfor %}
Затем каждый файл index.html
использует это как свой макет. Это почти работает, но, похоже, ограничено одной категорией, а не несколькими иерархическими категориями.
Существует ли менее грубый подход к созданию списков для иерархических категорий?