Простой способ поддержки тегов в блоге jekyll
Я использую стандартную установку jekyll для поддержания блога, все идет хорошо. Кроме того, я бы очень хотел пометить свои посты.
Я can пометить сообщение, используя передний вопрос YAML, но как создать страницы для каждого тега, который может перечислить все сообщения для тега?
6 ответов
этот gist создаст страницу для каждой категории для вас:https://gist.github.com/524748
Он использует плагин генератора Jekyll, а также подкласс страницы.
вот решение С теги сортируются в алфавитном порядке на одной странице.
Он использует только жидкость, что означает, что он работает на страницах GitHub:
{% 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 front-matter.
вот пример jekyll
tag:
/tags/jekyll/index.html
:
---
layout: tagpage
tag: jekyll
---
единственный недостаток этого подхода: каждый при первом использовании нового тега необходимо не забыть создать для него новый двухстрочный файл.
для создания файла корневого индекса (т. е. список тегов, ссылки на /tags/jekyll/index.html
etc.), вы можете использовать подобное решение, как в верхней части этого ответа, где я генерирую одну страницу с алфавитно отсортированными тегами:
{% 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>
обратите внимание, что это решение использует пустой для разделения тегов, поэтому он не работает, когда ваши теги содержат пробелы и комментарий Евгения Брикмана применяется и здесь.
посмотреть сайты, использующие jekyll. Есть несколько пользовательских вилок, которые реализовали функциональность тегов, надеюсь, также так, как вы хотите: -)
У меня был тот же вопрос, и я наткнулся на это:http://gist.github.com/143571.
Это задача рейка, которая генерирует список тегов. Я немного изменил его, и моя версия находится на: http://github.com/mattfoster/mattfoster.github.com/blob/master/Rakefile.
хотя это не дает вам страницу на тег,вы можете использовать якоря, которые находятся на полпути!
Я использую великого Пометка Jekyll плагин, который автоматически генерирует облако тегов и страницы тегов. Простота установки и использования.
здесь страница для тега "фото" в моем блоге (на французском языке), и вы можете увидеть облако тегов внизу.
основываясь на ответе Кристиана выше, я сделал сценарий bash, который делает то, что он описал.
https://github.com/ObjectiveTruth/objectivetruth.github.io/blob/master/rebuild_tags.sh
обязательно иметь сопровождающую 14 строку скрипт для Vim на /non_website_resources/
каталог
и
сделать /_layouts/tagpage.html
показано в ответе Кристиана выше, но переименуйте его в /_layouts/tag_pages.html
.jekyll_website_root
├── _posts
├── _layout
│ ├── tag_pages.html
├── rebuild_tags.sh
запустить из корневого каталога ./rebuild_tags.sh
если вы получаете разрешение отказано ошибка обязательно запустить chmod 777 rebuild_tags.sh
если вы посмотрите на Скрипты комментариев его довольно просто:
использует
sed
чтобы найти все теги в каждом на_post
каталогиспользует
sed
для массажа данных в нужном форматепринимает все уникальные теги и делает каталог и
index.html
для каждого
таким образом, если у вас есть новые теги, просто запустите скрипт для перестроения страниц перед нажатием на github
хороший простой не-плагин способ сделать теги
редактировать
удалена зависимость от других файлов. Просто нужен один сценарий!