跳到主要内容
版本:Canary 🚧

静态方法

静态方法不是插件实例的一部分——它们附加在构造函数上。这些方法用于验证和规范插件选项和主题配置,然后将它们用作构造函数参数来初始化插件实例。

validateOptions({options, validate})

返回插件的验证和规范化选项。这个方法在插件初始化之前被调用。您必须返回这些选项,因为它们将在初始化期间传递给插件。

options

validateOptions被调用,options被传递给插件进行验证和规范化。

validate

validateOptionsvalidate函数调用,该函数以**Joi**模式和选项作为参数,返回经过验证的规范化选项。validate将自动处理错误和验证配置。

提示

建议使用Joi对选项进行验证和规范化。

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

如果您不使用**Joi**进行验证,则在无效选项的情况下抛出 Error,在成功的情况下返回选项。

my-plugin/src/index.js
function myPlugin(context, options) {
return {
name: "docusaurus-plugin",
// rest of methods
};
}

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

module.exports = myPlugin;

在 TypeScript 中,你也可以选择把它导出为一个单独的 export。

my-plugin/src/index.ts
export default function (context, options) {
return {
name: "docusaurus-plugin",
// rest of methods
};
}

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

validateThemeConfig({themeConfig, validate})

返回主题的经过验证的规范化配置。

themeConfig

validateThemeConfigdocusaurus.config.js中提供的themeConfig一起调用,用于验证和规范化。

validate

validateThemeConfigvalidate函数一起调用,该函数接受一个**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",
// rest of methods
};
}

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

module.exports = validateThemeConfig;

在 TypeScript 中,你也可以选择把它导出为一个单独的 export。

my-theme/src/index.ts
export default function (context, options) {
return {
name: "docusaurus-plugin",
// rest of methods
};
}

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