Saya tidak akan menggunakan postingan untuk tujuan ini (seperti yang disarankan yaitloutou). Saya akan membaca hierarki dari struktur direktori (solusi 1) atau membuat dua koleksi terpisah (solusi 2). Anda dapat membiarkan koleksi dari solusi 2 berbagi tata letak yang sama jika Anda menginginkannya.
1. Menggunakan halaman
Buat struktur direktori dengan halaman index.md dan ulangi verifikasi Jekyll yang disebut 'site.pages' untuk membuat menu.
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
Dan ulangi semua halaman seperti ini:
<ul>
{% assign sitepages = site.pages | sort: 'order' %}
{% for sitepage in sitepages %}
<li {% if page.url == sitepage.url %} class="active"{% endif %}>
<a href="/id{{ sitepage.url }}">{{ sitepage.title }}</a>
</li>
{% endfor %}
</ul>
Jika Anda menginginkan struktur bersarang, Anda dapat melakukan sesuatu seperti ini. Atau jika Anda hanya menginginkan hasil untuk Topik A, Anda dapat melakukan ini:
<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="/id{{ sitepage.url }}">{{ sitepage.title }}</a>
</li>
{% endif %}
{% endfor %}
</ul>
2. Menggunakan koleksi (solusi paling sederhana dan pembuatan tercepat)
Buat koleksi Topik A dan buat koleksi Topik B lainnya. File konfigurasi Anda akan terlihat seperti ini:
collections:
topic-a:
output: true
permalink: /topic-a/:path/
topic-b:
output: true
permalink: /topic-b/:path/
Mengeluarkan item dari satu topik berjalan seperti ini:
{% assign atopics = site.topic-a | sort: 'order' %}
{% for atopic in atopics %}
<li {% if page.url == atopic.url %} class="active"{% endif %}>
<a href="/id{{ atopic.url }}">{{ atopic.title }}</a>
</li>
{% endfor %}
</ul>
Anda harus membuat direktori _topic-a dan _topic-b dengan file content-1.md, content-2.md, dll.
Perhatikan bahwa kedua solusi memiliki variabel YML yang disebut 'urutan', untuk menentukan urutan tampilan item/halaman. Ini terlihat seperti ini:
---
title: mytitle
layout: mylayout
order: 50
---
mycontent
person
JoostS
schedule
19.01.2017