用插件扩展网站建构

插件就是放在 .moss/plugins/{名称}/ 里的一个 JavaScript 包。青苔会自动发现它,读取它的清单,在每次构建的合适阶段调用它声明的钩子。

.moss/plugins/my-plugin/
├── manifest.json     ← 描述插件的能力与配置
├── main.bundle.js    ← 插件代码
└── icon.svg

钩子

插件通过钩子接入编译流程的各个阶段:转换内容、往模板里注入内容、部署、向外分发。清单里声明用到哪些钩子,青苔就在对应阶段回调你的代码。

{
  "name": "my-plugin",
  "hooks": ["transform"]
}

插槽

插槽是模板里预留的位置(页头、页脚、边栏等)。插件可以往插槽注入 HTML,从而在不改主题的情况下给页面加入自定义元素。

moss-api

插件运行时可以调用 moss-api 读取站点内容、访问配置、登记部署渠道。它是插件与青苔之间的接口。

深入了解

最小可用插件、完整的钩子列表、插槽、清单格式和 CLI,见英文文档 Write a plugin 及参考 HooksSlotsManifestCLI

青苔发布