用插件扩展网站建构
插件就是放在 .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 及参考 Hooks、Slots、Manifest、CLI。