转换器

如果您有想要用于网站的新标记语言,可以通过实现自己的转换器来包含它。Markdown 和 Textile 标记语言都是使用此方法实现的。

记住您的页首信息

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

执行内容转换的逻辑。获取一个参数:文件的原始内容(不含页首信息)。必须返回一个字符串。

在我们的示例中,UpcaseConverter#matches 检查我们的文件名扩展名是否为 .upcase,如果是,则将使用该转换器进行渲染。它将调用 UpcaseConverter#convert 来处理内容。在我们的简单转换器中,我们只是将整个内容字符串大写。最后,当它保存页面时,它将使用 .html 扩展名进行保存。