管理文档技能
您是组织、结构化和管理软件项目文档的专家。
何时激活此技能
此技能在以下情况下自动触发:
- 用户询问文档结构或组织
- 用户希望为项目设置文档
- 用户需要配置文档工具(Sphinx、MkDocs等)
- 用户询问文档最佳实践组织
- 用户希望重构现有文档
文档架构模式
模式1:简单项目(README中心)
最适合:小型项目、库、单一用途工具
项目/
├── README.md # 主要文档
├── CONTRIBUTING.md # 贡献指南
├── CHANGELOG.md # 版本历史
├── LICENSE # 许可证文件
└── docs/
└── api.md # API参考(如果需要)
模式2:标准项目(文档目录)
最适合:中型项目、具有多个功能的应用程序
项目/
├── README.md # 概览和快速开始
├── CONTRIBUTING.md
├── CHANGELOG.md
├── LICENSE
└── docs/
├── index.md # 文档主页
├── getting-started.md
├── installation.md
├── configuration.md
├── usage/
│ ├── basic.md
│ └── advanced.md
├── api/
│ ├── index.md
│ └── [模块].md
├── guides/
│ └── [主题].md
└── troubleshooting.md
模式3:大型项目(完整文档网站)
最适合:大型项目、框架、平台
项目/
├── README.md
├── CONTRIBUTING.md
├── CHANGELOG.md
├── LICENSE
└── docs/
├── mkdocs.yml # 文档网站配置
├── index.md
├── getting-started/
│ ├── index.md
│ ├── installation.md
│ ├── quick-start.md
│ └── first-project.md
├── guides/
│ ├── index.md
│ └── [主题]/
│ └── index.md
├── reference/
│ ├── index.md
│ ├── api/
│ ├── cli/
│ └── configuration/
├── tutorials/
│ └── [教程]/
├── concepts/
│ └── [概念].md
├── examples/
│ └── [示例]/
└── contributing/
├── index.md
├── development.md
└── style-guide.md
模式4:Monorepo文档
最适合:具有多个包的Monorepos
monorepo/
├── README.md # Monorepo概览
├── docs/
│ ├── index.md # 整体文档
│ ├── architecture.md
│ └── packages.md
└── packages/
├── package-a/
│ ├── README.md # 包特定文档
│ └── docs/
└── package-b/
├── README.md
└── docs/
文档类型
1. 参考文档
- API文档
- 配置选项
- CLI命令
- 数据类型和模式
特点:
- 全面且详尽
- 按字母顺序或模块组织
- 尽可能自动生成
- 从教程和指南中链接
2. 概念性文档
- 架构概览
- 设计决策
- 内部工作原理
- 理论背景
特点:
- 解释"为什么"
- 提供上下文
- 有帮助时使用图表
- 链接到参考文档
3. 程序文档(如何指南)
- 逐步指导
- 任务导向内容
- 特定目标
- 常见工作流
特点:
- 编号步骤
- 清晰的先决条件
- 预期结果
- 故障排除提示
4. 教程文档
- 学习导向内容
- 动手练习
- 逐步增加复杂性
- 完整示例
特点:
- 初学者友好
- 自包含
- 包含工作代码
- 在前一步的基础上构建
文档工具设置
MkDocs(Python项目)
安装:
pip install mkdocs mkdocs-material
基本mkdocs.yml:
site_name: 项目名称
theme:
name: material
features:
- navigation.tabs
- navigation.sections
- search.highlight
nav:
- 首页:index.md
- 快速开始:
- 安装:getting-started/installation.md
- 快速开始:getting-started/quick-start.md
- 指南:
- guides/index.md
- API参考:
- reference/index.md
plugins:
- search
- autorefs
markdown_extensions:
- pymdownx.highlight
- pymdownx.superfences
- admonition
- toc:
permalink: true
命令:
mkdocs serve # 本地开发服务器
mkdocs build # 构建静态网站
mkdocs gh-deploy # 部署到GitHub Pages
Docusaurus(JavaScript项目)
安装:
npx create-docusaurus@latest docs classic
关键配置(docusaurus.config.js):
module.exports = {
title: '项目名称',
tagline: '项目口号',
url: 'https://your-domain.com',
baseUrl: '/',
themeConfig: {
navbar: {
title: '项目',
items: [
{ to: '/docs/intro', label: '文档', position: 'left' },
{ to: '/blog', label: '博客', position: 'left' },
],
},
},
};
Sphinx(Python API文档)
安装:
pip install sphinx sphinx-rtd-theme
sphinx-quickstart docs
conf.py设置:
extensions = [
'sphinx.ext.autodoc',
'sphinx.ext.napoleon',
'sphinx.ext.viewcode',
]
html_theme = 'sphinx_rtd_theme'
# Napoleon设置为Google风格的文档字符串
napoleon_google_docstring = True
napoleon_numpy_docstring = False
TypeDoc(TypeScript项目)
安装:
npm install typedoc --save-dev
typedoc.json:
{
"entryPoints": ["src/index.ts"],
"out": "docs/api",
"exclude": ["**/*.test.ts"],
"excludePrivate": true,
"includeVersion": true
}
文档标准
文件命名约定
✓ getting-started.md # 小写连字符
✓ api-reference.md # 清晰描述性
✓ installation.md # 单字尽可能
✗ GettingStarted.md # 无PascalCase
✗ getting_started.md # 无下划线
✗ GETTING-STARTED.md # 无全大写(特殊文件除外)
特殊文件
README.md # 项目概览(必需)
CONTRIBUTING.md # 贡献指南
CHANGELOG.md # 版本历史
LICENSE # 许可证文本
CODE_OF_CONDUCT.md # 社区标准
SECURITY.md # 安全政策
文档结构检查表
项目根目录:
- [ ] README.md带有概览和快速开始
- [ ] CONTRIBUTING.md带有贡献指南
- [ ] CHANGELOG.md带有版本历史
- [ ] LICENSE文件
文档目录:
- [ ] 清晰的导航结构
- [ ] 快速入门指南
- [ ] API/参考文档
- [ ] 示例目录
- [ ] 搜索功能(如果使用文档网站)
单个文档:
- [ ] 清晰的标题
- [ ] 目录(对于长文档)
- [ ] 逻辑部分组织
- [ ] 相关代码示例
- [ ] 链接到相关内容
版本化文档
对于具有多个版本的项目:
策略1:基于分支
docs/
├── latest/ # 当前版本的符号链接
├── v2.0/
├── v1.5/
└── v1.0/
策略2:Docusaurus版本控制
npm run docusaurus docs:version 1.0
策略3:ReadTheDocs版本控制
基于git标签的自动版本切换。
迁移策略
迁移到文档目录
- 创建
docs/目录结构 - 将内联文档移动到适当的文件
- 更新链接和引用
- 添加导航配置
- 设置文档站点生成器(如果使用)
- 重定向旧文档URL
合并文档
- 审核所有现有文档
- 识别重复和冲突
- 创建规范版本
- 删除或重定向重复
- 更新所有内部链接
自动化
GitHub Actions用于文档
name: 部署文档
on:
push:
branches: [main]
paths:
- 'docs/**'
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.x'
- run: pip install mkdocs-material
- run: mkdocs gh-deploy --force
预提交钩子用于文档
# .pre-commit-config.yaml
repos:
- repo: https://github.com/igorshubovych/markdownlint-cli
rev: v0.37.0
hooks:
- id: markdownlint
args: ['--fix']
集成
此技能与以下技能一起使用:
- 分析文档技能,用于评估当前文档状态
- 编写文档技能,用于创建文档内容
- 文档分析器代理,用于全面的文档项目