搜索 K
主题
Docusaurus 是面向“产品级文档门户”的 React 方案,强项是版本化、国际化、组件化扩展和生态完整度。
适合:
不适合:
| 能力 | 表现 | 说明 |
|---|---|---|
| 内容表达 | 强 | Markdown + MDX,支持组件化叙事 |
| 信息架构 | 强 | 多文档集、侧边栏、版本/语言组合导航 |
| 搜索 | 强 | Algolia 生态成熟,本地方案可选 |
| i18n | 强 | 官方完整流程,支持路由和内容本地化 |
| 版本化 | 强 | 官方内建,适合长期演进文档 |
| 主题扩展 | 强 | 组件重写能力高 |
| 插件生态 | 强 | 大量社区插件与实战案例 |
| 维护成本 | 中高 | 工程复杂度高于纯 Markdown 方案 |
docusaurus.config.* 与插件配置build/ 目录用于托管npm run start:开发模式npm run build:生产构建npm run serve:本地预览构建产物npm run swizzle:主题组件定制my-docs/
docs/
intro.md
guides/
reference/
blog/
src/
css/custom.css
pages/
i18n/
zh-Hans/
en/
docusaurus.config.js
sidebars.js建议:
docs/ 放稳定知识结构blog/ 放时间线内容i18n/ 按语言分层管理翻译资产src/pages/ 放非文档落地页(about/pricing/community)import { themes as prismThemes } from "prism-react-renderer";
export default {
title: "Engineering Docs",
tagline: "Public learning notes",
url: "https://example.com",
baseUrl: "/",
favicon: "img/favicon.ico",
organizationName: "your-org",
projectName: "your-project",
onBrokenLinks: "throw",
onBrokenMarkdownLinks: "warn",
i18n: {
defaultLocale: "zh-Hans",
locales: ["zh-Hans", "en"],
},
presets: [
[
"classic",
{
docs: {
sidebarPath: "./sidebars.js",
routeBasePath: "/docs",
editUrl: "https://github.com/your-org/your-project/edit/main/",
showLastUpdateTime: true,
showLastUpdateAuthor: true,
},
blog: {
showReadingTime: true,
blogSidebarCount: 20,
},
theme: {
customCss: "./src/css/custom.css",
},
},
],
],
themeConfig: {
navbar: {
title: "Docs",
items: [
{ to: "/docs/intro", label: "文档", position: "left" },
{ to: "/blog", label: "博客", position: "left" },
{ type: "localeDropdown", position: "right" },
],
},
prism: {
theme: prismThemes.github,
darkTheme: prismThemes.dracula,
},
},
};关键点:
onBrokenLinks=throw 建议在 CI 强制开启editUrl 显著降低外部贡献门槛routeBasePath 明确文档入口,利于 SEO 与站点结构治理---
id: docusaurus-selection
title: Docusaurus 选型指南
description: 平台级文档能力拆解
slug: /guides/docusaurus-selection
tags: [docs, docusaurus, i18n]
---src/components,避免页面内复制粘贴keywordsdefaultLocale 是否显示前缀要在项目初期确定themeConfig 配置常见插件方向:
治理建议:
建议每月基于“搜索失败词”更新内容计划。
name: docusaurus
on:
push:
branches: [main]
pull_request:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
- run: npm ci
- run: npm run build过度使用 MDX,导致内容难迁移
做法:业务逻辑和文档内容分离。
i18n 与 versioning 同时启动,流程混乱
做法:先稳定单语言版本化,再扩展多语言。
深度 Swizzle 后难升级
做法:优先配置化,必要时才重写组件。
如果你要建设“长期演进、多人协作、具备平台能力”的文档体系,Docusaurus 依旧是第一梯队。它的代价是工程复杂度,但换来的是明确的扩展上限和治理能力。