静态方法
静态方法不是插件实例的一部分,而是挂载在构造函数上的。这些方法用于校验和规范化插件选项与主题配置,随后作为构造参数用于初始化插件实例。
validateOptions({options, validate})
返回经过校验和规范化的插件选项。该方法会在插件初始化前调用。你必须返回 options,因为它们会在初始化时传递给插件。
options
validateOptions
会接收传递给插件的 options
,用于校验和规范化。
validate
validateOptions
会接收 validate
函数,该函数以 Joi schema 和 options 作为参数,返回校验和规范化后的 options。validate
会自动处理错误和校验配置。
提示
推荐使用 Joi 进行选项的校验和规范化。
为避免 Joi 版本冲突,建议使用 import {Joi} from '@docusaurus/utils-validation'
如果你没有使用 Joi 进行校验,可以在选项无效时抛出 Error,校验通过时直接返回 options。
my-plugin/src/index.js
export default function myPlugin(context, options) {
return {
name: 'docusaurus-plugin',
// 其他方法
};
}
export function validateOptions({options, validate}) {
const validatedOptions = validate(myValidationSchema, options);
return validatedOptions;
}
validateThemeConfig({themeConfig, validate})
返回经过校验和规范化的主题配置。
themeConfig
validateThemeConfig
会接收在 docusaurus.config.js
中提供的 themeConfig
,用于校验和规范化。
validate
validateThemeConfig
会接收 validate
函数,该函数以 Joi schema 和 themeConfig
作为参数,返回校验和规范化后的配置。validate
会自动处理错误和校验配置。
提示
推荐使用 Joi 进行主题配置的校验和规范化。
为避免 Joi 版本冲突,建议使用 import {Joi} from '@docusaurus/utils-validation'
如果你没有使用 Joi 进行校验,可以在配置无效时抛出 Error。
my-theme/src/index.js
export default function myPlugin(context, options) {
return {
name: 'docusaurus-plugin',
// 其他方法
};
}
export function validateThemeConfig({themeConfig, validate}) {
const validatedThemeConfig = validate(myValidationSchema, options);
return validatedThemeConfig;
}