以下是 docmd 与各替代方案的对比,测量数据来自部署在同一台硬件上的一个 50 页站点。

3 秒即可开始写作,而非 30 分钟

docmd
Docusaurus
VitePress
MkDocs
npx @docmd/core dev

搞定。您的文档已上线。没有配置文件、没有脚手架、没有依赖迷宫。

npx create-docusaurus@latest my-site classic
cd my-site
npm install
npm start

四条命令、一个生成的项目(约 250 MB node_modules),以及一份在"看到任何有意义的东西"之前必须编辑的配置文件。

npx vitepress init

会询问 5 个问题、生成配置文件,然后您再运行 vitepress dev。很干净 —— 但仍需要脚手架。

pip install mkdocs-material
mkdocs new my-site && cd my-site
mkdocs serve

Python 生态。您需要 pip、一个虚拟环境,以及一份 mkdocs.yml,才能看到第一页的渲染。

资源体积差距是真实存在的

读者不应该为了读一段文字而下载整个 React 应用。在一个 50 页站点上,浏览器实际收到的是:

生成器 总初始加载 JS 载荷 CSS 载荷
docmd ~18 KB ~12 KB ~6 KB
MkDocs Material ~40 KB ~25 KB ~15 KB
VitePress ~50 KB ~35 KB ~15 KB
Mintlify ~120 KB ~80 KB ~40 KB
Docusaurus ~250 KB ~200 KB ~50 KB
为什么这很重要

每多 100 KB JavaScript,在中端手机上大约多耗 50 ms 解析时间。docmd 的 12 KB JS 意味着即便在 3G 网络下文档也能瞬间加载。承载同样的内容,Docusaurus 输出的 JavaScript 体积是 docmd 的 16 倍。

构建速度

在 M1 MacBook Air 上构建同一个 50 页站点:

生成器 冷构建 热重载 (dev)
docmd ~1.2 s ~80 ms
VitePress ~2.5 s ~150 ms
MkDocs Material ~3.0 s ~500 ms
Docusaurus ~15 s ~2 s

docmd 的重建快到您切个窗口回来,页面就已经更新了。

能妥善处理"未翻译"情况的 i18n

当读者切到某门语言,而其中部分页面尚未翻译时,多数工具都会失灵。docmd 会在构建时回退到默认 locale。

能力 docmd VitePress Docusaurus Starlight
按页面回退到默认 locale ❌ (404) ❌ (404)
本地化的"未翻译"提示
在切换器中自动隐藏缺失的 locale
即时页面存在性检查(不发网络请求)
版本管理 + i18n 组合
零配置(无需自写 React/Vue) 部分
VitePress 与 Docusaurus 的表现

如果读者切到 Hindi,但该页面未翻译,他们会看到一个 404 错误。唯一的变通办法是服务端重定向,或者自己写一个 React/Vue 组件。docmd 在构建时就处理好了 —— 不可用的 locale 会显示 “N/A” 徽标,未翻译的页面会静默回退,并附带本地化的提示 Callout。

Workspace

需要在同一域名下维护多个产品文档的团队(例如核心平台 + SDK),往往需要为每个产品准备独立的文档、各自的导航与发布节奏。多数生成器要么需要分别部署,要么需要用插件粘合。

能力 docmd Docusaurus VitePress MkDocs Starlight
原生 Workspace 支持 插件 插件
每个项目只需一行配置
每个项目独立版本管理
每个项目独立 i18n
项目间共享资源
单一 site/ 输出(无需反代)
零配置自动检测
docmd 的做法
docmd.config.json
{
  "workspace": {
    "projects": [
      { "prefix": "/", "src": "main-docs", "title": "Docs" },
      { "prefix": "/sdk", "src": "sdk-docs", "title": "SDK" }
    ]
  }
}

每个项目目录都拥有自己的 docmd.config.json,配置彼此独立。一次 npx @docmd/core build 就产出一个可部署目录 —— 不需要反向代理、不需要 Nginx、也不需要多条 CI 流水线。

Docusaurus 通过多实例插件达到类似效果,但每个实例都需要独立的插件条目、侧边栏文件与手工路由配置;MkDocs 则需要第三方插件 mkdocs-monorepo-plugin;VitePress、Starlight 与 Mintlify 干脆没有原生 Workspace 能力。

完整功能矩阵

特性 docmd Docusaurus VitePress MkDocs Material Starlight Mintlify
零配置启动
必需配置 docusaurus.config.js config.mts mkdocs.yml astro.config.mjs mint.json
Workspace 插件 插件
SPA 导航
原生版本管理 插件
原生 i18n 手动 插件
内置搜索 ❌ (Algolia) 云端
llms.txt
MCP 服务器
Agent Skills
Docker 镜像 N/A
内联讨论
PWA 支持 社区
可自托管
部署配置生成器 N/A

配置成本

为同时包含版本管理、i18n、搜索与站点地图的站点,所需的配置行数:

生成器 配置行数 所需文件
docmd ~15 行 1 (docmd.config.json)
MkDocs Material ~50 行 1 + 插件
VitePress ~80 行 1 + 主题目录
Docusaurus ~120 行 3+ 配置文件

质量保障

docmd 自带一套 brute-test 套件,覆盖 25 个不同场景85 条断言 —— 既覆盖每个独立功能,也覆盖它们的组合。每次发布都必须通过全部 85 条断言以及 13 项内部 failsafe 检查。

亲自运行测试
git clone https://github.com/docmd-io/docmd.git
cd docmd && node scripts/brute-test.js

同级别文档生成器中,没有谁把可比的端到端功能测试套件作为源码的一部分公开。