Static methods
Static methods are not part of the plugin instance—they are attached to the constructor function. These methods are used to validate and normalize the plugin options and theme config, which are then used as constructor parameters to initialize the plugin instance.
validateOptions({options, validate})
Returns validated and normalized options for the plugin. This method is called before the plugin is initialized. You must return the options since they will be passed to the plugin during initialization.
options
validateOptions
is called with options
passed to plugin for validation and normalization.
validate
validateOptions
is called with validate
function which takes a Joi schema and options as the arguments, returns validated and normalized options. validate
will automatically handle error and validation config.
:::tip
Joi is recommended for validation and normalization of options.
To avoid mixing Joi versions, use const {Joi} = require("@docusaurus/utils-validation")
:::
If you don't use Joi for validation you can throw an Error in case of invalid options and return options in case of success.
function myPlugin(context, options) {
return {
name: 'docusaurus-plugin',
// rest of methods
};
}
myPlugin.validateOptions = ({options, validate}) => {
const validatedOptions = validate(myValidationSchema, options);
return validationOptions;
};
module.exports = myPlugin;
In TypeScript, you can also choose to export this as a separate named export.
export default function (context, options) {
return {
name: 'docusaurus-plugin',
// rest of methods
};
}
export function validateOptions({options, validate}) {
const validatedOptions = validate(myValidationSchema, options);
return validationOptions;
}
validateThemeConfig({themeConfig, validate})
Return validated and normalized configuration for the theme.
themeConfig
validateThemeConfig
is called with themeConfig
provided in docusaurus.config.js
for validation and normalization.
validate
validateThemeConfig
is called with validate
function which takes a Joi schema and themeConfig
as the arguments, returns validated and normalized options. validate
will automatically handle error and validation config.
:::tip
Joi is recommended for validation and normalization of theme config.
To avoid mixing Joi versions, use const {Joi} = require("@docusaurus/utils-validation")
:::
If you don't use Joi for validation you can throw an Error in case of invalid options.
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;
In TypeScript, you can also choose to export this as a separate named export.
export default function (context, options) {
return {
name: 'docusaurus-plugin',
// rest of methods
};
}
export function validateThemeConfig({themeConfig, validate}) {
const validatedThemeConfig = validate(myValidationSchema, options);
return validatedThemeConfig;
}