Ваш первый плагин
Плагины позволяют расширить функциональность Jekyll в соответствии с вашими потребностями. Существует шесть типов плагинов в Jekyll.
Генераторы
Генераторы создают контент на вашем сайте. Например:
- jekyll-feed создаёт ленту Atom для постов блога.
- jekyll-archives создаёт страницы архивов для категорий и тегов блога.
- jekyll-sitemap создаёт карту сайта.
Конвертеры
Конвертеры изменяют язык разметки на другой формат. Например:
- jekyll-textile-converter конвертирует textile в HTML.
- jekyll-coffeescript конвертирует Coffeescript в JavaScript.
- jekyll-opal конвертирует Ruby в JavaScript.
Команды
Команды расширяют исполняемый файл jekyll с помощью подкоманд. Например:
- jekyll-compose добавляет подкоманды для создания поста, страницы или черновика.
Теги
Теги создают пользовательские теги Liquid. Например:
- jekyll-youtube встраивает видео с YouTube.
- jekyll-asset-path-plugin выводит относительный URL для активов.
- jekyll-swfobject встраивает объект SWF.
Фильтры
Фильтры создают пользовательские фильтры Liquid. Например:
- jekyll-time-ago - Расстояние между двумя датами словами.
- jekyll-toc - Генерирует таблицу содержания.
- jekyll-email-protect - Замаскирует электронные письма, чтобы защитить их от спам-ботов.
Обработчики
Обработчики предоставляют тонкую настройку для расширения процесса сборки. Например:
- jemoji Отображение эмодзи
- jekyll-mentions преобразует упоминания @jekyll в ссылки
- jekyll-spaceship - расширенный пример. Предоставляет мощную поддержку таблиц, mathjax, plantuml, видео и т. д.
Флаги
При написании плагина следует учитывать два флага:
| Флаг | Описание |
|---|---|
|
| Логический флаг, который сообщает Jekyll, может ли этот плагин безопасно выполняться в среде, где запрещено произвольное выполнение кода. Это используется GitHub Pages для определения, какие основные плагины могут использоваться, а какие небезопасны для выполнения. Если ваш плагин не допускает произвольного выполнения кода, установите это значение в |
|
| Этот флаг определяет порядок загрузки плагина. Допустимые значения: |
Чтобы использовать один из примеров плагинов выше в качестве иллюстрации, вот как вы бы указали эти два флага:
module Jekyll
class UpcaseConverter < Converter
safe true
priority :low
...
end
end
Рекомендации по разработке
Руководства помогут вам со спецификой создания плагинов. У нас также есть некоторые рекомендации по лучшим практикам для структурирования вашего плагина.
Мы рекомендуем использовать gem для вашего плагина. Это поможет вам управлять зависимостями, сохранить разделение от исходного кода вашего сайта и позволит вам использовать функциональность в нескольких проектах. Для получения советов по созданию gem ознакомьтесь с Руководством по Ruby gems или просмотрите исходный код существующего плагина, такого как jekyll-feed.
© 2020 Jekyll Core Team and contributors
Licensed under the MIT license.
https://jekyllrb.com/docs/plugins/your-first-plugin/