shikhalev.*
Картинка для привлечения внимания

Сделал таки плагин для Jekyll, реализующий именно то, и именно так, как мне надо…

Коротко суть: картинки обрезаются, ресайзятся и конвертируются в зависимости от параметров, и далее заворачиваются в теги <figure>. Более того, легко и непринужденно из этих картинок формируются галереи, которые тоже можно всячески кастомизировать.

Подробности можно почитать в README-ru проекта на Github. Здесь коротко.

Зависимости и ограничения

  • Требуется ImageMagick 6-й или 7-й версии. И это та зависимость, которая не подтягивается через bundle install по по­нят­ным причинам.

  • Полноценно плагин будет работать, только если в качестве markdown-конвертера выбран Kramdown (это дефолтный выбор, так что, думаю, для большинства пользователей Jekyll — не проблема).

    • Кроме того, в настройках самого kramdown нужно выбрать кастомный парсер ISKram, что может стать проблемой, если уже используется какой-то кастомный парсер…

      markdown: kramdown
      kramdown:
        input: ISKram
  • Запуск с нуля — при пустом кэше — это долго.

    У меня получилось примерно 47 минут для этого сайта. Повторный запуск, когда кэш в наличии, занимает чуть больше полутора минут.

Далее о хорошем.

Синтаксис

Стандартный. Т.е. пишем, как это в Markdown принято, ![Text](url){: атрибуты } и радуемся. Вся кастомизация сидит в ат­ри­бу­тах и контексте.

Если разметка рисунка сидит на отдельной строке, отбитая пустыми строками сверху и снизу, то она заворачивается не в <p>, как это обычно делает Kramdown, а в <figure>.

Но самая магия начинается, когда у нас в одном абзаце несколько картинок, и нет ничего другого — в этом случае формируется галерея.

Можно, впрочем, использовать и liquid-теги {% image ... %} и {% gallery ... %}, как раз на тот случай, если нет возможности использовать Kramdown с кастомным парсером. Правда, Kramdown все равно подтянется по зависимостям, и именно он будет разбирать параметры тегов.

Превьюшки для соцсетей

Штатно Jekyll позволяет указать картинку, которую соцсети будут использовать для превью. Плагин позволяет кропнуть и отресайзить эту картинку, а также накладывает на нее заголовок поста, дату и название сайта.

Кстати, именно это и занимает большую часть времени работы — формирование и наложение текста ImageMagick’ом.

Статус и планы

Текущая версия — 0.8.0.2, т.е., как и все 0.8.xxx у меня — это скорее публичная альфа, чем что-то еще.

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

Upd по GitHub Actions

Так и не удалось пока подружить плагин с ImageMagick v6. Пришлось через одно место ставить v7. Вероятно, буду все-таки уже в ближайшее время делать сборку через собственный контейнер, иначе слишком много бубнов сотрется…