--- name: vitepress-markdown description: Markdown extensions including frontmatter, custom containers, tables, anchors, and file includes --- # Markdown Extensions VitePress extends standard markdown with additional features for documentation. ## Frontmatter YAML metadata at the top of markdown files: ```md --- title: Page Title description: Page description for SEO layout: doc outline: [2, 3] --- # Content starts here ``` Access frontmatter in templates: ```md # {{ $frontmatter.title }} ``` Or in script: ```vue ``` ## Custom Containers Styled callout blocks: ```md ::: info This is an info box. ::: ::: tip This is a tip. ::: ::: warning This is a warning. ::: ::: danger This is a dangerous warning. ::: ::: details Click to expand Hidden content here. ::: ``` Custom titles: ```md ::: danger STOP Do not proceed! ::: ::: details Click me {open} Open by default with {open} attribute. ::: ``` ## GitHub-flavored Alerts Alternative syntax using blockquotes: ```md > [!NOTE] > Highlights information users should know. > [!TIP] > Optional information for success. > [!WARNING] > Critical content requiring attention. > [!CAUTION] > Negative potential consequences. ``` ## Header Anchors Headers get automatic anchor links. Custom anchors: ```md # My Heading {#custom-anchor} [Link to heading](#custom-anchor) ``` ## Table of Contents Generate a TOC with: ```md [[toc]] ``` ## GitHub-Style Tables ```md | Feature | Status | |---------|--------| | SSR | ✅ | | HMR | ✅ | ``` ## Emoji Use shortcodes: ```md :tada: :rocket: :100: ``` ## File Includes Include content from other files: ```md ``` With line ranges: ```md ``` With regions: ```md Usage content here ``` ## Code Snippet Import Import code from files: ```md <<< @/snippets/example.js ``` With line highlighting: ```md <<< @/snippets/example.js{2,4-6} ``` With language override: ```md <<< @/snippets/example.cs{1,2 c#:line-numbers} ``` Import specific region: ```md <<< @/snippets/example.js#regionName{1,2} ``` ## Code Groups Tab groups for code variants: ````md ::: code-group ```js [config.js] export default { /* ... */ } ``` ```ts [config.ts] export default defineConfig({ /* ... */ }) ``` ::: ```` Import files in code groups: ```md ::: code-group <<< @/snippets/config.js <<< @/snippets/config.ts ::: ``` ## Math Equations Requires setup: ```bash npm add -D markdown-it-mathjax3@^4 ``` ```ts // .vitepress/config.ts export default { markdown: { math: true } } ``` Then use LaTeX: ```md Inline: $E = mc^2$ Block: $$ \frac{-b \pm \sqrt{b^2-4ac}}{2a} $$ ``` ## Image Lazy Loading ```ts export default { markdown: { image: { lazyLoading: true } } } ``` ## Raw Container Prevent VitePress style conflicts: ```md ::: raw ::: ``` ## Key Points - Frontmatter supports YAML or JSON format - Custom containers support info, tip, warning, danger, details - `[[toc]]` generates table of contents - `@` in imports refers to source root (or `srcDir` if configured) - Code groups create tabbed code blocks - Math support requires markdown-it-mathjax3 package