引言
文档是软件系统中寿命最长的代码——功能会重构,接口会迭代,但文档是第一份和最后一份与你同行的资产。Markdown 成了事实标准:它足够轻让你专注写作,又足够丰富经工具链渲染为出版级产出。本文从 Markdown 核心语法与方言出发,延伸到写作规范、协作流、静态生成工具(Docusaurus/VitePress/MkDocs/Hugo)、LaTeX 公式排版与多格式输出,给把「写文档」从「负担」变成「杠杆」的起点。
前置:/others-terminal-shell-ecosystem/(命令行工具链)、/others-hashing-guide/(版本控制与文件指纹)。
目录
- 1. Markdown 核心语法与方言
- 2. 扩展语法:表格注脚Mermaid
- 3. 写作规范:标题层级与代码块
- 4. 文档协作流:版本控制PR审阅
- 5. 静态生成工具选型
- 6. Docusaurus与VitePress实战要点
- 7. MkDocs与Hugo的适用场景
- 8. LaTeX排版入门:公式定理与宏包
- 9. 多格式输出PDFHTMLPPT与EPUB
- 10. 速查表与一句话记忆
- 延伸阅读
1. Markdown 核心语法与方言
1.1 五大元素
段落:空行分隔,句末双空格换行
强调:*斜体*、**粗体**、~~删除线~~、'内联代码'
链接:[文字](url) 或 
列表:- 无序、1. 有序,缩进 2/4 空格子项
引用:> 内容,可嵌套
1.2 三大方言
| 方言 | 特点 | 代表工具 |
|---|---|---|
| CommonMark | 规范标准、无扩展 | pandoc/多数解析器 |
| GitHub Flavored | 表格/任务列表/strikethrough | GitHub/GitLab |
| FrontMatter | YAML/TOML 元数据头 | Hugo/VitePress/Docusaurus |
1.3 为什么有方言
# Markdown 初衷:可读>可写,不穷举所有格式
# 各工具按需求添加扩展 → 不同语法在不同站点表现不同
# 工程建议:选一个支持 CommonMark + GFM 的平台,别混用花里胡哨的方言
记忆:Markdown 五大元素——段落、强调、链接、列表、引用;方言分 CommonMark(标准)/GFM(表格/任务列表)/FrontMatter(元数据头);工程选一个稳定方言少混用。
2. 扩展语法:表格、注脚、Mermaid
2.1 表格
| 列1 | 列2 | 列3 |
|-----|-----|-----|
| A | B | C |
# 部分解析器支持左中右对齐(:位置)
2.2 任务列表
- [ ] 待办
- [x] 已完成
# 点击复选框是渲染层特性,纯文本层面只是一个语法糖
2.3 注脚
正文[^注释]
[^注释]: 注释内容
2.4 Mermaid 图
# 在代码块中声明 mermaid
# 渲染为流程图/时序图/甘特图等
# GitHub/GitLab/VS Code 插件原生支持
# Hugo 需整合 mermaid.js 或 shortcode
记忆:扩展语法——表格用 | 分隔、任务列表 [ ]/[x] 是语法糖、注脚 [^n] 双端配对;Mermaid 让图表维护在文本里(版本控制友好),但需渲染器支持。
3. 写作规范:标题层级与代码块
3.1 标题层级
# 只用一次(页面标题)
## 二级以上递进不跳级
## 目录锚点由渲染器自动生成,注意特殊字符兼容性
# 中文标点删除后可能粘连(如「排序:冒泡→slug-sorttmaopao」)
3.2 代码块
建议在 Triple backtick 后指定语言:```python
获得语法高亮(最终由渲染器/样式表决定)
# 代码块中的 ## 可能被误判为标题——加 v 前缀「v2.0」即可
3.3 图片与链接
相对路径:推荐使用从仓库根目录的路径(跨环境友好)
alt 文本:不仅 accessibility,也是图片 SEO
外部链接:警惕 404 → 定期检查或上 CI 检验
# Markdown 中的不可见字符(Zero-width space)会导致链接失效
记忆:写作规范——# 只用一次、标题不跳级、代码块标语言(防误判:版本号加 v 前缀)、图片用相对路径+写 alt、外部链接要防 404;锚点注意中文标点删除后粘连。
4. 文档协作流:版本控制、PR 审阅
4.1 为什么文档要版本控制
历史回溯:谁改了什么、为什么改
分支合并:Feature 文档随代码分支走
冲突处理:两人改同一节 → Git 解决
同行评审:与代码 PR 一样的审阅流程
4.2 PR 审阅文档的清单
- 标题层级是否正确
- 代码块是否有语言标记
- 图片 alt 文本是否写
- 链接是否有效
- 专有名词大小写一致(API 是否全大写、包名是否保持原名)
- 无术语堆砌(读者是谁?)
- 无冗余(废话删除线保留 vs 直接删除)
- 更新日期/版本号
4.3 评论与打标签
# Markdown 本身无"评论"语法,用 HTML 注释 <!-- ... -->
# 建议用 Hugo 或 VitePress 的 Callout 语法做标注
记忆:文档与代码同版本控制——随分支走、用 PR 审阅(检查标题/代码/链接/alt/一致性)、用 HTML 注释写备注;审阅清单:层级、语言标记、alt、链接、名词一致性。
5. 静态生成工具选型
5.1 快照
| 工具 | 技术栈 | 最佳场景 |
|---|---|---|
| Docusaurus | React/Node | 文档站+博客,插件丰富,社区强 |
| VitePress | Vue/Vite | 快速上手,文档优先,I18N 佳 |
| MkDocs | Python/Markdown | 纯文档,简单干净,插件多 |
| Hugo | Go | 超快(秒级万页),博客/文档都强 |
| GitBook | SaaS | 零配置,跨端,付费功能 |
5.2 核心理念:内容 vs 展示解耦
Markdown 写内容 → 工具渲染 HTML → 托管(Vercel/Netlify/GitHub Pages)
内容移动成本低:Hugo → VitePress 只需适配短代码/目录结构
# 所以选好"写"和"托管",工具换起来没那么痛苦
记忆:静态生成工具按场景选——Docusaurus(React 生态强插件)、VitePress(Vue/Vite 快速文档)、MkDocs(Python 简单干净)、Hugo(秒级万页);Markdown 内容在各工具间迁移成本低于样式。
6. Docusaurus 与 VitePress 实战要点
6.1 Docusaurus
# 目录结构:docs/ + sidebars.js + docusaurus.config.js
# 版本化:mkdir docs/ver-2,docusaurus 自动切版本
# I18N:i18n/zh/docusaurus-plugin-content-docs/
# 搜索:本地 Search(需 index)或 Algolia DocSearch
# 自定义:React 组件写 Custom Pages
# Deploy:Build 后产物是静态 HTML,可丢 CDN
6.2 VitePress
# 目录结构:docs/ + .vitepress/config.js + 自动 sidebar
# 主题:默认主题简洁,设置 frontmatter layout 即可自定义
# 搜索:本地 minisearch 或 Algolia
# 短代码:Vue 组件做自定义 Block
# 性能:Vite 驱动,dev 启动毫秒级
记忆:Docusaurus 用 React+sidebars.js+版本化+自定义组件,适合做大型文档站;VitePress 用 Vue+Vite 驱动,目录结构更轻、dev 毫秒级,适合快速文档。
7. MkDocs 与 Hugo 的适用场景
7.1 MkDocs
# mkdocs.yml 配置中心,插件只需 pip install
# 主题:Material(最强移动端与暗色模式)
# 搜索:内置 lunr.js(自动生成索引)
# 适合:纯文档、技术团队内部、不想碰前端构建
# 痛点:没有前端 hot reload(需 --watch)
7.2 Hugo
# Go 编写 → 构建速度秒级(10k+ 页)
# 主题系统成熟(2、300 主题可选)
# 短代码(Shortcodes)做嵌入:`{{< figure >}}`、`{{< ref >}}`
# taxonomy:自动标签/分类页面
# 适合:博客+文档混合站、大量页面、对构建速度有要求
# 痛点:模板语言(Go template)学习曲线
记忆:MkDocs 用 Python+Material 主题,代码库内部文档的最快路径;Hugo 用 Go 模板+秒级构建,适合博客+文档混合、大量页面、对速度敏感。
8. LaTeX 排版入门:公式、定理与宏包
8.1 公式
行内:$E=mc^2$
行间(居中):$$E=mc^2$$
多行对齐:\begin{align} ... \end{align}
8.2 常用符号
\alpha, \beta, \gamma, \sum, \prod, \int, \frac, \sqrt,
\hat{x}, \bar{x}, \vec{x}, \mathbb{R}, \mathcal{N}
8.3 定理环境(学术论文)
\begin{theorem}[费马小定理]
...
\end{theorem}
\begin{proof}
...
\end{proof}
# 需 \usepackage{amsthm}
8.4 宏包速查
amsmath 数学公式(核心)
amsthm 定理环境(定义/引理/证明)
geometry 页面尺寸
hyperref 超链接
listings 代码高亮
# 工程:pandoc 可 Markdown→LaTeX→PDF,用模板控制样式
记忆:LaTeX 公式——行内$、多行 align、常用符号记一套(\alpha/\sum/\frac/\mathcal{N});定理用 amsthm(定义/证明);排版用 geometry+hyperref+listings;Markdown→pandoc→LaTeX→PDF 是文档工程常用链路。
9. 多格式输出:PDF、HTML、PPT 与 EPUB
9.1 pandoc:通用转换器
# Markdown → PDF
pandoc input.md -o output.pdf --pdf-engine=xelatex -V CJKmainfont="SimSun"
# Markdown → PPT
pandoc input.md -o output.pptx
# Markdown → EPUB
pandoc input.md -o output.epub --metadata title="My Book"
# 模板:--template 用 .tex/.html 自定义
9.2 各种格式的适用场景
| 格式 | 用途 |
|---|---|
| HTML | 网站、搜索、交叉引用 |
| 打印、发行、正式交付 | |
| PPT | 演示、培训 |
| EPUB | 电子书、移动端长文 |
9.3 工程建议
# 写一次 Markdown → 多格式发布
# 缺点:各格式样式不同,复杂排版需各别模板
# 折中:内容用 Markdown,排版用专业工具(InDesign/PowerPoint)
记忆:pandoc 是 Markdown→多格式的通用桥——PDF 需 xelatex+字体配置、PPT 直接出 pptx、EPUB 适合电子书;一次写多次出是文档工程的目标,复杂排版仍要各别模板。
10. 速查表与一句话记忆
| 概念 | 一句话 |
|---|---|
| 五大元素 | 段落、强调、链接、列表、引用 |
| 三方言 | CommonMark/GFM/FrontMatter |
| 表格 | | 分隔 |
| 代码块 | ```语言 |
| 图片链接 | 相对路径+alt |
| Docusaurus | React+插件+版本 |
| VitePress | Vue+Vite+轻量 |
| MkDocs | Python+Material |
| Hugo | Go+秒级万页 |
| LaTeX | $行内/$$行间/amsthm定理 |
| pandoc | Markdown→PDF/PPT/EPUB |
一句话记忆:Markdown 是文档工程的基石——五大元素(段落/强调/链接/列表/引用)加三方言(CommonMark/GFM/FrontMatter)覆盖 90% 场景;扩展语法表格/任务列表/Mermaid 让文本即图表;写作规范锚定「标题层级不跳级、代码块标语言、图片加 alt、相对路径跨环境」;文档与代码同版本控制,PR 审阅检查层级/代码/链接/名词一致性;静态生成工具按场景选——Docusaurus(React 生态文档站)、VitePress(Vue/Vite 快速文档)、MkDocs(Python Material 内部文档)、Hugo(秒级构建博客文档混合);LaTeX 公式 $行内 $$多行 + amsthm 定理;pandoc 做 Markdown→PDF/PPT/EPUB 的通用桥;多格式发布的核心是「一次写多次出」——文档是软件寿命最长的代码,写好它是最划算的技术投资。
延伸阅读
- /others-terminal-shell-ecosystem/ — 命令行工具链支持写作
- /others-hashing-guide/ — 版本控制与文件指纹
- /others-graph-algorithms/ — 思维导图与关系网络
- Hugo 专题 — 本站所用构建工具
- Docusaurus 官方文档
- VitePress 指南
- pandoc 用户手册
- LaTeX 入门
继续阅读
探索更多技术文章
浏览归档,发现更多关于系统设计、工具链和工程实践的内容。