Spec-Zone.ru › Jekyll 4

Конвертеры

Если у вас есть новый язык разметки, который вы хотите использовать на вашем сайте, вы можете включить его, реализовав собственный конвертер. Языки разметки 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 метода:

Метод Описание

matches

Соответствует ли данное расширение списку допустимых расширений этого конвертера? Принимает один аргумент: расширение файла (включая точку). Должен вернуть true , если соответствует, false в противном случае.

output_ext

Расширение, которое будет присвоено выходному файлу (включая точку). Обычно это будет ".html".

convert

Логика преобразования содержимого. Принимает один аргумент: исходное содержимое файла (без 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/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API