Markdown 命令大全 - 所有 Markdown 语法命令完整参考
Markdown 的"命令"其实就是各种标记符号——用特定的字符组合告诉渲染器"这段文字该怎么显示"。和 HTML 不同,Markdown 的设计初衷就是让你在纯文本状态下也能一眼看懂内容结构。
这篇文章把所有常用的 Markdown 命令(也叫语法命令或格式化标记)整理在一起,每条命令都有语法示例、效果说明和平台兼容性标注。最后还附了一张速查表,方便你随时翻阅。
文本格式化命令
加粗
用两个星号或两个下划线包裹文字:
**这段文字会加粗显示**
__这也会加粗__效果:这段文字会加粗显示
推荐用星号。下划线在单词中间时可能不触发加粗(比如 a__b__c 不会加粗),而星号没有这个问题。这个差异在 CommonMark 规范中有明确说明。
斜体
一个星号或一个下划线:
*斜体文字*
_也是斜体_效果:斜体文字
同样建议用星号,理由和加粗一样——下划线在单词内部会被当作普通字符。
加粗 + 斜体
三个星号或三个下划线:
***加粗且斜体***
___也一样___效果:加粗且斜体
删除线
两个波浪号:
~~被删除的文字~~效果:被删除的文字
这个是 GFM(GitHub Flavored Markdown)扩展,不是原始 Markdown 规范的一部分。不过现在大多数主流编辑器和平台都支持了,包括 Typora、VS Code 预览、GitLab、Obsidian 等。
标题命令
用 # 号表示标题层级,1 到 6 个 # 对应 H1 到 H6:
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题几个要注意的细节:
#后面必须跟一个空格,否则很多解析器不会把它识别为标题- 一个文档建议只用一个 H1,通常作为文章标题
- H4 以下在大多数渲染器中视觉效果和正文差别不大,实际用得最多的是 H2 和 H3
对了,还有一种老式的 Setext 风格标题(用 = 和 - 下划线),只支持两级:
一级标题
========
二级标题
--------这种写法在一些旧文档里还能看到,但新项目基本都改用 # 了。
列表命令
无序列表
用 -、* 或 + 开头(三选一,效果一样):
- 第一项
- 第二项
- 嵌套子项(缩进 2 空格或 4 空格)
- 第三项- 第一项
- 第二项
- 嵌套子项
- 第三项
说实话,我一般固定用 -,这样整个文档风格统一。混用虽然不会报错,但看着不整齐。
有序列表
数字加句点:
1. 打开编辑器
2. 写 Markdown
3. 保存文件有个不少人不知道的特性:有序列表的实际数字不影响渲染结果。你可以全写 1.:
1. 打开编辑器
1. 写 Markdown
1. 保存文件渲染出来还是 1、2、3。这个设计很贴心——插入或删除项目时不用重新编号。我在写长文档的时候一直用这个技巧,维护起来方便很多。
任务列表
方括号加空格或 x:
- [x] 已完成的任务
- [ ] 未完成的任务
- [ ] 另一个待办项- [x] 已完成的任务
- [ ] 未完成的任务
这是 GFM 扩展,在 GitHub 的 issue 和 PR 里特别常用。Obsidian 和 Typora 也支持。
链接与图片命令
行内链接
[链接文字](https://example.com)
[带提示的链接](https://example.com "鼠标悬停提示")引用式链接
适合链接重复出现或 URL 很长的情况:
我喜欢用 [Google][1] 搜索,也经常用 [Google][1] 查资料。
[1]: https://google.com "Google 搜索"引用式链接在渲染效果上和行内链接完全一致,但源码可读性更好。如果你写过技术文档,特别是同一个链接出现多次的场景,你会发现引用式链接维护起来轻松很多——改 URL 只需要改一个地方。
自动链接
尖括号包裹 URL 或邮箱:
<https://example.com>
<user@example.com>邮箱地址会被自动编码,有一定的反垃圾邮件作用。
图片

语法和链接很像,就是前面多了个 !。标准 Markdown 不支持调整图片大小,需要用 HTML:
<img src="image.png" alt="描述" width="300">代码命令
行内代码
单个反引号:
使用 `console.log()` 打印输出。效果:使用 console.log() 打印输出。
代码块
三个反引号包裹,可以指定语言做语法高亮:
```python
def hello():
print("Hello, Markdown!")
支持的语法高亮语言取决于你使用的平台。GitHub 用 Linguist 库支持几百种语言,Typora 用的是 highlight.js,两者覆盖面都很广。
### 代码块里显示反引号
当代码内容本身包含三个反引号时,外层用四个反引号:
````markdown
````markdown
```javascript
console.log("嵌套代码块");
引用命令
右尖括号:
> 这是一段引用文字。
> 可以写很多行。
>
> 空一行分段。
> 嵌套引用
>> 第二层
>>> 第三层这是一段引用文字。 可以写很多行。
引用块里可以用其他 Markdown 命令(加粗、链接、列表等),不限制。
表格命令
用竖线和短横线构建:
| 命令 | 语法 | 说明 |
|------|------|------|
| 加粗 | `**文字**` | 两个星号 |
| 斜体 | `*文字*` | 一个星号 |
| 链接 | `[文字](url)` | 方括号+圆括号 |对齐方式用冒号控制:
| 左对齐 | 居中 | 右对齐 |
|:-------|:----:|-------:|
| 内容 | 内容 | 内容 |:---左对齐(默认):---:居中---:右对齐
表格是 GFM 扩展。在表格内部,竖线需要用 \| 转义。另外表格里不能用块级元素(标题、列表、代码块等),这点经常被忽略,导致渲染结果不符合预期。
分隔线命令
三个或更多的 -、* 或 _:
---
***
___三条线渲染效果一样。建议用 ---,因为星号和下划线有歧义(虽然上下各空一行就没问题)。
转义命令
反斜杠 \ 可以转义以下 12 个特殊字符:
\* \# \| \[ \] \(\) \{ \} \` \. \! \_
\*这不会变成斜体\*
\# 这不会变成标题我踩过的一个坑:在表格里写 | 字符,如果忘了转义,表格结构直接乱掉。后来养成了习惯——表格内出现任何特殊字符都先转义。
脚注命令
这里有一个脚注引用[^1],后面还有另一个[^note]。
[^1]: 这是第一个脚注的内容。
[^note]: 命名脚注也可以。脚注的渲染位置由渲染器决定(通常在页面底部)。这个功能在 Obsidian、Typora、Pandoc 中支持良好,但 GitHub 的 wiki 页面不支持。
HTML 内联
当 Markdown 命令不够用时,可以直接写 HTML:
<mark>高亮文字</mark>
<kbd>Ctrl</kbd> + <kbd>C</kbd>
<sub>下标</sub>
<sup>上标</sup>
<br>规则是:块级 HTML 标签(<div>、<p> 等)内部的 Markdown 语法不会被处理;行内 HTML 标签(<span>、<strong> 等)内部的 Markdown 语法正常处理。这个规则来自原始 Markdown 规范的设计,值得了解。
Markdown 命令速查表
下面这张表覆盖了最常用的 Markdown 语法命令,可以当作日常参考卡使用。
| 命令名称 | 语法 | 类型 |
|---|---|---|
| 加粗 | **文字** | 标准 |
| 斜体 | *文字* | 标准 |
| 加粗斜体 | ***文字*** | 标准 |
| 删除线 | ~~文字~~ | GFM |
| 一级标题 | # 标题 | 标准 |
| 二级标题 | ## 标题 | 标准 |
| 三级标题 | ### 标题 | 标准 |
| 无序列表 | - 项目 | 标准 |
| 有序列表 | 1. 项目 | 标准 |
| 任务列表 | - [x] 项目 | GFM |
| 行内链接 | [文字](url) | 标准 |
| 引用链接 | [文字][id] | 标准 |
| 自动链接 | <url> | 标准 |
| 图片 |  | 标准 |
| 行内代码 | `代码` | 标准 |
| 代码块 | ```语言 | GFM |
| 引用 | > 文字 | 标准 |
| 表格 | 竖线+短横线 | GFM |
| 分隔线 | --- | 标准 |
| 转义 | \字符 | 标准 |
| 脚注 | [^1] | 扩展 |
不同平台的 Markdown 命令差异
同一个 Markdown 命令,在不同平台上的表现可能不一样。我用得比较多的几个平台列了个对比:
| 命令 | GitHub | GitLab | Typora | Obsidian |
|---|---|---|---|---|
| 删除线 | ✅ | ✅ | ✅ | ✅ |
| 任务列表 | ✅ | ✅ | ✅ | ✅ |
| 表格 | ✅ | ✅ | ✅ | ✅ |
| 脚注 | 部分支持 | ✅ | ✅ | ✅ |
| 数学公式 | ✅ | ✅ | ✅ | ✅ |
| Mermaid 图表 | ✅ | ✅ | ✅ | ✅ |
| emoji 短代码 | ✅ :smile: | ✅ | ✅ | ❌ |
| @提及 | ✅ | ✅ | ❌ | ❌ |
| 自动目录 | ❌ | ❌ | ✅ [toc] | ❌ |
我在实际使用中发现,GitHub 对脚注的支持比较有限——它的 wiki 页面不支持脚注,但普通的 issue、PR 和 .md 文件中支持。如果你的文档需要在多个平台间迁移,建议优先使用标准 Markdown 命令,只在确认所有目标平台都支持时才用扩展语法。
参考来源
- CommonMark Spec — https://spec.commonmark.org/
- Daring Fireball: Markdown Syntax — https://daringfireball.net/projects/markdown/syntax
- GitHub Docs: Basic Writing and Formatting Syntax — https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax
- Markdown Guide: Basic Syntax — https://www.markdownguide.org/basic-syntax/
- Markdown — Wikipedia — https://en.wikipedia.org/wiki/Markdown