Jekyll позволяет гибко конфигурировать сайт. Опция для конфигурации определяются через файл _config.yml.

Настройки конфигурации

Глобальные настройки

Опция Опция командной строки Назначение
source: DIR -s, --source DIR Директория с исходниками
destination: DIR -d, --destination DIR Директория, в которую будет записан сайт
safe: BOOL --safe Выключить кастомные плагины, игнорировать симлинки
exclude: [DIR, FILE, …]   Файлы, которые будут исключены из генерации и добавления в сайт
include: [DIR, FILE, …]   Файлы, которые будут добавлены на сайт, несмотря на ограничения
timezone: TIMEZONE   Установить временную зону
encoding: ENCODING   Установить кодировку

Настройки сборки

Опция Опция командной строки Назначение
  -w, --[no]-watch Включение авторегенерации
  --config FILE Указать конфиг вместо _config.yml
show_drafts: BOOL --drafts Генерировать неопубликованные посты
  JEKYLL_ENV=production Использовать специфичный environment
future: BOOL --future Генерировать ли посты с датой в будущем
unpublished: BOOL --unpublished Генерировать ли посты, которые помечены как неопубликованные
lsi: BOOL --lsi Создавать ли индекс для связных постов (нужен classifier-reborn)
limit_posts: NUM --limit_posts NUM Ограничить количество постов для публикации
  -V, --verbose Детальный вывод
  -q, --quiet Минимальный вывод
incremental: BOOL -I, --incremental Включение инкрементальной сборки. Собираются только посты, которые были изменены
profile: BOOL --profile Включить отладку Liquid
strict_front_matter: BOOL --strict_front_matter Билд завершится ошибкой, если синтаксис неправильный в YAML Front Matter

Настройки встроенного сервера

Опция Опция командной строки Назначение
port: PORT --port PORT Указать порт
host: HOSTNAME --host HOSTNAME Указать хост
baseurl: URL --baseurl URL Привязать к URL
detach: BOOL -B, --detach Запустить в фоне
  --skip-initial-build Пропустить сборку
  --ssl-key Использовать приватный ключ
  --ssl-cert Использовать сертификат

Использование настроек

Заголовки ответа

Можно кастомизировать заголовки ответа в файле _config.yml с помощью ключа webrick.

webrick:
  headers:
    My-Header: My-Value
    My-Other-Header: My-Other-Value

По-умолчанию Jekyll задает значения для Content-Type и Cache-Control

Использование environment

Environment доступен на странице.


{% if jekyll.environment == "production" %}
   {% include disqus.html %}
{% endif %}

Настройки Front Matter

При написании постов часто используются повторяющиеся данные, такие как автор или макет. Вместо того, чтобы добавлять эту информацию на каждую страницу, можно указать данные настройки в файл _config.yml в массив по ключу defaults.

defaults:
  -
    scope:
      path: "" # Пустой путь значит все файлы
    values:
      layout: "default"
      author: "Mr. Hyde"
      category: "project"

Каждый элемент массива defaults состоит из ключей

  • scope - задает файлы для конфигурации
    path: "PATH" # Путь к файлам, можно использовать *
    type: "TYPE" # Тип контента pages, posts, drafts или коллекции
    
  • values - задает значения настроек.
    Значение ниже в массиве имеют больший приоритет, а значения на самих страницах самый высокий.

Jekyll позволяет кастомизировать еще больше - настройки процессора Markdown, директории с шаблонами, опции Liquid