Markdown 与文档工程:写作规范、静态生成与 LaTeX 排版

Markdown 与文档工程:基础语法与方言(CommonMark/GitHub Flavored/FrontMatter)、扩展语法(表格/注脚/任务列表/Mermaid)、写作规范(标题层级/代码块/图片/链接)、文档协作流(版本控制/PR 审阅/评论)、静态生成工具(Docusaurus/VitePress/MkDocs/Hugo)、LaTeX 排版入门(公式/定理/宏包)、多格式输出(PDF/HTML/PPT/EPUB)、文档 SEO 与搜索、文档工程最佳实践。

引言

文档是软件系统中寿命最长的代码——功能会重构,接口会迭代,但文档是第一份和最后一份与你同行的资产。Markdown 成了事实标准:它足够轻让你专注写作,又足够丰富经工具链渲染为出版级产出。本文从 Markdown 核心语法与方言出发,延伸到写作规范、协作流、静态生成工具(Docusaurus/VitePress/MkDocs/Hugo)、LaTeX 公式排版与多格式输出,给把「写文档」从「负担」变成「杠杆」的起点。

前置:/others-terminal-shell-ecosystem/(命令行工具链)、/others-hashing-guide/(版本控制与文件指纹)。


目录


1. Markdown 核心语法与方言

1.1 五大元素

段落:空行分隔,句末双空格换行
强调:*斜体*、**粗体**、~~删除线~~、'内联代码'
链接:[文字](url) 或 ![图片](url)
列表:- 无序、1. 有序,缩进 2/4 空格子项
引用:> 内容,可嵌套

1.2 三大方言

方言特点代表工具
CommonMark规范标准、无扩展pandoc/多数解析器
GitHub Flavored表格/任务列表/strikethroughGitHub/GitLab
FrontMatterYAML/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 快照

工具技术栈最佳场景
DocusaurusReact/Node文档站+博客,插件丰富,社区强
VitePressVue/Vite快速上手,文档优先,I18N 佳
MkDocsPython/Markdown纯文档,简单干净,插件多
HugoGo超快(秒级万页),博客/文档都强
GitBookSaaS零配置,跨端,付费功能

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网站、搜索、交叉引用
PDF打印、发行、正式交付
PPT演示、培训
EPUB电子书、移动端长文

9.3 工程建议

# 写一次 Markdown → 多格式发布
# 缺点:各格式样式不同,复杂排版需各别模板
# 折中:内容用 Markdown,排版用专业工具(InDesign/PowerPoint)

记忆:pandoc 是 Markdown→多格式的通用桥——PDF 需 xelatex+字体配置、PPT 直接出 pptx、EPUB 适合电子书;一次写多次出是文档工程的目标,复杂排版仍要各别模板。


10. 速查表与一句话记忆

概念一句话
五大元素段落、强调、链接、列表、引用
三方言CommonMark/GFM/FrontMatter
表格| 分隔
代码块```语言
图片链接相对路径+alt
DocusaurusReact+插件+版本
VitePressVue+Vite+轻量
MkDocsPython+Material
HugoGo+秒级万页
LaTeX$行内/$$行间/amsthm定理
pandocMarkdown→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」更多文章

  1. 终端与 Shell 生态进阶:zsh、tmux 与高效命令行工作流
  2. 概率统计基础实战:贝叶斯、随机变量、分布与推断
  3. 图算法实战:遍历、最短路、最小生成树与拓扑排序