Вот решение с отсортированными по алфавиту тегами на одной странице .
Он использует только жидкость, что означает, что он работает на GitHub Pages:
{% capture tags %}
{% for tag in site.tags %}
{{ tag[0] }}
{% endfor %}
{% endcapture %}
{% assign sortedtags = tags | split:' ' | sort %}
{% for tag in sortedtags %}
<h3 id="{{ tag }}">{{ tag }}</h3>
<ul>
{% for post in site.tags[tag] %}
<li><a href="{{ post.url }}">{{ post.title }}</a></li>
{% endfor %}
</ul>
{% endfor %}
Вы можете увидеть это в действии здесь .
EDIT:
Существует также способ создания отдельной страницы для каждого тега без плагинов (который будет работать на страницах GitHub) .
У меня есть более подробное объяснение в моем блоге:
Отдельные страницы для тега / категории с Jekyll (без плагинов)
Для начала вам нужен новый файл макета:
/_layouts/tagpage.html
---
layout: default
---
<h1>{{ page.tag }}</h1>
<ul>
{% for post in site.tags[page.tag] %}
<li>
{{ post.date | date: "%B %d, %Y" }}: <a href="{{ post.url }}">{{ post.title }}</a>
</li>
{% endfor %}
</ul>
С помощью этого файла макета вы можете добавить новую страницу тега, добавив новый файл, содержащий всего две строки текста YAML.
Вот пример для тега jekyll
:
/tags/jekyll/index.html
---
layout: tagpage
tag: jekyll
---
Единственный недостаток этого подхода: каждый раз, когда вы впервые используете новый тег, вы должны помнить, что для него необходимо создать новый двухстрочный файл.
Чтобы создать корневой индексный файл (т. Е. Список тегов, которые ссылаются на /tags/jekyll/index.html
и т. страница с алфавитно отсортированными тегами:
{% capture tags %}
{% for tag in site.tags %}
{{ tag[0] }}
{% endfor %}
{% endcapture %}
{% assign sortedtags = tags | split:' ' | sort %}
{% for tag in sortedtags %}
<a href="/tags/{{ tag }}/">{{ tag }}</a><br>
{% endfor %}
Будет сгенерирован список таких ссылок:
<ul>
<li><a href="/tags/.net/">.net</a></li>
<li><a href="/tags/authentication/">authentication</a></li>
<li><a href="/tags/backup/">backup</a></li>
</ul>
Обратите внимание, что в этом решении для разделения тегов используется пробел, поэтому он не работает, если ваши теги содержат пробелы, и Комментарий Евгения Брикмана также применим и здесь.