Basic Configuration
source.config.ts
Shiki Configuration
Themes
Choose from Shiki’s bundled themes or provide custom themes.Dual Themes (Recommended)
github-light, github-dark, dracula, nord, monokai, one-dark-pro, etc.
Single Theme
Regex Engine
Two engines are available:/packages/core/src/mdx-plugins/rehype-code.ts:10:
js(default): JavaScript-based regex engine, faster startuponiguruma: WASM-powered engine, more accurate for complex grammars
/packages/core/src/highlight/index.ts:62):
Language Loading
Lazy Loading (Default)
Load languages on-demand:Preload Languages
Load All Languages
Code Block Features
Title
Add a filename or title:Built-in Transformers
Fumadocs includes these Shiki transformers by default:transformerNotationHighlight
Highlight lines using{1-3} syntax:
transformerNotationFocus
Focus lines with// [!code focus]:
/packages/core/src/mdx-plugins/rehype-code.core.ts:25:
Language Icons
Automatic language icons in code blocks.Default Icons
Built-in icons for popular languages (from/packages/core/src/mdx-plugins/transformer-icon.ts:29):
- JavaScript, TypeScript, React (JSX/TSX)
- Python, Ruby, PHP, Go, Rust, C, C++
- Swift, Zig, GraphQL, Prisma
- Shell scripts, Vue
Icon Configuration
Disable Icons
Custom Transformers
Create custom Shiki transformers:Meta String Filtering
Filter or modify meta strings before processing:Code Block Utilities
parseCodeBlockAttributes
Parse custom attributes from meta strings:Meta String Parsing
From/packages/core/src/mdx-plugins/rehype-code.core.ts:39:
Advanced Examples
Multiple Features
Programmatic Highlighting
Use Shiki directly for runtime highlighting:/packages/core/src/highlight/index.ts:46: