您的第一个插件

插件允许您扩展 Jekyll 的行为以满足您的需求。Jekyll 中有六种类型的插件。

生成器

生成器在您的网站上创建内容。例如

转换器

转换器将标记语言更改为另一种格式。例如

命令

命令使用子命令扩展 jekyll 可执行文件。例如

标签

标签创建自定义 Liquid 标签。例如

过滤器

过滤器创建自定义 Liquid 过滤器。例如

钩子

钩子 提供精细的控制来扩展构建过程。例如

标志

在编写插件时需要注意两个标志

标志 说明

safe

一个布尔标志,它告知 Jekyll 此插件是否可以在不允许执行任意代码的环境中安全执行。GitHub Pages 使用此标志来确定可以使用哪些核心插件,以及哪些插件不安全。如果你的插件不允许执行任意代码,请将其设置为 true。GitHub Pages 仍然不会加载你的插件,但如果你提交它以包含在核心插件中,最好将其设置正确!

priority

此标志确定加载插件的顺序。有效值有::lowest:low:normal:high:highest。优先级最高的匹配项首先应用,优先级最低的匹配项最后应用。

以上述示例插件之一为例,以下是指定这两个标志的方法

module Jekyll
  class UpcaseConverter < Converter
    safe true
    priority :low
    ...
  end
end

最佳实践

指南帮助你了解创建插件的具体信息。我们还有一些推荐的最佳实践来帮助构建你的插件。

我们建议为你的插件使用 gem。这将帮助你管理依赖项,保持与你的网站源代码分离,并允许你在多个项目中共享功能。有关创建 gem 的提示,请参阅 Ruby gem 指南 或查看现有插件的源代码,例如 jekyll-feed