--- name: docusaurus description: Docusaurus 3.x documentation framework - MDX authoring, theming, versioning, i18n. Use for documentation sites or spec-weave.com. --- # Docusaurus Expert Skill Expert in Docusaurus 3.x documentation framework - the modern static site generator for technical documentation, blogs, and landing pages. ## Core Competencies ### 1. Site Setup & Configuration - **Installation**: Quick start with templates - **Configuration**: `docusaurus.config.ts` best practices - **Plugins**: Content, search, analytics, sitemap - **Themes**: Classic, Material, custom themes - **Deployment**: GitHub Pages, Netlify, Vercel, AWS ### 2. Content Authoring - **Markdown**: Standard Markdown with Docusaurus extensions - **MDX**: React components in Markdown - **Code Blocks**: Syntax highlighting, live code editors - **Admonitions**: Notes, tips, warnings, danger alerts - **Tabs**: Multi-language examples, platform-specific content ### 3. Advanced Features - **Versioning**: Multi-version documentation management - **i18n**: Internationalization and localization - **Search**: Algolia DocSearch, local search plugins - **Mermaid**: Diagram support with @docusaurus/theme-mermaid - **OpenAPI**: API documentation with docusaurus-plugin-openapi-docs ### 4. Customization - **Custom Components**: React components for docs - **Styling**: CSS modules, Tailwind CSS integration - **Swizzling**: Customize theme components - **Plugins**: Custom plugin development ## Quick Start ### Installation ```bash npx create-docusaurus@latest my-website classic --typescript cd my-website npm start ``` ### Project Structure ``` my-website/ ├── docs/ # Documentation pages │ ├── intro.md │ └── tutorial/ ├── blog/ # Blog posts (optional) │ └── 2024-01-01-post.md ├── src/ │ ├── components/ # Custom React components │ ├── css/ # Custom styles │ └── pages/ # Standalone pages ├── static/ # Static assets │ └── img/ ├── docusaurus.config.ts # Main configuration ├── sidebars.ts # Sidebar configuration └── package.json ``` ## Configuration ### Basic Configuration ```typescript // docusaurus.config.ts import {Config} from '@docusaurus/types'; const config: Config = { title: 'My Project', tagline: 'Documentation made easy', url: 'https://myproject.com', baseUrl: '/', // GitHub Pages deployment config organizationName: 'facebook', projectName: 'docusaurus', // Theme config themeConfig: { navbar: { title: 'My Project', logo: { alt: 'My Project Logo', src: 'img/logo.svg', }, items: [ { type: 'doc', docId: 'intro', position: 'left', label: 'Docs', }, {to: '/blog', label: 'Blog', position: 'left'}, { href: 'https://github.com/facebook/docusaurus', label: 'GitHub', position: 'right', }, ], }, footer: { style: 'dark', links: [ { title: 'Docs', items: [ { label: 'Tutorial', to: '/docs/intro', }, ], }, ], copyright: `Copyright © ${new Date().getFullYear()} My Project`, }, }, presets: [ [ 'classic', { docs: { sidebarPath: './sidebars.ts', editUrl: 'https://github.com/facebook/docusaurus/tree/main/', }, blog: { showReadingTime: true, editUrl: 'https://github.com/facebook/docusaurus/tree/main/', }, theme: { customCss: './src/css/custom.css', }, }, ], ], }; export default config; ``` ## MDX Content Features ### Admonitions ```markdown :::note This is a note ::: :::tip This is a tip ::: :::warning This is a warning ::: :::danger This is a danger alert ::: :::info Custom Title This is an info box with a custom title ::: ``` ### Code Blocks with Features ```markdown \```typescript title="src/components/HelloWorld.tsx" showLineNumbers {1,3-5} import React from 'react'; export function HelloWorld() { return
{description}
```
### 5. Add Edit Links
```typescript
docs: {
editUrl: 'https://github.com/org/repo/edit/main/',
},
```
## Troubleshooting
### Build Errors
```bash
# Clear cache
npm run clear
npm run build
```
### Broken Links
```bash
# Check for broken links during build
npm run build -- --debug
```
### Port Already in Use
```bash
PORT=3001 npm start
```
## Resources
- [Official Docs](https://docusaurus.io/)
- [Showcase](https://docusaurus.io/showcase)
- [Discord Community](https://discord.gg/docusaurus)
- [GitHub](https://github.com/facebook/docusaurus)
## Activation Keywords
Ask me about:
- "How do I set up Docusaurus?"
- "Docusaurus configuration best practices"
- "Adding search to Docusaurus"
- "Docusaurus versioning"
- "MDX components in Docusaurus"
- "Deploy Docusaurus to GitHub Pages"
- "Internationalization in Docusaurus"
- "Custom Docusaurus themes"