插件
插件是 Docusaurus 功能特性的基石。 每个插件都有其自己的独立功能。 插件可以通过预设被打包分发。
插件开发
插件是一个接收两个参数的函数:context
及 options
。 它会返回一个插件实例对象(或者一个对象的 Promise)。 你所创建的插件可以是函数或者模块。 更多信息可以参见插件方法索引章节。
函数定义
你可以在 Docusaurus 配置文件中直接以函数形式声明插件:
docusaurus.config.js
export default {
// ...
plugins: [
async function myPlugin(context, options) {
// ...
return {
name: 'my-plugin',
async loadContent() {
// ...
},
async contentLoaded({content, actions}) {
// ...
},
/* 其他生命周期 API */
};
},
],
};
模块定义
你可以用一个模块路径声明插件,路径应指向一个文件或者一个 npm 包:
docusaurus.config.js
export default {
// ...
plugins: [
// 不带选项:
'./my-plugin',
// 或者带上选项:
['./my-plugin', options],
],
};
然后,你可以在 my-plugin
文件夹中,创建一个 index.js
文件,内容类似如下:
my-plugin/index.js
export default async function myPlugin(context, options) {
// ...
return {
name: 'my-plugin',
async loadContent() {
/* ... */
},
async contentLoaded({content, actions}) {
/* ... */
},
/* 其他生命周期 API */
};
}