Skip to main content

Plugins Overview

Doom’s plugin system extends the core documentation generator with additional features and capabilities. Built on top of Rspress, Doom provides a powerful set of built-in plugins and allows you to create custom plugins.

What are Plugins?

Plugins in Doom are modules that hook into the build process to add features, transform content, or customize behavior. They follow the RspressPlugin interface and can:
  • Transform markdown content using remark/rehype plugins
  • Add runtime modules and virtual modules
  • Inject global components and styles
  • Modify configuration
  • Add custom pages

Built-in Plugins

Doom includes several powerful plugins out of the box:

Core Plugins

API Plugin

Generate API documentation from OpenAPI specs and Kubernetes CRDs

Auto Sidebar

Automatically generate navigation and sidebar from directory structure

Auto TOC

Automatically insert table of contents in documentation pages

Directives

Enhanced markdown directives for callouts and custom containers

Content Plugins

Replace Plugin

Embed and sync content from external sources with smart reference blocks

Global Plugin

Register global components, styles, and runtime configuration

Enhancement Plugins

Mermaid

Render Mermaid diagrams in your documentation

Shiki

Enhanced syntax highlighting with Shiki transformers for code blocks

Permission

Document Kubernetes RBAC permissions and role templates

Plugin Architecture

Doom plugins are based on the Rspress plugin system and follow this structure:
import type { RspressPlugin } from '@rspress/core'

export const myPlugin = (options): RspressPlugin => {
  return {
    name: 'my-plugin',
    // Plugin hooks
  }
}

Plugin Hooks

Plugins can implement various hooks:
  • config - Modify the configuration
  • markdown - Add markdown transformers (remark/rehype plugins)
  • addRuntimeModules - Add virtual modules available at runtime
  • addPages - Add custom pages to the site
  • globalStyles - Add global CSS/SCSS files
  • globalUIComponents - Add global UI components

Using Plugins

Plugins are typically configured in your doom.config.ts file:
import { defineConfig } from '@alauda/doom'
import { myCustomPlugin } from './plugins/my-plugin'

export default defineConfig({
  plugins: [
    myCustomPlugin({ /* options */ })
  ]
})
Most built-in plugins are automatically included and don’t need manual configuration.

Next Steps

Creating Plugins

Learn how to create your own custom plugins

Plugin API

Complete reference for the plugin API

Build docs developers (and LLMs) love