跳到主要内容
版本:2.0.0-beta.21

静态方法

静态方法不是插件实例的一部分——它们是构造器函数的一部分。 这些方法会被用来校验并规范化插件选项和主题配置,而后两者随后会作为构造器参数用来初始化插件实例。

validateOptions({options, validate})

返回已校验和规范化的插件选项。 这个方法会在插件被初始化前被调用。 你必须返回新选项,因为这个选项会在初始化时被传递给插件。

options

validateOptions 会接受提供给插件的 options 以供校验和规范化。

validate

validateOptions 会接受一个 validate 函数,后者接受 Joi 模式和插件选项,并返回经过模式校验和规范化的选项。 validate 会自动校验配置并处理错误。

提示

我们推荐用 Joi 进行选项校验和规范化。

为了避免混用 Joi 版本,请使用 const {Joi} = require("@docusaurus/utils-validation")

如果你不用 Joi 进行校验,你可以在遇到无效选项时抛出错误,并在成功时返回选项。

my-plugin/src/index.js
function myPlugin(context, options) {
return {
name: 'docusaurus-plugin',
// 其余的方法
};
}

myPlugin.validateOptions = ({options, validate}) => {
const validatedOptions = validate(myValidationSchema, options);
return validationOptions;
};

module.exports = myPlugin;

在 TypeScript 中,你也可以选择把这个函数作为单独的命名导出。

my-plugin/src/index.ts
export default function (context, options) {
return {
name: 'docusaurus-plugin',
// 其余的方法
};
}

export function validateOptions({options, validate}) {
const validatedOptions = validate(myValidationSchema, options);
return validationOptions;
}

validateThemeConfig({themeConfig, validate})

返回已校验和规范化的主题配置。

themeConfig

validateThemeConfig 会接受 docusaurus.config.js 中提供的 themeConfig 以供校验和规范化。

validate

validateThemeConfig 会接受一个 validate 函数,后者接受 Joi 模式和 themeConfig,并返回经过模式校验和规范化的选项。 validate 会自动校验配置并处理错误。

提示

我们推荐用 Joi 进行主题配置校验和规范化。

为了避免混用 Joi 版本,请使用 const {Joi} = require("@docusaurus/utils-validation")

如果你不用 Joi 进行校验,你可以在遇到无效选项时抛出错误。

my-theme/src/index.js
function myPlugin(context, options) {
return {
name: 'docusaurus-plugin',
// 其余的方法
};
}

myPlugin.validateThemeConfig = ({themeConfig, validate}) => {
const validatedThemeConfig = validate(myValidationSchema, options);
return validatedThemeConfig;
};

module.exports = validateThemeConfig;

在 TypeScript 中,你也可以选择把这个函数作为单独的命名导出。

my-theme/src/index.ts
export default function (context, options) {
return {
name: 'docusaurus-plugin',
// 其余的方法
};
}

export function validateThemeConfig({themeConfig, validate}) {
const validatedThemeConfig = validate(myValidationSchema, options);
return validatedThemeConfig;
}