Изображения
Изображения - это хранилище различных картинок, используемых в материале сайта.
Изображения находятся в каталоге images.
Все исходные изображения загружаются в каталог images/original/<год>/<месяц>/<название статьи|страницы|коллекции без даты>. Например: images/original/2023/09/welcome-to-jekyll.
Внутри данного каталога размещаются картинки формата jpg, png. Далее при сборке шаблона Jekyll на основе этих картинок создает такие же картинки только другого разрешения, а так же добавляет к каждой картинке формат webp.
Настройки для картинок определяются в конфигурационном файле _config.yml.
Разрешения картинок
Для автоматического создания изображений различной ширины и длины на основе оригинальной, отредактируйте конфигурационный файл _config.yml.
# настройки расширения mini_magick, отвечающего за создания картинок
mini_magick:
# имя типа картинки, можно добавлять сколько угодно типов
thumbnail:
# от куда будет браться оригинальное изображения
source: images/original
# куда будет сохраняться новое изображение
destination: images/thumbnail
# новое разрешение картинки, ^ означает что картинка будет сохранять пропорции
resize: "530x390^"
# при обрезке изображения какая часть должна сохраняться
gravity: "center" # NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast
# новое разрешение картинки
# без сохранения пропорция, следует указывать оба параметра
extent: "530x390"
# Раскоментируйте если необходимо использовать этот тип, либо создать свой
#steps:
#source: images/original
#destination: images/steps
#resize: "550x450^"
#gravity: "center"
#extent: "550x450"
Формат webp
Для настройки формата webp отредактируйте конфигурационный файл _config.yml.
# настройки расширения jekyll-webp, отвечающего за конвертацию картинок в формат webp
webp:
# конвертация включена
enabled: true
# качество сжатия
quality: 75
# в каких каталогах конвертировать картинки
img_dir: ['/assets/images/', '/images/']
# проверять вложенные каталоги
nested: true
# поддерживаемые форматы изображений
formats: ['.jpeg', '.jpg', '.png']
# заного создавать webp изображения для уже созданных
regenerate: false
# исключить каталоги
exclude: ['icons']
# добавить расширение
append_ext: true
Добавление картинки на сайт
Предположим, что мы добавили в каталог images/original/2023/09/welcome-to-jekyll изображение cover.jpg. Теперь, для того чтобы отобразить картинку на сайте, вставим в файл следующую разметку.
<picture>
<source srcset="{{ site.baseurl }}/images/thumbnail/2023/09/welcome-to-jekyll/cover.webp" type="image/webp">
<img src="{{ site.baseurl }}/images/thumbnail/2023/09/welcome-to-jekyll/cover.jpg" alt="">
</picture>
При сборке проекта картинки копируются в каталог _site/images. Так как каталог _site является корневым для веб сервера, то при обращении к каталогу images картинки будут браться от сюда _site/images.
Далее в пути указывается название расширения изображения, которое было указанно в файле _config.yml, например thumbnail. После чего год, месяц и название статьи и только потом название картинки которую нужно отобразить.
В шаблоне имеется компонент picture, который будет вставлять подобную конструкцию одной строкой кода.
{% include component/picture.html fancybox='true' slug=page.slug img='img-3.jpg' type='original' alt='Исходный код главной страницы' %}
Ознакомимся с каждым параметром.
# включаемый файл
include component/picture.html
# параметр для расширения fancybox, по умолчанию отключен
fancybox='true'
# название статьи
slug=page.slug
# подключаемая картинка
img='img-3.jpg'
# тип подключаемой картинки original, thumbnail.. тот формат который был обозначен в файле _config.yml
type='original'
# текс для картинки
alt='Исходный код главной страницы'