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

七、学习资源

相关推荐
sunshine22 girl3 小时前
Java学习一 环境配置2 安装和基本使用Idea
java·学习·intellij-idea
Kobebryant-Manba4 小时前
学习Bert微调
人工智能·学习·bert
xian_wwq4 小时前
【学习笔记】深度认知系列-第14讲 端侧AI崛起——为什么AI正在从云端走向本地
人工智能·笔记·学习
我爱cope5 小时前
【计算机网络 | 传输层3:TCP 协议概述:面向连接、可靠传输到底意味着什么?】
网络·网络协议·学习·tcp/ip·计算机网络·传输层
代码的小搬运工6 小时前
KVO学习
学习·ios·cocoa
辣知7 小时前
辣知·化智47 黄帝陵与民族精神归途
学习
知识分享小能手7 小时前
深度学习学习教程,从入门到精通,数值计算 — 知识点详解(4)
人工智能·深度学习·学习
zyf1044168 小时前
暑期实践日志 Day49:复盘题库出题成果,夯实章节考点
学习·计算机网络·剪辑·暑期实践·课题任务
kaixin_啊啊8 小时前
多模态学习
学习
m4Rk_9 小时前
【论文阅读】Agent 记忆机制(62):DCM-Agent——用双簇记忆化解优化问题的多范式冲突
论文阅读·人工智能·学习·开源·github