Я бы не стал использовать посты для этой цели (как предлагает yaitloutou). Я бы прочитал иерархию из структуры каталогов (решение 1) или создал две отдельные коллекции (решение 2). Вы можете позволить коллекциям из решения 2 использовать один и тот же макет, если хотите.
1. Использование страниц
Создайте структуру каталогов со страницами index.md и переберите версию Jekyll с именем «site.pages», чтобы создать меню.
index.md
topic-a/index.md
content-1/index.md
content-2/index.md
content-3/index.md
topic-b/index.md
content-1/index.md
content-2/index.md
content-3/index.md
И перебрать все страницы следующим образом:
<ul>
{% assign sitepages = site.pages | sort: 'order' %}
{% for sitepage in sitepages %}
<li {% if page.url == sitepage.url %} class="active"{% endif %}>
<a href="{{ sitepage.url }}">{{ sitepage.title }}</a>
</li>
{% endfor %}
</ul>
Если вам нужна вложенная структура, вы можете сделать что-нибудь подобно этому. Или, если вам нужны только результаты по теме A, вы можете сделать это:
<ul>
{% assign sitepages = site.pages | sort: 'order' %}
{% for sitepage in sitepages %}
{% if sitepage.url contains 'topic-a' %}
<li {% if page.url == sitepage.url %} class="active"{% endif %}>
<a href="{{ sitepage.url }}">{{ sitepage.title }}</a>
</li>
{% endif %}
{% endfor %}
</ul>
2. Использование коллекций (самое простое решение и самая быстрая сборка)
Создайте тему коллекции A и создайте другую тему коллекции B. Ваш файл конфигурации должен выглядеть следующим образом:
collections:
topic-a:
output: true
permalink: /topic-a/:path/
topic-b:
output: true
permalink: /topic-b/:path/
Вывод элементов одной темы происходит следующим образом:
{% assign atopics = site.topic-a | sort: 'order' %}
{% for atopic in atopics %}
<li {% if page.url == atopic.url %} class="active"{% endif %}>
<a href="{{ atopic.url }}">{{ atopic.title }}</a>
</li>
{% endfor %}
</ul>
Вы должны создать каталоги _topic-a и _topic-b с вашими файлами content-1.md, content-2.md и т. д.
Обратите внимание, что оба решения имеют переменные YML, называемые «порядок», для определения порядка появления элементов/страниц. Это выглядит так:
---
title: mytitle
layout: mylayout
order: 50
---
mycontent
person
JoostS
schedule
19.01.2017