/ 

Обновляемся до Jekyll v3.x

Релиз третьей версии генератора статических сайтов Jekyll прошел 27 октября 2015 года. А 1 февраля 2016 года GitHub Pages официально поддерживают Jekyll 3. В тот момент я захотел перевести блог на новую версию и прикрутить к нему Gulp.

Логотип Jekyll
Логотип Jekyll

В тот момент я много работал. А освободился только пару дней назад и решил таки обновить у себя Jekyll. Что из этого вышло и стоит ли обновляться я расскажу в этой статье.

Как обновиться описано на официальном сайте, при обновлении я руководствовался статьей «Upgrading from 2.x to 3.x» и немножно Stack Overflow.

С первого февраля GitHub Pages поддерживает Jekyll 3. Для markdown движка теперь используется только kramdown, а для подстветки синтаксиса — rouge. Я этому рад, поскольку стандартных возможностей Jekyll markdown мне не хватало, а подстветка синтаксиса rouge короче при написании статей.

Для сравнения если раньше, чтобы подстветить кусочек руби кода мы писали:

{% highlight ruby %}
(z ||= []) << 'test'
{% endhighlight %}

теперь это делается так:

```ruby
(z ||= []) << 'test'
```

Отдельный ад для меня была сборка проекта. Гитхаб не мог адекватно собрать мой сайт, поэтому приходилось мудрить с командной строкой. Делать папку _src, билдить сайт в _site, переносить все файлы в корень папки и отчищать все в корне кроме папки _src. Я даже своей сборкой удалил половину другого проекта запустив её не в той папке 😀

Но теперь это в прошлом, гитхаб помимо того что понимает и собирает, теперь делает это быстрее.

Баги/особенности

  1. Сбились отступы текста в markdown. Вылечилось добавлением строчки hard_wrap: true в конфиг:

    kramdown:
      input: GFM
      hard_wrap: true
      syntax_highlighter: rouge
    
  2. Перестали открываться статьи. Помогло добавление последнего / в конфиге:

    permalink: /:categories/:title/
    
  3. Сломались переменные в шаблонах. Если написать в post.html такой код, то раньше в page.html у нас был доступ к переменной is_post. Сейчас — нету.

    ---
    layout: page
    is_post: true
    ---
    

    Теперь, чтобы определить, что текущая страница это пост, я пишу {% if page.categories %}.

  4. Если вы используете jekyll-redirect-from, то чтобы гитхаб при сборке его использовал укажите это в конфиге:

    gems:
      - jekyll-redirect-from
    
  5.  Ваша рсс обновится и разошлется подписчикам еще раз. Возможно это связано с изменениями, которые вносил я и не свзязанно с новой версией.

  6. По умолчанию при запуске jekyll serve и jekyll build не показываются посты с датой в будущем. Чтобы их увидить — добавьте флаг --future.

Удачного вам обновления.

⌘ ⌘ ⌘
Инструменты

Исключаем папки из обычного и Fuzzy поиска в Atom

Как исключить некоторые папки (к примеру node_modules, bower_components) из поиска в текстовом редакторе Atom.

Фиксим Emmet под Atom для работы со Stylus файлами
Инструменты

Фиксим Emmet под Atom для работы со Stylus файлами

Фиксим работоспособность плагина Emmet под Atom для препроцессора Stylus.

Лучшие плагины для текстового редактора Atom
Инструменты

Лучшие плагины для текстового редактора Atom

Плагины и дополнения для текстового редактора Atom: linter, stylus, beautify, autocomplete-plus, color-picker, easy-motion, emmet, file-icons, jekyll, angularjs, project-manager, merge-conflicts, minimap, open-in-browser, project-palette-finder, unregistered.