Markdown 全知识手册
这是ai写的一篇汇总,主要是用来测试的,顺便用来随时复习markdown啦
一、Markdown 是什么
Markdown 是一种轻量级标记语言,由 John Gruber 于 2004 年发布。核心理念:
- 易读易写:纯文本就能表达排版,不依赖 Word 那种”所见即所得”编辑器。
- 可转换:一份
.md文件可以转换成 HTML、PDF、Word、幻灯片等几乎所有格式。 - 生态庞大:GitHub、GitLab、语雀、飞书、知乎、掘金、Typora、Obsidian、VS Code……到处都在用它。
简单说:你用记事本写,它给你排版;你用任何编辑器写,它都能渲染。
本手册遵循 GFM(GitHub Flavored Markdown) 标准,这是目前最主流的方言,兼容性最好。
二、基本语法
1. 标题
用 # 的个数表示级别,1~6 级:
1 | # 一级标题 |
规则与坑:
#后面必须有一个空格,否则可能不识别(部分方言仍识别,但不规范)。- 标题下加
===(一级)或---(二级)是 Setext 旧式写法,现在少用。 - 分级要连续:别从一级直接跳三级,爬楼没有跳层的。
2. 段落与换行
1 | 这是第一段。 |
关键坑——换行规则(本手册最值得背的一条):
| 写法 | 效果 |
|---|---|
| 段落内直接回车 | 渲染为空格,不换行 |
| 行尾加两个空格再回车 | 硬换行(<br>) |
行尾加反斜杠 \ |
部分方言支持,等同于硬换行 |
| 空一行 | 新段落 |
1 | 这是第一行 |
3. 文字强调
1 | *斜体* 或 _斜体_ |
渲染效果:斜体、粗体、粗斜体、删除线。
坑:
- 中文语境下,
_斜体_常与中文下划线冲突,统一用*。 - 强调符号与文字之间不能有空格:
* 斜体 *不生效。
4. 列表
无序列表(-、*、+ 均可):
1 | - 苹果 |
有序列表:
1 | 1. 第一项 |
坑:
- 有序列表的数字不要求连续,GFM 会自动重新编号——写 1、2、3 只是方便人看,渲染时从 1 开始。
- 嵌套列表:子项缩进必须一致,否则会渲染错乱。
- 列表项之间空行:部分方言会拆成多个
<li>,表格里容易出现多余间距。
任务列表(GFM 特有):
1 | - [ ] 待办事项 |
渲染效果:
- 待办事项
- 已完成事项
5. 链接
行内式:
1 | [文字](https://example.com "可选悬停标题") |
参考式(正文干净,链接集中管理):
1 | [文字][引用名] |
自动链接(< > 包裹 URL 或邮箱):
1 | <https://example.com> |
相对链接(用于文档内部文件跳转):
1 | [跳转到另一篇](other.md) |
6. 图片
1 |  |
- 与链接的唯一区别:前面多一个
!。 - 替代文字必写:图片加载失败时显示它,也是无障碍访问的要求。
控制图片大小:标准 Markdown 不支持,需要 HTML(见进阶部分)。
7. 代码
行内代码:
1 | 用 `code` 包裹行内代码 |
围栏代码块(三个反引号 + 语言名):
1 | ```python |
坑:
- 围栏语言名大小写敏感:
Python和python可能只有后者能高亮。 - 代码块内想显示三个反引号,用四个反引号包裹外层。
- 行内代码中的特殊字符无需转义。
缩进式代码块(旧式,每行缩进 4 个空格或 1 个 Tab):
1 | 这是一段代码 |
8. 引用
1 | > 这是引用 |
嵌套引用:
1 | > 第一层 |
引用内可用其他语法:标题、列表、代码块都能塞进引用里。
9. 分隔线
三个及以上 -、* 或 _,独占一行:
1 | --- |
坑: --- 上面如果紧跟文字且无空行,会被识别成二级标题而不是分隔线——这是高频翻车点。
10. 转义字符
反斜杠 \ 转义特殊字符:
1 | \* 不是列表 |
坑: 转义在代码块内不需要(代码块里一切都是字面量)。
三、GFM 扩展语法
GitHub Flavored Markdown 在标准语法之上增加的常用能力:
1. 表格
1 | | 左对齐 | 居中 | 右对齐 | |
| 左对齐 | 居中 | 右对齐 |
|---|---|---|
| 单元格 | 单元格 | 单元格 |
| 单元格 | 单元格 | 单元格 |
坑:
- 表头分隔行必须有(
---那行),否则整表不渲染。 - 对齐冒号的位置:
:---左、:---:中、---:右。 - 单元格内要显示竖线
|,用\|转义。 - 单元格内的换行用
<br>。 - 分隔行中
---数量不限,但至少一个。
2. 任务列表
见基本语法的任务列表部分。GFM 的 - [x] / - [ ] 必须出现在列表项开头。
3. 删除线
1 | ~~这段文字被删了~~ |
4. 脚注
1 | 这句话需要注释[^1]。 |
渲染后点击上标数字即可跳转。
5. 自动链接
裸 URL 直接书写即自动转链接(部分方言需要 < > 包裹):
1 | 直接写 https://example.com 就变成链接 |
6. 高亮标记
==文字== 高亮,Typora 等编辑器支持,GitHub 网页端不渲染(兼容性注意)。
四、进阶语法
1. 数学公式(LaTeX)
部分渲染器(Typora、Obsidian、GitHub 的 math 模式)支持 KaTeX / MathJax:
行内公式:
1 | 质能方程 $E = mc^2$ |
块级公式:
1 | $$ |
常用符号速记:
| 写法 | 渲染 | 写法 | 渲染 |
|---|---|---|---|
\frac{a}{b} |
分数 | \sqrt{x} |
根号 |
\sum_{i=1}^{n} |
求和 | \alpha |
α |
\leq |
≤ | \times |
× |
x^2 |
上标 | x_2 |
下标 |
2. Mermaid 图表
Mermaid 是画流程图的 DSL,代码块语言写 mermaid:
1 | ```mermaid |
1 | flowchart LR |
支持类型:flowchart(流程图)、sequenceDiagram(时序图)、gantt(甘特图)、pie(饼图)、classDiagram(类图)等。
3. HTML 嵌入
Markdown 允许混写 HTML,用于标准语法做不到的事:
1 | <kbd>Ctrl</kbd> + <kbd>C</kbd> |
规则:
- 块级 HTML 前后必须空行,且不能缩进。
- HTML 标签内的 Markdown 语法不生效(如
<div>**粗体**</div>中的**不渲染)。
4. YAML Front Matter
部分工具(Jekyll、Hexo、Obsidian、Typora)用文件开头的 YAML 元数据:
1 |
|
- 必须放在文件最开头,前后用
---包裹。 - 两个
---之后必须紧跟换行,不能有其他字符。
5. Emoji
快捷码(GitHub 支持):
1 | :smile: :rocket: :fire: |
直接粘贴 Unicode Emoji 也可:😄 🚀 🔥
6. 锚点跳转
文档内跳转:
1 | [回到目录](#目录) |
- 锚点 = 标题文本小写化、空格转连字符、去掉标点。
- 中文标题的锚点在 GitHub 上可用,在其他平台可能失效(兼容性坑)。
五、常见坑与兼容性
| 坑 | 表现 | 解法 |
|---|---|---|
--- 被识别为标题 |
分隔线变二级标题 | 上方留空行 |
| 换行不生效 | 两行拼成一行 | 行尾两空格 / 空行 |
* 与中文粘连 |
斜体不生效 | 符号与文字间不留空格,统一用 * |
| 表格缺分隔行 | 整表不渲染 | 检查 ` |
| 列表缩进不一致 | 嵌套错乱 | 子项缩进统一 |
_ 用于斜体 |
中文下划线冲突 | 用 * |
| 代码块内三个反引号 | 提前结束 | 外层用四个反引号 |
| 中文标点后换行 | 部分平台断句异常 | 使用中文全角标点 + 规范换行 |
| 同一个文件跨平台渲染不同 | 表格/脚注/高亮时有时无 | 以 GFM 为准,少用方言特性 |
兼容性分级速查:
- 全平台通用:标题、列表、链接、图片、粗斜体、引用、分隔线、代码。
- GFM 层(GitHub/掘金/知乎等支持):表格、任务列表、删除线、围栏代码。
- 编辑器私有(Typora/Obsidian 等):脚注、高亮
==、数学公式、Mermaid、Front Matter。
原则:公开分享用 GFM 能渲染的语法;自己笔记随便用方言。
六、工具与生态
| 工具 | 定位 | 亮点 |
|---|---|---|
| Typora | 所见即所得编辑器 | 实时渲染、导出 PDF/Word、主题丰富(收费) |
| VS Code | 代码编辑器 | 插件 Markdown All in One、Markdown Preview Enhanced |
| Obsidian | 双链笔记 | 双向链接、知识图谱、本地存储、插件生态 |
| 语雀 / 飞书 | 在线文档 | 云端协作、无需本地安装,支持 Markdown 粘贴转换 |
| Hexo / Hugo / Jekyll | 静态博客 | 写 .md → 生成静态站点 → 部署(你正在用的路线) |
| Pandoc | 万能转换器 | .md ⇄ PDF/Word/HTML/LaTeX,转换界的瑞士军刀 |
| Jupyter Notebook | 数据笔记 | 代码 + Markdown 混合 |
Pandoc 常用命令示例:
1 | # Markdown 转 Word |
七、最佳实践
- 标题层级从 1 级开始且连续,一篇文档不要出现多个一级标题(除了文档标题)。
- 段落之间空行,段落内不硬换行,交给渲染器自动折行。
- 列表与文字之间空行,避免列表粘连正文。
- 表格不要太宽:超过 6~8 列就该考虑拆表或换思路。
- 图片永远写替代文字,为自己的可访问性和后期维护负责。
- 长文档加目录,目录用锚点实现,或依赖渲染器自动生成 TOC。
- 代码块永远标注语言,否则没有高亮,等于白写。
- 引用的引用少嵌套,超过两层基本没人看得懂。
- 文件名用连字符而非空格:
markdown-guide.md优于markdown guide.md。 - 写给别人看的,用 GFM 子集;写给自己看的,随便用。
八、一页速查表
1 | # 标题1 → 一级标题 |
结语
Markdown 的全部知识,本质就是三条:
- 符号即语义:
#、*、-、>、反引号,每个符号都对应一个排版动作。 - 标准有方言:先掌握通用语法,再用 GFM,最后才碰编辑器私有特性。
- 纯文本是王道:任何编辑器都能写,任何系统都能读,永不失效。
现在,去把这篇手册变成你自己的第一篇真正的博客文章吧——总比留在 Hello World 里强。
(本手册由 Markdown 写成,全文 2000 余字,所有语法示例均可在支持 GFM 的编辑器中直接复制验证。)

