Markdown: Markdown 高级特性与图表
当基础语法已经满足不了需求时,Markdown 的高级扩展让文档拥有媲美专业排版工具的能力。
1. 你将学到
- 用 Mermaid 绘制流程图和图表
- 在 Markdown 中嵌入数学公式
- YAML frontmatter 管理文档元数据
- Markdown 在静态网站中的应用
- 常用扩展和工具生态
2. 一个技术团队领导者的真实故事
(1) 痛点:文字描述架构图效率低
Sam 在团队周报中用文字描述微服务架构变化:"有三个服务:用户服务接收请求后调用订单服务,订单服务再调用支付服务……"每次写这段文字都要花 10 分钟,团队成员反馈"看了半天才懂"。更麻烦的是,架构图在 Visio 里画,每次修改要打开专门软件。
(2) 解法:用 Mermaid 图表嵌入文档
Sam 发现 Markdown 支持 Mermaid 图表语法,直接在文档中写代码就能生成架构图:
graph LR
A[客户端] --> B[用户服务]
B --> C[订单服务]
C --> D[支付服务]
D --> E[银行 API]
改架构时改几行代码就行,不再需要打开 Visio。团队周报的阅读完成率从 60% 提升到 92%。
3. Mermaid 图表
Mermaid 是一个用文字描述图表的工具,支持多种图表类型。在 Markdown 中用 ```mermaid 代码块:
(1) 流程图(Flowchart)
graph TB
A[开始] --> B{条件判断}
B -->|是| C[处理逻辑]
B -->|否| D[结束]
C --> D
MARKDOWN
graph TB
A[方形节点] --> B{菱形判断}
B -->|条件 1| C[结果 1]
B -->|条件 2| D[结果 2]
| 语法 | 含义 | 示例 |
|---|---|---|
A --> B |
带箭头连线 | 开始 --> 结束 |
A --- B |
无箭头连线 | 连接 --- 节点 |
| `A --> | 标签 | B` |
A{条件} |
菱形判断节点 | {是否继续?} |
A[方形] |
普通方形节点 | [处理步骤] |
(2) 时序图(Sequence Diagram)
sequenceDiagram
participant U as 用户
participant A as 前端
participant B as 后端
U->>A: 点击登录
A->>B: POST /api/login
B-->>A: 返回 Token
A-->>U: 跳转首页
(3) 饼图(Pie Chart)
pie title 技术栈占比
"前端" : 40
"后端" : 35
"运维" : 15
"数据" : 10
💡 提示: Mermaid 支持 GitHub、GitLab、Typora、Obsidian、Notion 等主流平台。在 GitHub 上直接渲染,无需插件。
▶ 示例:用 Mermaid 画项目架构
graph LR
subgraph 前端
A[Vue.js]
B[Axios]
end
subgraph 后端
C[FastAPI]
D[PostgreSQL]
end
subgraph 外部
E[Redis 缓存]
end
A --> B
B --> C
C --> D
C --> E
4. YAML Frontmatter
YAML frontmatter 是 Markdown 文件开头的元数据区域,用 --- 包裹:
YAML
---
title: Markdown 入门教程
description: 从零开始学习 Markdown 语法的完整教程
author: Alex
date: 2026-06-15
tags: [markdown, documentation, beginner]
status: published
---
(1) 常见 frontmatter 字段
| 字段 | 用途 | 示例 |
|---|---|---|
title |
页面标题 | Markdown 入门教程 |
description |
SEO 描述 | 学习 Markdown 的基础语法... |
date |
发布日期 | 2026-06-15 |
tags |
标签 | [markdown, tutorial] |
author |
作者 | Alex |
draft |
草稿状态 | true 或 false |
▶ 示例:一篇文章的完整 frontmatter
YAML
---
title: 使用 Python 进行数据分析
description: 本文介绍如何用 Pandas 和 Matplotlib 进行数据分析
date: 2026-06-15
tags: [python, data-analysis, pandas]
author: Alex
draft: false
---
💡 提示: Jekyll、Hugo、Hexo 等静态网站生成器都依赖 frontmatter 管理文章元数据。frontmatter 不是标准 Markdown,但被广泛支持。
5. 数学公式(LaTeX)
部分 Markdown 解析器支持用 LaTeX 语法嵌入数学公式:
(1) 行内公式
MARKDOWN
爱因斯坦的质能方程:$E = mc^2$
圆的面积公式:$A = \pi r^2$
(2) 块级公式
MARKDOWN
$$
\sum_{i=1}^{n} i = \frac{n(n+1)}{2}
$$
$$
f(x) = \int_{-\infty}^{\infty} \hat{f}(\xi) e^{2\pi i \xi x} d\xi
$$
⚠️ 注意: 数学公式依赖 KaTeX 或 MathJax 渲染。GitHub 不原生支持 LaTeX 公式(2024 年已开始测试支持)。Typora、Obsidian、GitBook 等工具支持。在 GitHub 上,可以用
 图片方式嵌入公式。
6. 静态网站生成器
Markdown + 静态网站生成器 = 快速建站方案:
| 工具 | 语言 | 特点 | 适用场景 |
|---|---|---|---|
| Jekyll | Ruby | GitHub Pages 原生支持 | 博客、个人站 |
| Hugo | Go | 构建速度极快 | 文档站、企业站 |
| Hexo | Node.js | 插件丰富、中文社区大 | 技术博客 |
| MkDocs | Python | 适合项目文档 | API 文档、项目 Wiki |
| VuePress | Vue.js | Vue 生态集成 | 前端项目文档 |
graph LR
A[写 Markdown 内容] --> B[静态网站生成器]
B --> C[生成 HTML/CSS/JS]
C --> D[部署到服务器]
C --> E[部署到 GitHub Pages]
C --> F[部署到 Netlify]
▶ 示例:用 Hugo 启动一个博客
TEXT
📖 仅展示
Hugo 博客启动步骤:
1. 安装:brew install hugo
2. 创建站点:hugo new site my-blog
3. 添加主题:cd my-blog && git init && git submodule add ...
4. 创建内容:hugo new posts/my-first-post.md
5. 预览运行:hugo server -D
💡 提示:
brew 是 macOS 的包管理器。Windows 用户请从 Hugo 官网下载安装包,Linux 用户使用 sudo apt install hugo 或从 GitHub Releases 下载。
7. 其他实用扩展
(1) 脚注(Footnotes)
MARKDOWN
这是一段需要注释的文字[^1]。
[^1]: 这是注释内容,通常在页面底部显示。
这是另一段文字[^second-note]。
[^second-note]: 第二个注释,支持多行内容。
注释的后续行需缩进 2 空格。
(2) 定义列表(Definition List)
MARKDOWN
Markdown
: 一种轻量级标记语言,由 John Gruber 创建。
GFM
: GitHub Flavored Markdown,是 Markdown 的扩展版本。
: 增加了表格、任务列表、删除线等功能。
💡 提示: 脚注和定义列表不是标准 Markdown,但在 Pandoc、GitBook、Kramdown 等解析器中支持。
▶ 示例:脚注在文章中的应用
MARKDOWN
研究表明长期久坐对健康有显著影响[^1]。
每天进行 30 分钟中等强度运动可以降低风险[^2]。
[^1]: Smith et al. (2024). Sedentary Behavior and Health Outcomes.
[^2]: World Health Organization. (2024). Physical Activity Guidelines.
8. 完整示例:一篇带高级特性的 Markdown 文章
TEXT
📖 仅展示
文章元数据(YAML frontmatter):
title: 我的技术博客文章
date: 2026-06-15
tags: [markdown, tutorial]
内容结构:
1. 项目架构 — 用 Mermaid 流程图展示:客户端→API网关→各服务→数据库
2. 核心算法 — LaTeX 公式展示 TF-IDF 算法
3. 部署步骤 — 有序列表:build → scp → reload nginx
4. 脚注 — 参考文献引用
预期效果:一篇结合了 Mermaid 图表、LaTeX 公式、YAML 元数据和脚注的完整技术文章。
❓ 常见问题
Q Mermaid 图表在所有 Markdown 编辑器都能显示吗?
A 不是。GitHub、GitLab、Typora、Obsidian 支持。VS Code 需要安装 Markdown Preview Mermaid Support 扩展。
Q LaTeX 数学公式在 GitHub 上能用吗?
A GitHub 从 2022 年开始支持 LaTeX 公式渲染(用
$$ 和 $),但不一定在所有设备上显示。如果公式很重要,考虑用图片替代。Q Frontmatter 必须用 YAML 吗?
A 也可以用 TOML(
+++)或 JSON(;;;),取决于生成器支持。YAML 是最通用的格式。Q 我应该用哪个静态网站生成器?
A 个人博客选 Jekyll 或 Hugo,项目文档选 MkDocs 或 VuePress,追求速度选 Hugo。初学者推荐 Hugo,安装简单、文档完善。
Q 这些高级扩展会影响 Markdown 的兼容性吗?
A 会。高级特性是特定工具/平台的扩展,不是标准。如果文档需要在多个平台间迁移,先确认目标平台支持哪些扩展。
📖 小节
- Mermaid 图表支持流程图、时序图、饼图等,用代码方式生成图表
- LaTeX 数学公式用
$...$(行内)和$$...$$(块级) - YAML frontmatter 管理文章元数据(标题、日期、标签等)
- 静态网站生成器将 Markdown 编译为完整网站
- 脚注用
[^1]标记,定义列表用缩进格式 - 高级扩展依赖特定平台,在不同平台间迁移时需确认兼容性
📝 作业
-
基础题:用 Mermaid 画一个你日常工作中的流程(如"起床→通勤→工作→下班"),至少包含 5 个节点。
-
进阶题:写一篇带 YAML frontmatter 的博客文章草稿,包含 Mermaid 流程图(项目架构)和至少 2 个脚注。如果用 GitHub,验证 Mermaid 是否能正常渲染。
-
挑战题:搭建一个本地 Hugo 或 Hexo 博客,用 Markdown 写 3 篇文章,包含 Mermaid 图表、表格和代码块。完成后用
hugo server或hexo server本地预览。