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>

邮箱地址会被自动编码,有一定的反垃圾邮件作用。

图片

![替代文字](image.png)
![带标题的图片](image.png "图片标题")

语法和链接很像,就是前面多了个 !。标准 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>标准
图片![alt](url)标准
行内代码`代码`标准
代码块```语言GFM
引用> 文字标准
表格竖线+短横线GFM
分隔线---标准
转义\字符标准
脚注[^1]扩展

不同平台的 Markdown 命令差异

同一个 Markdown 命令,在不同平台上的表现可能不一样。我用得比较多的几个平台列了个对比:

命令GitHubGitLabTyporaObsidian
删除线
任务列表
表格
脚注部分支持
数学公式
Mermaid 图表
emoji 短代码:smile:
@提及
自动目录[toc]

我在实际使用中发现,GitHub 对脚注的支持比较有限——它的 wiki 页面不支持脚注,但普通的 issue、PR 和 .md 文件中支持。如果你的文档需要在多个平台间迁移,建议优先使用标准 Markdown 命令,只在确认所有目标平台都支持时才用扩展语法。

参考来源

  1. CommonMark Spec — https://spec.commonmark.org/
  2. Daring Fireball: Markdown Syntax — https://daringfireball.net/projects/markdown/syntax
  3. 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
  4. Markdown Guide: Basic Syntax — https://www.markdownguide.org/basic-syntax/
  5. Markdown — Wikipedia — https://en.wikipedia.org/wiki/Markdown