Плагины
В Jekyll реализована система плагинов с хуками, позволяющая вам генерировать кастомный контент на вашем сайте. Вы можете запустить собственный код на своем сайте без модификации Jekyll как такового.
Плагины на GitHub
GitHub Pages работают на Jekyll. Но так как по причинам безопасности все сайты на GitHub собираются с опцией --safe
, а значит все кастомные плагины не будут работать
Вы по прежнему можете использовать GitHub Pages для публикации вашего сайта, но только путем локальной сборки и отправки в репозиторий готовых статических файлов
На данный момент GitHub Pages работает со следующими плагинами:
- Jemoji — поддержка emoji в постах и страницах Jekyll.
- Jekyll-mentions — дает поддержку @mentions в постах и страницах Jekyll.
- Jekyll-redirect-from — добавляет возможность редиректов при смене URL поста или страницы.
- Jekyll-sitemap — автоматически добавляет на сайт валидный файл sitemap.xml. Плагин необходим для нормальной работы поисковых систем.
- Jekyll-feed — автоматически генерирует трансляцию в формате atom для вашего блога.
- Jekyll-seo-tag — упрощает вывод метаданных для SEO и добавляет структурированные данные на сайт (Open graph, Twitter summary card, JSON-LD метаданные).
- Jekyll-github-metadata — метаданные репозитория на GitHub.
- Jekyll-paginate — стандартный плагин для разбивки на страницы.
Установка плагина
Существует 3 способа установки плагинов в Jekyll:
- Создайте в корневом каталоге папку
_plugins
и поместите в нее плагины. Любой файл с расширением*.rb
из этого каталога будет загружен до генерации сайта. - В файле
_config.yml
создайте новый массив с ключомgems
и названиями gem устанавливаемых плагинов, например:gems: [jekyll-test-plugin, jekyll-jsonify, jekyll-assets] # This will require each of these gems automatically.
- Добавьте нужные плагины в группу Bundler в
Gemfile
:
group :jekyll_plugins do
gem "my-jekyll-plugin"
end
Методы _plugins
, _config.yml
и Gemfile
можно использовать одновременно
Вы можете использовать все методики подключения плагинов на одном сайте. Они не конфликтуют друг с другом
Все плагины для Jekyll можно разделить на 4 основных категории:
Генераторы
Для создания дополнительного контента в Jekyll вы можете создать плагин-генератор.
Генератор это подкласс Jekyll::Generator
, определяющий метод generate
, который получает экземпляр Jekyll::Site. Возвращаемое значение generate
игнорируется.
Генераторы запускаются после того, как Jekyll проверит имеющийся контент и перед сборкой сайта. Страницы с вводной YAML сохраняются как экземпляры Jekyll::Page и доступны через site.pages
. Статические файлы становятся экземплярами Jekyll::StaticFile и доступны через site.static_files
. Подробная информация на страницах документации о переменных и Jekyll::Site.
Например, генератор может вставить значения расчитанные в момент сборки для переменных шаблона. В следующем примере в reading.html
есть две переменные, ongoing
и done
, которые мы заполняем в генераторе:
module Reading
class Generator < Jekyll::Generator
def generate(site)
ongoing, done = Book.all.partition(&:ongoing?)
reading = site.pages.detect {|page| page.name == 'reading.html'}
reading.data['ongoing'] = ongoing
reading.data['done'] = done
end
end
end
А вот образец более сложного генератора, создающего новые страницы:
module Jekyll
class CategoryPage < Page
def initialize(site, base, dir, category)
@site = site
@base = base
@dir = dir
@name = 'index.html'
self.process(@name)
self.read_yaml(File.join(base, '_layouts'), 'category_index.html')
self.data['category'] = category
category_title_prefix = site.config['category_title_prefix'] || 'Category: '
self.data['title'] = "#{category_title_prefix}#{category}"
end
end
class CategoryPageGenerator < Generator
safe true
def generate(site)
if site.layouts.key? 'category_index'
dir = site.config['category_dir'] || 'categories'
site.categories.each_key do |category|
site.pages << CategoryPage.new(site, site.source, File.join(dir, category), category)
end
end
end
end
end
В этом примере наш генератор создаст серию файлов в каталоге categories
для каждой категории и создаст список постов в каждой категории, используя макет category_index.html
.
Для работы генераторов достаточно одного метода:
Метод | Описание |
---|---|
generate | Генерирует контент |
Конвертеры
Если у вас есть новый язык разметки, который вы хотите использовать на сайте, вы можете подключить его, создав свой плагин-конвертер. Markdown и Textile подключены именно таким образом.
Не забывайте о вводной YAML
Jekyll обрабатывает только файлы с вводной, даже при использовании кастомных конвертеров
Вот, например, конвертер, принимающий все посты заканчивающиеся .upcase
и обрабатывающий их с помощью UpcaseConverter
:
module Jekyll
class UpcaseConverter < Converter
safe true
priority :low
def matches(ext)
ext =~ /^\.upcase$/i
end
def output_ext(ext)
".html"
end
def convert(content)
content.upcase
end
end
end
В конвертерах должны быть имплементированы 3 метода:
Метод | Описание |
---|---|
matches | Проверяет расширение файла на совпадение с принимаемыми конвертером значениями. Принимает один аргумент: расширение файла. Возвращает логическое значение ( true при совпадении, иначе false ). |
output_ext | Определяет расширение итогового файла (с точкой), обычно это “.html”. |
convert | Метод реализующий саму конверсию. Принимает один аргумент: сырой контент (без вводной YAML). Возвращает строку. |
В нашем примере UpcaseConverter#matches
ищет файл с расширением .upcase
и рендерит его с использованием конвертера, если он существует. Для обработки используется метод UpcaseConverter#convert
. В нашем простом конвертере мы просто делаем все символы заглавными и сохраняем файл с расширением .html
.
Команды
С версии 2.5.0 Jekyll может расширяться плагинами, добавляющими субкоманды. Это реализуется путем включения соответствующих файлов в группу Gemfile
называемую :jekyll_plugins
:
group :jekyll_plugins do
gem "my_fancy_jekyll_plugin"
end
Каждая команда (Command
) это подкласс класса Jekyll::Command
, она обязательно реализует метод init_with_program
. Образец:
class MyNewCommand < Jekyll::Command
class << self
def init_with_program(prog)
prog.command(:new) do |c|
c.syntax "new [options]"
c.description 'Create a new Jekyll site.'
c.option 'dest', '-d DEST', 'Where the site should go.'
c.action do |args, options|
Jekyll::Site.new_site_at(options['dest'])
end
end
end
end
end
Команды имплементируют единственный метод:
Метод | Описание |
---|---|
init_with_program | Метод принимает один параметр Mercenary::Program , это сам Jekyll. Все команды в Jekyll добавляются только так, подробная документация на странице репозитория Mercenary на GitHub.com. |
Теги
Если вы хотите использовать на своем сайте собственные теги liquid, вы можете сделать это с помощью хуков в системе тегов. Встроенные в Jekyll образцы включают теги highlight
и include
. Ниже показан пример собственного тега liquid, выводящего время рендеринга страницы:
module Jekyll
class RenderTimeTag < Liquid::Tag
def initialize(tag_name, text, tokens)
super
@text = text
end
def render(context)
"#{@text} #{Time.now}"
end
end
end
Liquid::Template.register_tag('render_time', Jekyll::RenderTimeTag)
Теги должны имплементировать один метод:
Метод | Описание |
---|---|
render | Выводит контент тега. |
Вы также должны зарегистрировать кастомный тег в движке шаблонов Liquid:
Liquid::Template.register_tag('render_time', Jekyll::RenderTimeTag)
В примере выше, мы можем поместить наш тег на любой странице:
<p>{% render_time page rendered at: %}</p>
В результате мы получим следующий вывод:
<p>page rendered at: Tue June 22 23:38:47 –0500 2010</p>
Фильтры Liquid
Вы можете добавлять свои фильтры в систему шаблонов Liquid точно также как и теги. Фильтры это простые модули, экспортирующие свои методы в Liquid. Все методы принимают как минимум один параметр — входные данные для фильтра. Возвращает фильтр обработанные данные.
module Jekyll
module AssetFilter
def asset_url(input)
"http://www.example.com/#{input}?#{Time.now.to_i}"
end
end
end
Liquid::Template.register_filter(Jekyll::AssetFilter)
Совет: доступ к объекту сайта через Liquid
Jekyll дает вам доступ к объекту site
через объект Liquid context.registers
— context.registers[:site]
. Например, вы можете получить доступ к конфигурации _config.yml
через context.registers[:site].config
Флаги
При написании плагинов надо учитывать два флага:
Флаг | Описание |
---|---|
safe | Логический флаг, сообщающий Jekyll, может ли этот плагин безопасно запускаться в среде, где запрещено выполнение произвольного кода. Это используется на GitHub Pages для определения, какие базовые плагины будут использоваться, а какие запускать небезопасно . Если ваш плагин не допускает исполнение произвольного кода, задайте этот флаг как true . GitHub Pages по прежнему не будут загружать ваш плагин, но если вы захотите, чтобы этот плагин был включен в ядро, это поле должно быть заполнено правильно! |
priority | Флаг определяет порядок загрузки плагина. Валидные значения: :lowest , :low , :normal , :high и:highest . Сначала загружаются плагины с высшим приоритетом, в конце — с низшим. |
Чтобы проиллюстрировать работу флагов, мы подготовили пример их использования:
module Jekyll
class UpcaseConverter < Converter
safe true
priority :low
...
end
end
Хуки
Используя хуки, ваш плагин получает точный контроль над различными аспектами процесса сборки. Если в вашем плагине заданы хуки, Jekyll будет вызывать их в заданные моменты.
Хуки регистрируются с указанием контейнера и названия события. Для регистрации надо вызвать Jekyll::Hooks.register
и передать контейнер, название событие и исполняемый код при запуске хука. Например, если вы хотите добавит какой-либо функционал при каждом рендеринге поста, вам нужно зарегистрировать хук типа этого:
Jekyll::Hooks.register :posts, :post_render do |post|
# code to call after Jekyll renders a post
end
В Jekyll есть хуки для :site
, :pages
, :posts
и :documents
. Во всех случаях Jekyll вызывает ваши хуки с объектом контейнера в качестве первого параметра обратного вызова. Но в случае с :pre_render
ваш хук будет принимать хэш с полезной нагрузкой в качестве второго параметра, что дает полный контроль над переменными, доступными при рендеринге.
Вот полный список доступных хуков:
Контейнер | Событие | Момент вызова |
---|---|---|
:site | :after_init | Сразу после инициализации сайта, но перед настройкой и рендерингом. Подходит для модификации конфигурации сайта. |
:site | :after_reset | После сброса сайта. |
:site | :post_read | После чтения данных сайта с диска. |
:site | :pre_render | Прямо перед рендерингом всего сайта. |
:site | :post_render | После рендеринга сайта, но до записи каких-либо файлов. |
:site | :post_write | После записи всего сайта на диск. |
:pages | :post_init | При инициализации страницы. |
:pages | :pre_render | Прямо перед рендерингом страницы. |
:pages | :post_render | После рендеринга страницы, но до записи на диск. |
:pages | :post_write | После записи страницы на диск. |
:posts | :post_init | При инициализации поста. |
:posts | :pre_render | Прямо перед рендерингом поста. |
:posts | :post_render | После рендеринга поста, но до записи на диск. |
:posts | :post_write | После записи поста на диск. |
:documents | :post_init | При инициализации документа. |
:documents | :pre_render | Прямо перед рендерингом документа. |
:documents | :post_render | После рендеринга документа, но до записи на диск |
:documents | :post_write | После записи документа на диск. |
Доступные плагины
Вот некоторые из доступных плагинов:
Генераторы
- ArchiveGenerator от Ilkka Laukkanen: Использует эту архивную страницу для генерации архивов.
- LESS.js Generator от Andy Fowler: Рендерит файлы LESS.js при сборке.
- Version Reporter от Blake Smith: Создает файл version.html с указанием версии Jekyll.
- Sitemap.xml Generator от Michael Levin: Генерирует файл sitemap.xml, проходя через все доступные страницы и посты.
- Full-text search от Pascal Widdershoven: Добавляет полнотекстовый поиск на ваш сайт Jekyll с помощью плагина и небольшого количества JavaScript.
- AliasGenerator от Thomas Mango: Генерирует страницы редиректа для постов, в которых псевдоним указан во ввводной YAML.
- Pageless Redirect Generator от Nick Quinlan: Генерирует редиректы на основе файлов в корневом каталоге Jekyll, поддерживает редирект в стиле htaccess.
- RssGenerator от Assaf Gelber: Автоматически создает фид RSS 2.0 из ваших постов.
- Monthly archive generator от Shigeya Suzuki: Генератор и шаблон, создающий архивы месяцев в стиле MovableType, основан на работе Ilkka Laukkanen.
- Category archive generator от Shigeya Suzuki: Генератор и шаблон, создающий архивы категорий в стиле MovableType , основан на Monthly archive generator.
- Emoji for Jekyll: Подключает emoji ко всем постам и страницам.
- Compass integration for Jekyll: Интегрирует Compass и Sass на сайта Jekyll.
- Pages Directory от Ben Baker-Smith: Определяет каталог
_pages
для файлов страниц, маршрутизируя их вывод относительно корневого каталога. - Page Collections от Jeff Kolesky: Генерирует коллекцию страниц с функциональностью постов.
- Windows 8.1 Live Tile Generation от Matt Sheehan: Генерирует config.xml для Internet Explorer 11 и плиточный шаблон для интеграции вашего сайта к Windows 8.1.
- Jekyll::AutolinkEmail от Ivan Tse: Автоматические ссылки для email.
- Jekyll::GitMetadata от Ivan Tse: Открывает метаданные Git для ваших шаблонов.
- Jekyll Http Basic Auth Plugin: Плагин для управления базовой http аутентификацией для сгенерированных jekyll страниц и каталогов
- Jekyll Auto Image от Merlos: Делает первое изображение в посте доступным для шаблонов в качестве переменной. Полезно для создания списка постов с изображениями или для добавления twitter-карт на ваш сайт.
- Jekyll Portfolio Generator от Shannon Babincsak: Генерирует страницы проекта и вычисляет связанные проекты из файлов с данными проекта.
- Jekyll-Umlauts от Arne Gockeln: Этот генератор заменяет все умляуты (äöüß) корректными эквивалентами в юникоде.
- Jekyll Flickr Plugin от Lawrence Murray: Генерирует посты на основе альбомов фотографий, загруженных на Flickr.
- Jekyll::Paginate::Category: Разбивка на страницы категорий в Jekyll.
- AMP-Jekyll от Juuso Mikkonen: Генерирует ускоренные мобильные страницы (AMP) для постов в Jekyll.
Конвертеры
- Textile converter: Конвертирует файлы
.textile
в HTML.Также включает фильтр Liquidtextilize
. - Slim plugin: Конвертер Slim, включающий поддержку тегов Liquid
- Jade plugin от John Papandriopoulos: Конвертер Jade дляJekyll.
- HAML plugin от Sam Z: Конвертер HAML для Jekyll.
- HAML-Sass Converter от Adam Pearson: Простой HAML-Sass конвертер для Jekyll. Форк от Sam X.
- Sass SCSS Converter от Mark Wolfe: Конвертер Sass, использующий новый, CSS-совместимый синтаксисx, основан на предыдущем форке от Sam X.
- LESS Converter от Jason Graham: Конвертер LESS в CSS.
- LESS Converter от Josh Brown: Простой конвертер LESS.
- Upcase Converter от Blake Smith: Образец конвертера Jekyll.
- CoffeeScript Converter от phaer: Конвертер CoffeeScript в Javascript.
- Markdown References от Olov Lassus: Позволяет хранить все ссылки markdown в одном файле _references.md.
- Stylus Converter: Конвертер Stylus в css.
- ReStructuredText Converter: Конвертирует документы ReST в HTML с подсветкой Pygments.
- Jekyll-pandoc: Подключает pandoc для рендеринга markdown.
- Jekyll-pandoc-multiple-formats от edsl: Использует pandoc для генерации вашего сайта в различных форматах. Поддерживает pandoc-расширения markdown.
- Transform Layouts: Поддержка макетов HAML (для работы нужен установленный конвертер HAML).
- Org-mode Converter: Конвертер Org-mode для Jekyll.
- Customized Kramdown Converter: Подключает подсветку синтаксиса Pygments для блоков кода Kramdown-.
- Bigfootnotes Plugin: Поддержка больших сносок в Kramdown.
- AsciiDoc Plugin: Конвертер AsciiDoc , использующий Asciidoctor.
- Lazy Tweet Embedding: Автоматически конвертирует URL Твиттера в твиттер-карты, т.е. красиво выводит содержимое твита на месте ссылки.
- jekyll-commonmark: Конвертер Markdown, использующий libcmark, стандартный парсер CommonMark.
Фильтры
- Truncate HTML от Matt Hall: Фильтр Jekyll, обрезающий HTML сохраняя структуру разметки.
- Domain Name Filter от Lawrence Woodman: Фильтрует URL, оставляя доменное имя.
- Summarize Filter от Mathieu Arnold: Удаляет разметку после тега
<div id="extended">
. - i18n_filter: Фильтр Liquid для использования локализации I18n.
- Smilify от SaswatPadhi: Заменяет текстовые смайлики в вашем контенте картинками.
- Read in X Minutes от zachleat: Выводит ожидаемое время чтения (для содержимого поста).
- Jekyll-timeago: Конвертирует время из цифр в текст.
- pluralize: Совмещает числа и слова с учетом множественного или единственного числа, например, “1 minute” или “2 minutes”.
- reading_time: Подсчитывает слова и ожидаемое время чтения, игнорируя HTML-элементы не содержащие текст.
- Table of Content Generator: Генерирует HTML-код, содержащий оглавление, кастомизируется — можно указать страницы-исключения.
- jekyll-humanize: Это портированное приложение Django
humanize
, с разнообразными методами для изменения вида дат и цифровых данных в “человекопонятном виде”. Каждый метод это фильтр, который можно использовать в шаблонах Jekyll. Некоторые оригинальные методы не портированы (например, naturaltime). - Jekyll-Ordinal: Jekyll фильтр для конвертации количественных числительных в порядковые — “st”, “nd”, “rd”, or “th”.
- Deprecated articles keeper от Kazuya Kobayashi: Простой фильтр Jekyll для определения “старых статей”.
- Jekyll-jalali от Mehdi Sadeghi: Простой конвертер из грегорианского в иранский календарь.
- Jekyll Thumbnail Filter: Фильтр для миниатюр связанных постов.
- Jekyll-Smartify: Фильтр SmartyPants. Делает кавычки фигурными.
- liquid-md5: Возвращает хэш MD5. Полезен для генерации граватаров в шаблонах.
- jekyll-roman: Фильтр liquid для Jekyll, конвертирующий цифры в Римские.
- jekyll-typogrify: Плагин Jekyll с функционалом typogruby.
- Jekyll Email Protect: Фильтр liquid для защиты адресов электронной почты от спама.
Теги
- Asset Path Tag от Sam Rayner: Позволяет размещать подгружаемые файлы в подкаталогах, выводя путь к ним относительно текущего поста или страницы.
- Delicious Plugin от Christian Hellsten: Обрабатывает и рендерит закладки из delicious.com.
- Ultraviolet Plugin от Steve Alex: Тег Jekyll для подсветки кода Ultraviolet.
- Tag Cloud Plugin от Ilkka Laukkanen: Генерирует облако тегов со ссылками на страницы тегов.
- GIT Tag от Alexandre Girard: Добавляет список с данными активности Git.
- MathJax Liquid Tags от Jessy Cowan-Sharp: Простые liquid теги для Jekyll, конвертирующие строки и блоки уравнений в соответствующие скрипт-теги MathJax.
- Non-JS Gist Tag от Brandon Tilley Тег Liquid, подключающий гисты и показывающий код для браузеров и читалок с отключенным JavaScript.
- Render Time Tag от Blake Smith: Показывает время генерации страницы Jekyll.
- Status.net/OStatus Tag от phaer: Показывает уведомления в переданном фиде status.net/ostatus.
- Embed.ly client от Robert Böhnke: Автоматически подключает мультимедийный контент из URL, используя oEmbed.
- Logarithmic Tag Cloud: Гибкое облако тегов, с логарифмическим представлением и документацией.
- oEmbed Tag от Tammo van Lessen: Обеспечивает легкое подключение мультимедиа (например, с YouTube, Flickr, Slideshare) через oEmbed.
- FlickrSetTag от Thomas Mango: Генерирует галереи изображений из наборов Flickr.
- Tweet Tag от Scott W. Bradley: Тег Liquid для подключения твитов, используя Twitter’s shortcodes.
- Jekyll Twitter Plugin: Тег Liquid, рендерящий твиты с Twitter API. Поддерживает oEmbed API.
- Jekyll-contentblocks: Позволяет использовать в ваших шаблонах теги для контента в стиле Rails, пропуская контент из постов в макеты.
- Generate YouTube Embed от joelverhagen: Плагин Jekyll позволяющий вставлять сидео с YouTube на вашу страницу указывая YouTube ID. Опционально указываются размеры видео, плагин похож на “oEmbed Tag” , но работет только с YouTube.
- Jekyll-beastiepress: FreeBSD утилиты для сайтов на Jekyll.
- Jsonball: Читает файлы json и создает карты для использования в файлах Jekyll.
- Bibjekyll: Рендерит формат BibTeX с библиографиями/цитатниками, подключая их в посты и страницы, используя bibtex2html.
- Jekyll-citation:Рендерит формат BibTeX с библиографиями/цитатниками, подключая их в посты и страницы, на чистом Ruby.
- Jekyll Dribbble Set Tag: Строит галереи изображений любого пользователя Dribbble.
- Debbugs: Позволяет постить ссылки на Debian BTS.
- Jekyll-devonly_tag: Тег для подключения разметки, необходимой только на период разработки.
- JekyllGalleryTag от redwallhp: Генерирует миниатюры из каталога изображений и отображает их сеткой.
- Youku and Tudou Embed: Плагин Liquid для подключения видео с Youku и Tudou.
- Jekyll-swfobject: Плагин Liquid для подключения файлов Adobe Flash (.swf) с помощью SWFObject.
- Jekyll Picture Tag: Отзывчивые изображения для Jekyll. Основан на элементе
<picture>
element, использует полифилл Scott Jehl. - Jekyll Image Tag: Улучшение изображений для Jekyll. Сохраняет настройки изображений, изменяет размер, добавляет классы, описание и прочие атрибуты.
- Jekyll Responsive Image: Отзывчивые изображения для Jekyll. Автоматическое изменение размеров изображений,поддержка всех методов внедрения отзывчивости (
- Ditaa Tag от matze: Рендерит ASCII-арт в изображения PNG и вставляет тег figure.
- Jekyll Suggested Tweet от David Ensinger: Тег Liquid для Jekyll, позволяющий вставлять твиты с помощью Intents API.
- Jekyll Date Chart от GSI: Блок, рендерящий график с данными на основе таблиц в формате textile.
- Jekyll Image Encode от GSI: Тег, извлекающий изображение из интернета и кодирующий его в base64.
- Jekyll Quick Man от GSI: Тег, упрощающий генерацию ссылок на страницы документации.
- jekyll-font-awesome: Быстро и легко добавляет иконки Font Awesome в ваши посты.
- Lychee Gallery Tag от tobru: Подключает в пост альбомы Lychee. Для введения в вопрос — статья Jekyll meets Lychee — A Liquid Tag plugin.
- Image Set/Gallery Tag от callmeed: Рендерит HTML для галереи изображений из каталога вашего сайта Jekyll. Просто передайте имя каталога и опции классов-тегов.
- jekyll_figure: Генерирует теги
figure
и заголовки к ним со ссылкой на фигуру в различных форматах. - Jekyll Github Sample Tag: Тег liquid для подключения образца репозитория github на ваш сайт Jekyll.
- Jekyll Project Version Tag: Плагин Liquid рендерящий идентификатор версии вашего сайта Jekyll на основе кода из вашего репозитория git.
- Piwigo Gallery от Alessandro Lorenzi: Плагин Jekyll для генерации миниатюр галереи Piwigo и отображения их тегом Liquid tag
- mathml.rb от Tom Thorogood: Плагин для конвертирования математики TeX в MathML.
- webmention_io.rb от Aaron Gustafson: Плагин для интеграции упоминаний, использующий Webmention.io. Включает опциональный JavaScript для автоматического обновления между публикациями или в реальном времени через WebSockets.
- Jekyll 500px Embed от Luke Korth. Тег Liquid для подключения фото с 500px.
- inline_highlight: Тег для строчной подсветки синтаксиса.
- jekyll-mermaid: Упрощает создание блок-схем в ваших постах и страницах.
- twa: Twemoji плагин для Jekyll. Тег Liquid позволяющий использовать twitter emoji на ваших страницах.
- Fetch remote file content от Dimitri König: Используя тег
remote_file_content
вы можете извлекать содержимое файла с другого сервера и включать его непосредственно в свой файл markdown. Очень удобно подключать кода из репозиториев github с постоянным выводом актуальной версии из репозитория. - jekyll-asciinema: Тег для подключения сессий в терминале, созданных с помощью asciinema .
- Jekyll-Youtube Тег Liquid, подключающий видео с Youtube с отзывчивой разметкой (при желании вы можете использовать свою разметку, подключив соответствующий фрагмент).
- Jekyll Flickr Plugin от Lawrence Murray: Подключает альбомы Flickr в виде галереи с иконками и встроенным лайтбоксом для просмотра увеличенного изображения.
- jekyll-figure: Тег liquid, генерирующий элемент
<figure>
. - Jekyll Video Embed: Плагин предоставляет несколько тегов для подключаения на страницу видео с разных источников (Youtube, Vimeo, UStream и Ted Talks).
- jekyll-i18n_tags: Тег для переводов.
- Jekyll Ideal Image Slider: Тег Liquid для создания слайдеров с изображениями на основе Ideal Image Slider.
Коллекции
- Jekyll Plugins от Recursive Design: Плагины для генерации страниц проекта из файлов readme на GitHub, а также страницы категорий и карты сайта.
- Company website and blog plugins от Flatterline, a Ruby on Rails development company: Генератор страниц портфолио/проект, страницы команды/автора, тег для биографии автора и несколько небольших плагинов.
- Jekyll plugins от Aucor: Плагин для обрезки пустых строк/пробелов и сортировки страниц по атрибуту weight .
Остальные
- ditaa-ditaa от Tom Thorogood: Сильно измененный плагин jekyll-ditaa, рендерящий диаграммы с ASCII-арт в изображения PNG.
- Pygments Cache Path от Raimonds Simanovskis: Плагин для кэширования кода, подсвечиваемого Pygments.
- Draft/Publish Plugin от Michael Ivey: Сохранение постов как черновиков.
- Growl Notification Generator от Tate Johnson: Пересылает уведомления Jekyll в Growl.
- Growl Notification Hook от Tate Johnson: Улучшенная альтернатива предыдущему плагину, реализующая хуки.
- Related Posts от Lawrence Woodman: Переписывает
site.related_posts
для использования категорий при определении связанных постов. - Tiered Archives от Eli Naeher: Создает многоуровневую переменную шаблона, позволяющую группировать архивы по годам и месяцам.
- Jekyll-localization: Плагин Jekyll добавляющий к движку рендеринга возможности локализации.
- Jekyll-rendering: Плагин Jekyll предоставляющий альтернативные движки рендеринга.
- Jekyll-pagination: Плагин, расширяющий генерацию разбивки страниц.
- Jekyll-tagging: Плагин, автоматически генерирующий облако тегов и страницы тегов.
- Jekyll-scholar: Расширения Jekyll для учебных блогов.
- Jekyll-asset_bundler: Упаковывает и минифицирует JavaScript and CSS.
- Jekyll-assets от ixti: Подключение ресурсов в стиле Rail ( CoffeeScript, Sass, LESS и т.д.; можно указывать зависимости простыми комментариями для их автоматичского разрешения; минифицирует и сжимает; использует шаблоны JST; улушение кэширования и многое другое).
- JAPR: Jekyll Asset Pipeline Reborn — Мощная система подключения ресурсов в Jekyll, собирающая, конвертирующая и сжимающая JavaScript и CSS ресурсы.
- File compressor от mytharcher: Сжатие HTML и JavaScript при сборке сайта.
- Jekyll-minibundle: Подключение ресурсов и улучшение кэширования с использованием внешних элементов минификации на ваш выбор. Не требует сторонних gem.
- Singlepage-jekyll от JCB-K: Трансформирует Jekyll в динамический одностраничный сайт.
- generator-jekyllrb: Генератор Jekyll для Yeoman, инструмента для сборки веб-проектов.
- grunt-jekyll: Плагин Grunt для Jekyll.
- jekyll-postfiles: Добавляет каталог
_postfiles
и тег ``, для размещения файлов поста . - A layout that compresses HTML: Совеместимый с Github Pages способ сжатия HTML-файлов при сборке сайта.
- Jekyll CO₂: Генерирует HTML, показывающий ежемесячные изменения содержания CO₂ в воздухе по данным Mauna Loa на Гавайях.
- remote-include: Подключает файлы с удаленных URL.
- jekyll-minifier: Минифицирует HTML, XML, CSS и Javascript, как строчный, так и в виде отдельных файлов, используя
yui-compressor
иhtmlcompressor
. - Jekyll views router: Простой роутер между плагинами-генераторами и шаблонами.
- Jekyll Language Plugin: Совместимый с Jekyll 3.0 мультиязычный плагин для постов, страниц и фрагментов.
- Jekyll Deploy: Добавляет подкоманду для развертывания.
- Official Contentful Jekyll Plugin: Добавляет подкоманду
contentful
для импорта данных из Contentful. - jekyll-paspagon: Добавляет возможность продажи постов в различных форматах за криптовалюты.
- Hawkins: Добавляет в Jekyll подкоманду
liveserve
, инкорпорирующуюLiveReload
для предпросмотра страниц в браузере в реальном времени без нажатия на F5! - Jekyll Autoprefixer: Интеграция в Jekyll автопрефиксера.
- Jekyll-breadcrumbs: Создает “хлебные крошки” в Jekyll 3.x, с учетом СЕО-оптимизациии, поддержки переводов и прочего.
Плагины для редакторов
- sublime-jekyll: A Sublime Text пакет для сайтов на Jekyll. Упрощает создание постов и страниц в Jekyll, предоставляя доступ к тегам и фильтрам шаблонов, автодополнениие и т.д. Вы можете установить этот пакет вручную с GitHub или через Package Control.
- vim-jekyll: Плагин для vim, генерирующий новые посты и запускающий сервер jekyll без выхода из vim.
- markdown-writer: Пакет для Atom с поддержкой Jekyll. Может создавать новые посты/ черновики, управлять тегами/категориями, вставлять ссылки и изображения и добавляет полезные сочетания клавиш.
- Wordpress2Jekyll: Плагин для Wordpress, позволяющий использовать Wordpress в качестве редактора и автоматически экспортировать контент в Jekyll. WordPress2Jekyll сближает эти две системы управления контентом и облегчает управление сайтом с любого устройства.