Сделал таки плагин для Jekyll, реализующий именно то, и именно так, как мне надо…
Коротко суть: картинки обрезаются, ресайзятся и конвертируются в зависимости от параметров, и далее заворачиваются в теги
. Более того, легко и непринужденно из этих картинок формируются галереи, которые тоже можно всячески кастомизировать.
Подробности можно почитать в README-ru проекта на Github. Здесь коротко.
Зависимости и ограничения
Требуется ImageMagick 6-й или 7-й версии. И это та зависимость, которая не подтягивается через bundle install по понятным причинам.
Полноценно плагин будет работать, только если в качестве markdown-конвертера выбран Kramdown (это дефолтный выбор, так что, думаю,
для большинства пользователей Jekyll — не проблема).
Кроме того, в настройках самого kramdown нужно выбрать кастомный парсер ISKram, что может стать проблемой, если уже используется
какой-то кастомный парсер…
markdown: kramdown
kramdown:
input: ISKram
Запуск с нуля — при пустом кэше — это долго.
У меня получилось примерно 47 минут для этого сайта. Повторный запуск, когда кэш в наличии, занимает чуть больше полутора минут.
Далее о хорошем.
Синтаксис
Стандартный. Т.е. пишем, как это в Markdown принято,{: атрибуты} и радуемся. Вся кастомизация сидит в атрибутах
и контексте.
Если разметка рисунка сидит на отдельной строке, отбитая пустыми строками сверху и снизу, то она заворачивается не в
, как
это обычно делает Kramdown, а в.
Но самая магия начинается, когда у нас в одном абзаце несколько картинок, и нет ничего другого — в этом случае формируется галерея.
Можно, впрочем, использовать и liquid-теги {% image... %} и {% gallery... %},
как раз на тот случай, если нет возможности использовать Kramdown с кастомным парсером. Правда, Kramdown все равно подтянется
по зависимостям, и именно он будет разбирать параметры тегов.
Превьюшки для соцсетей
Штатно Jekyll позволяет указать картинку, которую соцсети будут использовать для превью. Плагин позволяет кропнуть и отресайзить
эту картинку, а также накладывает на нее заголовок поста, дату и название сайта.
Кстати, именно это и занимает большую часть времени работы — формирование и наложение текста ImageMagick’ом.
Статус и планы
Текущая версия — 0.8.0.2, т.е., как и все 0.8.xxx у меня — это скорее публичная альфа, чем что-то еще.
Далее буду допиливать фичи и, главное, шлифовать стилизацию. Но делать это получится не быстро, поскольку проверять буду не на сферическом
в вакууме сайте, а на своем живом — параллельно с редизайном…
Upd по GitHub Actions
Так и не удалось пока подружить плагин с ImageMagick v6. Пришлось через одно место ставить v7. Вероятно, буду все-таки уже в ближайшее время
делать сборку через собственный контейнер, иначе слишком много бубнов сотрется…