Quick Start
What is vitepress-tuck?
vitepress-tuck provides simple, flexible, and low-barrier plugin development and integration capabilities for VitePress. It wraps VitePress's defineConfig to provide an additional plugins option, shifting the complexity of plugin integration into the plugins themselves, so users only need to add plugins to the plugins array.
Installation
pnpm add vitepress vitepress-tucknpm install vitepress vitepress-tuckbun add vitepress vitepress-tuckdeno add vitepress vitepress-tuckyarn add vitepress vitepress-tuckUsing in a VitePress Site
Replace the Configuration File
Replace
defineConfigin.vitepress/config.tswithvitepress-tuck'sdefineConfig:tsimport { defineConfig } from 'vitepress' import { defineConfig } from 'vitepress-tuck' export default defineConfig({ plugins: [ // Add plugins here ], // Other VitePress config options ... })Configure the Client Entry
Import
virtual:enhance-appin.vitepress/theme/index.ts:tsimport type { Theme } from 'vitepress' import enhanceApp from 'virtual:enhance-app' import DefaultTheme from 'vitepress/theme' export default { extends: DefaultTheme, enhanceApp(ctx) { enhanceApp(ctx) }, } satisfies Themevirtual:enhance-appis a virtual module.vitepress-tuckautomatically injects plugin client code into it — no manual configuration required.TypeScript Support
If your project uses TypeScript, add the type reference in
tsconfig.json:json{ "compilerOptions": { "types": ["vitepress-tuck/client-types"] } }
Using Plugins
Using plugins is simple — just import and invoke them in the plugins array:
import { defineConfig } from 'vitepress-tuck'
import steps from 'vitepress-plugin-steps'
import mermaid from 'vitepress-plugin-mermaid-tuck'
export default defineConfig({
plugins: [
steps(),
mermaid({
// Plugin options can be passed here
}),
],
})Refer to each plugin's documentation for its configuration options.