您的第一个插件
插件允许您扩展 Jekyll 的行为以满足您的需求。Jekyll 中有六种类型的插件。
生成器
生成器在您的网站上创建内容。例如
- jekyll-feed创建博客帖子的 Atom 提要。
- jekyll-archives为博客类别和标签创建存档页面。
- jekyll-sitemap创建网站地图。
转换器
转换器将标记语言更改为另一种格式。例如
- jekyll-textile-converter将 textile 转换为 HTML。
- jekyll-coffeescript将 Coffeescript 转换为 JavaScript。
- jekyll-opal将 Ruby 转换为 JavaScript。
命令
命令使用子命令扩展 jekyll
可执行文件。例如
- jekyll-compose添加子命令以创建帖子、页面或草稿。
标签
标签创建自定义 Liquid 标签。例如
- jekyll-youtube嵌入 YouTube 视频。
- jekyll-asset-path-plugin输出资产的相对 URL。
- jekyll-swfobject嵌入 SWF 对象。
过滤器
过滤器创建自定义 Liquid 过滤器。例如
- jekyll-time-ago - 用文字表示两个日期之间的距离。
- jekyll-toc - 生成目录。
- jekyll-email-protect - 混淆电子邮件以保护它们免受垃圾邮件机器人的侵害。
钩子
钩子 提供精细的控制来扩展构建过程。例如
-
jemoji 显示表情符号
- jekyll-mentions 将提及 @jekyll 变成链接
- jekyll-spaceship - 高级示例。为表格、mathjax、plantuml、视频等提供强大的支持。
标志
在编写插件时需要注意两个标志
标志 | 说明 |
---|---|
|
一个布尔标志,它告知 Jekyll 此插件是否可以在不允许执行任意代码的环境中安全执行。GitHub Pages 使用此标志来确定可以使用哪些核心插件,以及哪些插件不安全。如果你的插件不允许执行任意代码,请将其设置为 |
|
此标志确定加载插件的顺序。有效值有: |
以上述示例插件之一为例,以下是指定这两个标志的方法
module Jekyll
class UpcaseConverter < Converter
safe true
priority :low
...
end
end
最佳实践
指南帮助你了解创建插件的具体信息。我们还有一些推荐的最佳实践来帮助构建你的插件。
我们建议为你的插件使用 gem。这将帮助你管理依赖项,保持与你的网站源代码分离,并允许你在多个项目中共享功能。有关创建 gem 的提示,请参阅 Ruby gem 指南 或查看现有插件的源代码,例如 jekyll-feed。