文档站点生成器 - Fumadocs

一、简介

Fumadocs 是一款基于 React + Next.js 开发的现代化开源文档站点生成器,主打Headless 架构、MDX 驱动、高度可定制 ,专为技术文档、API 文档、知识库与产品手册设计。它遵循文档即代码理念,支持文件路由、多版本、多仓库聚合、全文搜索与自动化 API 文档生成,开箱即用且深度可扩展。


二、核心特点

特性 说明
MDX 原生支持 支持 Markdown 增强,可直接嵌入 React 组件、代码块、图表、交互演示
Headless 架构 核心逻辑与 UI 完全分离,可自由替换主题、布局、组件
Next.js 原生 基于 App Router + React Server Components,支持 SSG、ISR、流式渲染
多版本管理 支持文档版本切换,适配多分支、多版本文档托管
内置全文搜索 自带 Orama 搜索,可无缝对接 Algolia,无需额外服务
自动化文档 支持从 TypeScript 类型、OpenAPI 规范自动生成 API 文档
Playbook 式配置 通过 fumadocs.config.ts 统一管理导航、侧边栏、主题、搜索等
UI 主题化 提供默认精美 UI,支持暗色模式、响应式、Tailwind 定制

三、典型应用场景

  • 开源项目/组件库官方文档
  • 企业多产品、多版本技术手册
  • 微服务统一文档门户
  • API 文档、开发者平台
  • 个人知识库、教程网站、笔记站点
  • 需要高度自定义 UI 的品牌化文档站

四、核心概念

  1. 核心包分层
  • fumadocs-core:导航、侧边栏、TOC、搜索等无 UI 核心逻辑
  • fumadocs-ui:官方默认 UI 组件、布局、主题
  • fumadocs-mdx:MDX 解析、文件路由、内容加载
  1. 文档组件(Content Collection)

    以文件夹组织文档,支持多模块、多版本结构:

    复制代码
    content/
    └── docs/
        ├── index.mdx        # 首页
        ├── guide/           # 子目录
        │   ├── install.mdx
        │   └── config.mdx
        └── api/             # API 模块
            └── index.mdx
  2. 配置文件(fumadocs.config.ts)

    站点统一配置入口,定义标题、导航、侧边栏、主题、搜索等。

  3. 文件路由
    content/docs 下的 .mdx 文件自动生成路由,无需手动配置。

  4. TOC / 侧边栏

    自动从标题生成目录,支持滚动跟随、锚点定位。


五、快速开始

1. 环境要求

Node.js 18+

2. 创建项目

bash 复制代码
npm create fumadocs-app@latest my-fumadoc
cd my-fumadoc

3. 安装依赖

bash 复制代码
npm install

4. 启动开发

bash 复制代码
npm run dev

访问:http://localhost:3000

5. 编写文档

content/docs/ 下新建 .mdx 文件即可自动生成页面。

6. 基础配置

修改 fumadocs.config.ts 配置导航、主题、版本等。

7. 生产构建

bash 复制代码
npm run build

六、部署方案

1. Vercel(推荐)

  • 直接导入 Git 仓库
  • 构建命令:npm run build
  • 输出目录:.next
  • 自动部署、自动 HTTPS

2. GitHub Actions

yaml 复制代码
name: Deploy Fumadocs
on:
  push:
    branches: [main]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with: {node-version: 20}
      - run: npm install
      - run: npm run build
      - uses: peaceiris/actions-gh-pages@v3
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: ./out

3. Netlify / Cloudflare Pages

  • 构建命令:npm run build
  • 发布目录:out(需开启静态导出)

4. 自建服务器 / Nginx

  • 构建:npm run build
  • out 目录部署到 Nginx 静态站点即可

七、学习资源

相关推荐
技术小结-李爽2 小时前
【学习】怎样把“提问题”推荐给别人
学习
sweetheart7-72 小时前
go/golang 入门学习笔记(Java/Python/C++转Go快速上手)
笔记·学习·golang·go语言
꧁꫞꯭零꯭点꯭꫞꧂2 小时前
FastAPI入门学习
学习·fastapi
凉、介2 小时前
Armv8-A virtualization 笔记 (一)
c语言·笔记·学习·嵌入式·虚拟化·hypervisor
楼田莉子2 小时前
仿Muduo的高并发服务器:LoopThread模块及其ThreadPool模块
linux·服务器·c++·后端·学习
菜鸟的日志3 小时前
【嵌入系统】嵌入式学习笔记(一)
windows·笔记·嵌入式硬件·学习·ubuntu·操作系统
暗夜猎手-大魔王3 小时前
OpenCode提示词工程学习
学习
Slow菜鸟3 小时前
Docker 学习篇(七)| 实战 — 用 Docker 构建 SpringBoot + Vue 全栈项目
spring boot·学习·docker
南境十里·墨染春水3 小时前
linux 学习进展 网络编程 ——TCP 协议 TIME_WAIT 状态详解
linux·网络·学习