Основные моменты в обновлениях Jekyll 3.2+

Стоило немного отвлечься, как тут же посыпались обновления. Давненько не проверял официальный сайт команды Jekyll (примерно года пол :)) да и статьи что-то реже стали в голову идти. Надеюсь это затишье перед бурей.

Итак, хотел бы дать свое мнение и краткий обзор всего произошедшего в Jekyll с середины лета 2016 года. Точнее будет сказать не “всего”, а лишь той малости, которую я смог влегкую заметить и пощупать клавиатурой) По порядку.

Темы

Новый подход в темах произошел с релизом версии 3.2 от 26 июля. Это стало главной особенностью этого обновления. Были и другие улучшения, но они все же заметны для более матерых разработчиков. Поэтому достаточно будет коснуться пункта с темами. Так что же произошло?

Все, в нашем бурно развивающемся вебе, стремится стать пакетом) (это я имел в виду package). Или иметь собственную сборку, если можно так выразиться. Вот руки сообщества разработчиков Jekyll дошли и до тем. Темы завернули в собственный gemfile и подают на блюдечке.

Теперь все, что раньше находилось в /_layouts /_includes /_sass, теперь там находится не будет. Речь идет, например, о быстром старте, где у нас сразу имелся какой-то набор включений и стилей для дефолтного запуска сайта. Теперь Jekyll поставляется с отдельным gem-ом, сейчас - это тема minima. То есть, если сейчас вы захотите установить свеженький Jekyll, то после установки, в рабочей директории вы не обнаружите перечисленных папок. Все эти папки будут лежать там, где у вас на локальной машине хранятся gem файлы. И вот уже в той директории можно будет увидеть знакомые файлы шаблонов, включений и стилей и т.д.

При этом в настройках Jekyll - _config.yml, будет отражена строчка theme: minima, означающая, что в данный момент используются все содержимое этой темы.

Как быть, что делать?

Поначалу, конечно, можно растеряться от произошедшего. Я, например, всегда любил проводить эксперименты с шаблонами и стилями, это помогало выводить какие-то свои решения. А теперь от меня исходники куда-то прячут и сходу может быть непонятно что делать.

1. Все файлы, присутствующие в теме, могут быть перезаписаны кастомными

Да. Если создать по такому же пути в корне проекта файл с именем аналогичного файла из темы, то ваш файл перепишет существующий. Это, отчасти решает вопрос с экспериментами, но неудобство в том, что файл перепишется целиком, а не какая-то его часть. Поясню, что я имею в виду на примере дефолтной темы minima. Если я захочу таким способом поиграться, например, со стилями темы, то в корне проекта я должен создать файл _sass/minima.scss и он перепишет сразу все стили и страница вовсе останется без стилей. Конечно, можно идти дальше и переписывать только некоторые составляющие файлы стилей, но поиграться с отельными классами все равно вряд ли получится.

В любом случае необходимо иметь представление из чего состоит тема. Если не получается отыскать исходики темы локально, то посмотреть структуру темы скорее всего удасться в репозиториях автора темы. Погуглить по названию темы - будет правильным решением. Автор темы, как правило, оформляет мануал - что и как лучше настраивать в этой теме под себя.

2. Тему можно быстро отключить

Достаточно просто удалить строчку в настройках _config.yml theme: minima и все шаблоны, включения и стили этой темы будут отключены. И можно приступать заново создавать для себя свои макеты и прочее. С чистого листа.

3. Можно смириться и использовать все из коробки

По своему опыту скажу, что уже сейчас есть несколько популярных тем, которые содержат в себе контент на все случаи жизни. Из-за своего объема мануал к ним также достаточно обширен. Но при желании можно все настроить. Другой вопрос, что может быть много лишнего функционала, а более избирательной настройки, чем описанной в п.1 я не смог найти.

Резюме

На мой взгляд нововведение исключительно больше для писателей, а не писателей-разработчиков. Гораздо удобнее стало лишь использование темы из чьей-то коробки. С другой стороны, благодаря такой модульности, оживились разработки тем. Теперь их стало удобнее распространять, ведь раньше они шли со всеми исходниками проекта вместе.

Введение админки

Теперь для Jekyll появилась возможность пощупать админку. Пока что это только initial release, поэтому только пощупать. И только для локальной разработки. Написана на Ruby, а фронтенд на Javascript

Установка не сложнее обычного плагина. Добавляем jekyll-admin в Gemfile, а также в список плагинов в файле _config.yml. Устанавливаем плагин. Запускаем jekyll и переходим по адресу http://localhost:4000/admin

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

Приведу ссылки на официальный репозиторий и сайт.

Другие улучшения

Про остальное столько говорить не буду. Скажу лишь тезисно.

  1. В Jekyll появилась интересная папка assets/. Она более должна быть интересна разрабочикам тем. Подробнее тут

  2. Появились новые фильтры для url-ов relative_url и absolute_url. Более интересно тем, кто использует url или baseurl в настройках проекта. Подробнее тут

  3. site.url для локальной разрабоки теперь по умолчанию будет иметь значение вашего хоста и порта, на котором запущен сервер. Позволяет избежать проблем с использованием собственного site.url на продакшене и фильтром absolute_url. Подробнее тут

Итого

Вот и все, что сейчас хотел отметить. Высказался и закрепил материал) Буду рад обсуждениям. Всем успехов!