Plugin API Reference
Complete reference documentation for creating Doom plugins.RspressPlugin Interface
All Doom plugins implement theRspressPlugin interface from @rspress/core:
Properties
name
Type:string
Required: Yes
Unique identifier for the plugin. Used for plugin management and debugging.
config
Type:(config: UserConfig, utils: ConfigUtils) => UserConfig | Promise<UserConfig>
Required: No
Modify the user configuration before the build starts.
Parameters:
config- The current configuration objectutils- Utilities for config manipulationremovePlugin(name: string)- Remove a plugin by name
markdown
Type:MarkdownOptions
Required: No
Configure markdown processing.
addRuntimeModules
Type:(config: UserConfig, isProd: boolean) => Record<string, string> | Promise<Record<string, string>>
Required: No
Create virtual modules that can be imported at runtime.
Parameters:
config- The user configurationisProd- Whether this is a production build
addPages
Type:(config: UserConfig) => PageOptions[] | Promise<PageOptions[]>
Required: No
Add custom pages to the site.
globalStyles
Type:string
Required: No
Path to a CSS or SCSS file to include globally.
Example:
globalUIComponents
Type:string[]
Required: No
Array of component paths to render on every page.
Example:
Remark Plugin API
Remark plugins transform the markdown AST.Plugin Signature
AST Node Types
Common markdown AST node types:Visiting Nodes
Useunist-util-visit to traverse the AST:
Creating JSX Elements
Convert markdown to JSX elements:Adding Imports
Use the shared utility to add imports:UserConfig Type
The user configuration object:Helper Functions
generateRuntimeModule
Load and process data files at build time:getASTNodeImport
Create import statement nodes:Plugin Examples
See the built-in plugins for complete examples:- API Plugin - Runtime modules, data loading
- Auto Sidebar Plugin - Config modification, file scanning
- Auto TOC Plugin - Remark plugin, AST transformation
- Directives Plugin - Multiple directive types
- Mermaid Plugin - Code block transformation
- Permission Plugin - K8s resource handling
- Global Plugin - Global components and styles