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