Конвертеры
Если у вас есть новый язык разметки, который вы хотите использовать на вашем сайте, вы можете включить его, реализовав собственный конвертер. Языки разметки Markdown и Textile реализованы с помощью этого метода.
Помните о Front Matter
Jekyll будет конвертировать только файлы, имеющие YAML заголовок вверху, даже для конвертеров, которые вы добавляете с помощью плагина.
Ниже приведен конвертер, который будет обрабатывать все записи, заканчивающиеся .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 метода:
| Метод | Описание |
|---|---|
|
| Соответствует ли данное расширение списку допустимых расширений этого конвертера? Принимает один аргумент: расширение файла (включая точку). Должен вернуть |
|
| Расширение, которое будет присвоено выходному файлу (включая точку). Обычно это будет |
|
| Логика преобразования содержимого. Принимает один аргумент: исходное содержимое файла (без front matter). Должен вернуть строку. |
В нашем примере, UpcaseConverter#matches проверяет, является ли расширение нашего файла имен .upcase, и будет рендерить с помощью конвертера, если это так. Он будет вызывать UpcaseConverter#convert для обработки содержимого. В нашем простом конвертере мы просто делаем заглавными все символы в строке содержимого. Наконец, когда он сохраняет страницу, он сделает это с расширением .html.
© 2020 Jekyll Core Team and contributors
Licensed under the MIT license.
https://jekyllrb.com/docs/plugins/converters/