跳转至

Docusaurus 文档框架

一句话概述:Docusaurus 是 Meta(Facebook)开源的文档网站生成器,基于 React,内置版本管理和国际化,适合大型项目文档。

核心知识点

概念白话解释
DocusaurusMeta 出品的文档框架 = React 驱动的文档网站
MDX加强版 Markdown = 可以在 Markdown 里写 React 组件
Versioning版本管理 = 同时维护多个版本的文档
i18n国际化 = 一套文档支持多种语言
Sidebar侧边栏 = 自动或手动生成的导航菜单
Plugin插件 = 扩展博客/搜索/分析等功能

安装配置

# 前置要求:Node.js >= 18
node -v                                               # 检查 Node 版本

# 创建新项目
npx create-docusaurus@latest my-docs classic           # 用经典模板创建
cd my-docs                                            # 进入项目

# 启动开发服务器
npm start                                             # 本地预览(http://localhost:3000)

# 项目结构
# my-docs/
# ├── blog/                                           # 博客文章
# ├── docs/                                           # 文档目录
# │   └── intro.md                                    # 文档首页
# ├── src/                                            # React 组件
# │   └── pages/                                      # 自定义页面
# ├── static/                                         # 静态资源
# ├── docusaurus.config.js                            # 主配置文件
# └── sidebars.js                                     # 侧边栏配置

配置文件

// docusaurus.config.js
/** @type {import('@docusaurus/types').Config} */
const config = {
  title: '我的项目',                                    // 网站标题
  tagline: '一个很棒的项目',                              // 副标题
  url: 'https://example.com',                          // 网站地址
  baseUrl: '/',                                        // 基础路径

  // 主题配置
  themeConfig: {
    navbar: {                                          // 顶部导航栏
      title: '我的项目',
      items: [
        { type: 'doc', docId: 'intro', label: '文档' }, // 文档链接
        { to: '/blog', label: '博客' },                 // 博客链接
        { href: 'https://github.com/...', label: 'GitHub' },
      ],
    },
    footer: {                                          // 底部
      style: 'dark',
      copyright: `Copyright © ${new Date().getFullYear()}`,
    },
    colorMode: {                                       // 明暗模式
      defaultMode: 'light',
      respectPrefersColorScheme: true,                 // 跟随系统
    },
  },

  // 预设(包含文档+博客+页面插件)
  presets: [
    ['classic', {
      docs: {
        sidebarPath: './sidebars.js',                  // 侧边栏配置
        editUrl: 'https://github.com/.../edit/main/',  // 编辑链接
      },
      blog: { showReadingTime: true },                 // 显示阅读时间
      theme: { customCss: './src/css/custom.css' },    // 自定义样式
    }],
  ],
};

module.exports = config;

写文档

---
sidebar_position: 1
title: 快速开始
description: 5分钟上手指南
tags: [入门, 教程]
---

# 快速开始

这是文档内容,支持标准 Markdown。

## 使用 MDX 嵌入 React 组件

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

<Tabs>
  <TabItem value="npm" label="npm">

  ```bash
  npm install my-package
  ```

  </TabItem>
  <TabItem value="yarn" label="yarn">

  ```bash
  yarn add my-package
  ```

  </TabItem>
</Tabs>

:::tip 小技巧
这是一个提示框,Docusaurus 内置支持。
:::

:::warning 注意
这是一个警告框。
:::

:::danger 危险
这是一个危险警告。
:::

版本管理

# 创建新版本快照
npm run docusaurus docs:version 1.0                    # 为当前文档创建 v1.0 快照

# 文件结构变化
# versioned_docs/
# └── version-1.0/                                    # v1.0 文档快照
# versioned_sidebars/
# └── version-1.0-sidebars.json                       # v1.0 侧边栏
# versions.json                                       # 版本列表

# docs/ 目录始终是 "下一版"(开发中)

构建部署

npm run build                                         # 构建静态网站(输出到 build/)
npm run serve                                         # 本地预览构建结果

# 部署到 GitHub Pages
USE_SSH=true npm run deploy                            # SSH 方式部署
GIT_USER=<username> npm run deploy                     # HTTPS 方式部署

常见报错

报错原因解决
Module not found缺少依赖npm install 重新安装
MDX compilation errorMDX 语法错误检查 JSX 标签是否闭合
Broken link文档链接失效检查链接路径,运行 npm run build 会报告
Sidebar item not found侧边栏引用了不存在的文档检查 sidebars.js 配置
Node.js versionNode 版本太低升级到 Node >= 18

速查表

# 项目管理
npx create-docusaurus@latest <name> classic           # 创建项目
npm start                                             # 开发预览
npm run build                                         # 构建
npm run deploy                                        # 部署

# 文档管理
npm run docusaurus docs:version <ver>                  # 创建版本

# Markdown 增强
# :::tip / :::warning / :::danger / :::info           # 提示框
# <Tabs> + <TabItem>                                  # 标签页
# import Component from '@theme/...'                  # 引入组件

# 适用场景
# React 项目文档 → Docusaurus
# Vue 项目文档 → VitePress
# Python 项目文档 → MkDocs / Sphinx