Адаптивные изображения в Jekyll

Matt Biilmann написал статью о том, как можно отображать изображения из Jekyll на экранах с высокой плотностью пикселей. Этот пост является приблизительным переводом небольшой части оригинальной статьи и некоторых кусков документации, опубликованной в GitHub репозитории.

Итак, автор рекомендует использовать плагин Jekyll Srcset. После его установки, у вас в арсенале появится новая Liquid конструкция:

  {% image_tag src=page.thumbnail width="200" %}

В ответ на указанный выше код, плагин сгенерирует разметку, в которой будут предусмотрены все необходимые варианты, для качественной презентации изображений:

  <img src="/thumb-200x200.jpg" srcset="/thumb-200x200.jpg 1x, /thumb-400x400.jpg 2x, /thumb-600x600.jpg 3x">

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

Установка плагина:

  $ gem install jekyll-srcset 

Настройка:
Добавьте следующую запись в конфигурационный файл (в _config.yml)

  gems:
    - jekyll-srcset

Ещё один пример использования:

  {% image_tag src = "/ image.png" width = "100"%} 

Вы должны указать либо width, либо height, но ни в коем случае нельзя указывать и то, и другое одновременно. Ширина или высота будут использоваться для определения базовой версии используемого изображения (для устройств, экран которых имеет плотность 1 пиксель). Основываясь на указанном вами размере, плагин сгенерирует до трех версий изображения, два из которых будут предназначаться для устройств с повышенной плотностью: image.jpg 2x и image.jpg 3x. Плагин не масштабирует изображение.

Плагин установит их в качестве значений атрибута srcset (для тега <img>), после чего современные браузеры смогут определять, какую версию изображения требуется загрузить.

Переменные:
Рассматриваемый нами плагин позволяет использовать переменные:

  {% image_tag src = page.cover_image height = page.cover_image_height %} 

В этом примере, с помощью переменных мы указали путь до конкретного изображения и его высоту.

На этом у меня всё.