В этой записи я собрал несколько разных тем касающихся первоначальной настройки блога на Jekyll. Этот пост будет интересен тем людям, которые как и я, впервые только недавно познакомились с Jekyll. В этом посте мы займёмся локализацей дат, выведем похожие записи для постов и рассмотрим основные плагины поддерживаемые на Github Pages.
Локализация дат
Одной из необходимых первоначальных настроек является перевод дат для их отображения в привычном нам формате, а так же месяцев на русском языке.
- В папке _includes/ создадим отдельный шаблон для форматирования даты в нужном нам формате, я назову файл date.html:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{% assign m = include.date | date: "%-m" %}
{{ include.date | date: "%-d" }}
{% case m %}
{% when '1' %}января
{% when '2' %}февраля
{% when '3' %}марта
{% when '4' %}апреля
{% when '5' %}мая
{% when '6' %}июня
{% when '7' %}июля
{% when '8' %}августа
{% when '9' %}сентября
{% when '10' %}октября
{% when '11' %}ноября
{% when '12' %}декабря
{% endcase %}
{{ include.date | date: "%Y" }}
- Вставляем наш шаблон с помощью тега include в нужное место и передаем ему переменную с датой, которая будет отформатирована, так как указано в нашем шаблоне:
Вывод похожих записей
Вывести список похожих/интересных записей (Similar Posts) монжо с помощью данного сниппета:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
{% assign hasSimilar = '' %}
{% for post in site.related_posts %}
{% assign postHasSimilar = false %}
{% for tag in post.tags %}
{% for thisTag in page.tags %}
{% if postHasSimilar == false and hasSimilar.size < 6 and post != page and tag == thisTag %}
{% if hasSimilar.size == 0 %}
<h4>Похожие записи</h4>
<ul>
{% endif %}
<li class="relatedPost">
<a href="{{ site.url }}{{ post.url }}">{{ post.title }}
{% if post.series %}
(Series: {{ post.series }})
{% endif %}
</a>
</li>
{% capture hasSimilar %}{{ hasSimilar }}*{% endcapture %}
{% assign postHasSimilar = true %}
{% endif %}
{% endfor %}
{% endfor %}
{% endfor %}
{% if hasSimilar.size > 0 %}
</ul>
{% endif %}
via gist
SEO-плагин
Github Pages имеет поддержку плагина Jekyll-SEO-Tag. Для того чтобы использовать его на сайте, в первую очередь необходимо прописать его в Gemfile, а так же вставить Liquid-тег плагина в head:
1
2
3
<head>
{% seo %}
</head>
Плагин поддерживает несколько переменных - title, description, image, author, которые можно объявить в Front Matter для каждого отдельного поста. Более подробно о возможностях Jekyll-SEO-Tag можно почитать на страничке плагина.
Поддерживаемые плагины
В сети можно встретить большое количество различных плагинов для Jekyll, но к сожалению Github Pages поддерживает только ряд “стандартных” плагинов. Например, таких как: jekyll-sitemap, jekyll-feed, jekyll-paginate, jekyll-seo-tag, jekyll-gist и другие (полный список поддерживаемых плагинов). В случае, если вы хотите использовать дополнительные плагины, то необходимо будет сгенерировать сайт локально и затем загрузить его в репозиторий вместе с папкой _site, которая и содержит сгенерированный контент.
Ускорение генераций сайта локально
При большом количестве записей генерация сайта занимает приличное время и минутные ожидания после каждого изменения в коде являются очень утомительным. Например, для тестирования дизайна и функционала сайта не нужно загружать все записи блога. Для того чтобы ускорить процесс и ограничить количество генерированного контента можно воспользоваться дополнительной опцией –limit-posts NUMBER. Полноценная команда для запуска Jekyll с ограничением в две записи выглядит так:
bundle exec jekyll serve --incremental --limit_posts 2
PS: Запись будет пополняться и другими полезными сниппетами. Буду рад комментариям с полезными советами или вопросами :-)