В этой записи я собрал несколько разных тем касающихся первоначальной настройки блога на Jekyll. Этот пост будет интересен тем людям, которые как и я, впервые только недавно познакомились с Jekyll. В этом посте мы займёмся локализацей дат, выведем похожие записи для постов и рассмотрим основные плагины поддерживаемые на Github Pages.

Локализация дат

Одной из необходимых первоначальных настроек является перевод дат для их отображения в привычном нам формате, а так же месяцев на русском языке.

  1. В папке _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" }}
  1. Вставляем наш шаблон с помощью тега include в нужное место и передаем ему переменную с датой, которая будет отформатирована, так как указано в нашем шаблоне:
{% include date.html date=page.date %}

Вывод похожих записей

Вывести список похожих/интересных записей (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: Запись будет пополняться и другими полезными сниппетами. Буду рад комментариям с полезными советами или вопросами :-)

Опубликовано
Подробнее

ArtsLab

Блог для тех, кто интересуется разработкой сайтов, веб-дизайном и новыми событиями в интернете. В моем блоге Вы найдете записи на различные околокомпьютерные темы, обзоры сервисов и новинок, статьи по кодингу, советы, скрипты, темы и хаки для wordpress, уроки phostohop и многое другое.

4gray artslab artslabinfo