文档站点生成器 - 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 静态站点即可

七、学习资源

相关推荐
一条泥憨鱼10 小时前
【计算机网络】| 从 MAC 到 NAT 的跨网段通信全链路
服务器·网络·学习·计算机网络·macos
miao_0v010 小时前
10.20任务
学习·个人开发
Generalzy10 小时前
Qt 桌面开发入门:PySide6 学习路线、架构原理与技术选型
笔记·python·学习
想做小南娘,发现自己是女生喵11 小时前
第二周学习文档 Linux C 文件操作
linux·c语言·学习
潜心一志11 小时前
图像预处理—— 图像的变换与校正(理论)
学习·计算机视觉
nmjkhome11 小时前
26 疲劳的几个重要概念(第51课)-solid works simulation
学习
程序猿乐锅11 小时前
【从0-1学习Python | 第六篇】 Python 函数:定义、参数与返回值
开发语言·python·学习
燕落南枝11 小时前
HTML 学习:input 单选、复选与文件域详解
服务器·学习·html
星恒随风1 天前
Linux线程概念详解:从分页存储、页表、MMU与TLB,深入理解线程和进程的区别与联系
linux·运维·笔记·学习·状态模式
qq_284274051 天前
数控机床编程基础与坐标系:编程六步流程、程序号/程序段/程序字格式,与右手定则下车床铣床XYZ轴判定(含考点)
笔记·学习·自动化·制造