Markdown 速查表
最后更新
标题
# 号后面要加一个空格。# 号的个数决定标题级别,从 1 到 6。
| 元素 | Markdown | 效果 |
|---|---|---|
| 一级标题 | # Page title | 最高级标题,<h1> |
| 二级标题 | ## Section | 章节标题,<h2> |
| 三级标题 | ### Subsection | 小节标题,<h3> |
| 四级到六级标题 | #### Level 4
##### Level 5
###### Level 6 | <h4>、<h5> 和 <h6> |
| 一级标题,另一种写法 | Page title
========== | <h1>,和 # Page title 一样 |
| 二级标题,另一种写法 | Section
------- | <h2>,和 ## Section 一样 |
| 结尾的 # 号 | ## Section ## | <h2>Section</h2>;结尾的 # 号会被忽略 |
| 漏了空格 | #Not a heading | 普通段落。# 后面必须有空格 |
加粗、斜体与删除线
星号在任何位置都有效,甚至可以在单词中间。下划线只在单词边界处生效,所以 snake_case 会原样显示。
| 元素 | Markdown | 效果 |
|---|---|---|
| 加粗 | **bold text** | 加粗,<strong>bold text</strong> |
| 加粗,下划线写法 | __bold text__ | 加粗,同上 |
| 斜体 | *italic text* | 斜体,<em>italic text</em> |
| 斜体,下划线写法 | _italic text_ | 斜体,同上 |
| 加粗并斜体 | ***bold and italic*** | <em><strong>bold and italic</strong></em> |
| 单词中间加粗 | un**believ**able | 只有单词中间那部分加粗 |
| 单词中的下划线 | snake_case_name | 普通文本,没有斜体 |
| 删除线(GFM) | ~~no longer true~~ | 划掉的文字,<del>no longer true</del> |
| 下划线文字 | <ins>underlined</ins> | 带下划线的文字。Markdown 没有下划线语法,所以这里用的是 HTML |
| 高亮 | <mark>highlighted</mark> | 在允许 <mark> 标签的网站上显示为高亮文字。Markdown 没有高亮语法 |
换行与段落
在段落里只按一次 Enter,输出中并不会换行。请改用下面这些写法。
| 元素 | Markdown | 效果 |
|---|---|---|
| 新段落 | First paragraph.
Second paragraph. | 两个段落,中间用一个空行分隔 |
| 换行:两个空格 | Roses are red,
Violets are blue. | 一个段落,red, 后面有一个 <br>。第一行末尾有两个看不见的空格 |
| 换行:反斜杠 | Roses are red,\
Violets are blue. | 同样的 <br>,但标记看得见。在 CommonMark 和 GitHub 上都有效 |
| 换行:HTML | Roses are red,<br>Violets are blue. | 同样的 <br>。在表格单元格里也能用 |
| 单个换行符 | Roses are red,
Violets are blue. | 显示为一行:Roses are red, Violets are blue. GitHub 的 issue 和评论会保留换行,.md 文件则不会 |
| 多个空行 | One.
Two. | 和一个空行效果一样。想要更大的间距,就单独一行写 <br> |
列表
嵌套项要缩进到和上一项的文字对齐:- 下面缩进 2 个空格,1. 下面缩进 3 个空格。
| 元素 | Markdown | 效果 |
|---|---|---|
| 无序列表 | - Apples
- Pears
- Plums | 无序列表,一个 <ul> 包含三个 <li> |
| 其他项目符号 | * Apples
+ Pears | * 和 + 也能生成项目符号。换用另一个符号会开始一个新列表 |
| 有序列表 | 1. Install
2. Configure
3. Run | 有序列表,<ol> |
| 偷懒编号 | 1. Install
1. Configure
1. Run | 仍然编号为 1、2、3。只有第一个数字有效 |
| 从指定数字开始 | 7. Seventh
8. Eighth | <ol start="7">,从 7 开始编号 |
| 嵌套列表 | - Fruit
- Apple
- Pear
- Vegetables | 第一项里面嵌套一个列表 |
| 有序列表中嵌套 | 1. Download
- Windows
- macOS
2. Install | 第 1 步里面的项目符号,缩进 3 个空格 |
| 列表项中的段落 | - First item
More about the first item.
- Second item | 第一项里面有两个段落 |
| 列表项中的代码 | 1. Run this:
```bash
npm install
```
2. Start the app | 第 1 步里面的代码块,缩进到和该项文字对齐 |
任务列表(复选框)
这是 GitHub Flavored Markdown 的扩展:以 [ ] 或 [x] 开头的列表项会变成复选框。
| 元素 | Markdown | 效果 |
|---|---|---|
| 空复选框 | - [ ] Write tests | 未勾选的复选框 |
| 已勾选的复选框 | - [x] Write tests | 已勾选的复选框。[X] 也可以 |
| 清单 | - [x] Draft
- [ ] Review
- [ ] Publish | 一个已勾选、两个未勾选。在 GitHub 的 issue 和 pull request 中,点一下就能勾选 |
| 嵌套任务 | - [ ] Release
- [x] Tag the commit
- [ ] Write the notes | 第一个复选框下面有两个子任务 |
| 漏了空格 | - [] Write tests | 普通的列表项,显示为 [] Write tests。方括号里必须有一个空格或 x |
链接
链接文字写在方括号里,地址紧跟其后写在圆括号里,两者之间不能有空格。
| 元素 | Markdown | 效果 |
|---|---|---|
| 行内链接 | [Coddy](https://coddy.tech) | <a href="https://coddy.tech">Coddy</a> |
| 带标题的链接 | [Coddy](https://coddy.tech "Learn to code") | 同样的链接。鼠标悬停时显示标题提示 |
| 尖括号中的 URL | <https://coddy.tech> | URL 本身,作为链接显示 |
| 裸 URL(GFM) | https://coddy.tech | 在 GitHub 和其他支持 GFM 的网站上是链接,这些网站也会把 www. 开头的地址变成链接。在严格的 CommonMark 中是普通文本 |
| 邮箱链接 | <hello@example.com> | 一个 mailto: 链接 |
| 引用式链接 | Read the [docs][1].
[1]: https://example.com/docs | docs 链接到该 URL。[1]: 这一行不会显示 |
| 简写引用 | See [GitHub].
[GitHub]: https://github.com | GitHub 链接到该 URL |
| 相对链接 | [Install guide](docs/install.md) | 指向相对于当前文件的另一个文件。在 GitHub 上会打开仓库中的该文件 |
| 链接到标题 | [Jump to setup](#getting-started) | 滚动到同一页面上的 ## Getting Started |
| 标题 ID | ## Getting Started! | 在 GitHub 上得到 ID getting-started:转为小写,空格变成连字符,除 - 和 _ 以外的标点都会被去掉 |
| 其他文件中的标题 | [Requirements](docs/install.md#requirements) | 打开该文件并跳到那个标题 |
| URL 中的空格 | [Report](my%20report.pdf) | 把每个空格写成 %20,或者用尖括号把 URL 括起来:[Report](<my report.pdf>) |
| 在新标签页中打开 | <a href="https://coddy.tech" target="_blank">Coddy</a> | Markdown 没有对应的语法。网站保留 target 属性时,这段 HTML 才有效 |
图片
图片就是前面加了 ! 的链接。方括号里的文字会成为替代文本(alt),屏幕阅读器会把它读出来。
| 元素 | Markdown | 效果 |
|---|---|---|
| 图片 |  | <img src="cat.png" alt="A cat asleep on a sofa"> |
| 带标题的图片 |  | 同样的图片,鼠标悬停时显示提示 |
| 来自 URL 的图片 |  | 从网上加载图片 |
| 带链接的图片 | [](https://coddy.tech) | 点击图片会打开链接 |
| 引用式图片 | ![Logo][logo]
[logo]: images/logo.png | 和行内图片一样,只是 URL 在下方统一定义一次 |
| 图片尺寸 | <img src="logo.png" alt="Logo" width="200"> | 宽 200 像素的图片。普通 Markdown 没有设置尺寸的语法,所以这里用 HTML 的 <img> 标签 |
| 居中图片 | <p align="center">
<img src="logo.png" alt="Logo" width="200">
</p> | 居中的图片,很多 GitHub README 文件里都能看到 |
代码与代码块
反引号标记行内代码;三个反引号组成的围栏标记代码块。代码里的内容都不会被格式化。
| 元素 | Markdown | 效果 |
|---|---|---|
| 行内代码 | Run `npm install` first. | npm install 以等宽字体显示,即 <code> |
| 代码中包含反引号 | ``Use `git` here`` | 显示代码 Use `git` here。外层反引号要比里面包含的多 |
| 代码块 | ```
npm install
npm run dev
``` | 一个代码块,<pre><code>,保留换行 |
| 语法高亮 | ```python
def greet(name):
return f"Hello, {name}"
``` | 带语法着色的 Python 代码块。常用的语言名:js、ts、python、bash、json、html、css、sql |
| 波浪线围栏 | ~~~js
console.log("hi");
~~~ | 和反引号围栏一样 |
| 缩进式代码 | const total = 42; | 在空行之后缩进 4 个空格,就成了代码块 |
| Diff 代码块 | ```diff
- const x = 1;
+ const x = 2;
``` | 在 GitHub 上,删除的行显示为红色,新增的行显示为绿色 |
| 代码块中的围栏 | ````markdown
```js
let a = 1;
```
```` | 把内层围栏当作文本显示的代码块。外层围栏的反引号要比内层多 |
表格
这是 GitHub Flavored Markdown 的扩展。第二行是分隔行,它会把第一行变成表头。分隔行的单元格数必须和表头一样,否则不会生成表格。
| 元素 | Markdown | 效果 |
|---|---|---|
| 表格 | | Name | Role |
| ----- | ------ |
| Ada | Admin |
| Linus | Editor | | 一个带表头行和两行数据的表格 |
| 列对齐 | | Left | Center | Right |
| :--- | :----: | ----: |
| a | b | c | | 用冒号设置对齐方式:左对齐、居中、右对齐 |
| 省略两侧竖线 | Name | Role
--- | ---
Ada | Admin | 同样的表格。行首和行尾的竖线可以省略 |
| 列宽 | | a | b |
|---|---|
| 1 | 2 | | 列宽由内容决定。连字符的数量无所谓,竖线也不必对齐 |
| 单元格内的格式 | | Command | Does |
| --- | --- |
| `git status` | Shows **changed** files | | 代码、加粗、链接和图片在单元格里都能用 |
| 单元格内的竖线 | | Operator | Meaning |
| --- | --- |
| `a \| b` | a or b | | 单元格显示 a | b。竖线要转义成 \|,即使在代码里也一样 |
| 单元格内换行 | | Step | Notes |
| --- | --- |
| 1 | First line<br>Second line | | 一个单元格里显示两行。真正的换行符会结束这一行 |
| 合并单元格 | <td colspan="2">Both columns</td> | Markdown 表格不能合并单元格。请改用 HTML 写表格,配合 colspan 或 rowspan |
引用块
每一行以 > 开头。引用块里可以包含任何其他 Markdown。
| 元素 | Markdown | 效果 |
|---|---|---|
| 引用块 | > Simple is better than complex. | 缩进显示的引用,<blockquote> |
| 多个段落 | > First paragraph.
>
> Second paragraph. | 一个引用块包含两个段落。只有 > 的那一行让它们保持在同一个引用里 |
| 嵌套引用 | > The reply
>> The original message | 引用里面再套一个引用 |
| 包含其他元素 | > #### Note
> - Back up first
> - Then upgrade | 引用里面有一个标题和一个列表 |
| 提示框(GitHub) | > [!NOTE]
> Requires Node 20 or later. | 在 GitHub 上显示为彩色的 Note 提示框。其他类型有 [!TIP]、[!IMPORTANT]、[!WARNING] 和 [!CAUTION] |
分隔线
单独一行写三个或更多连字符、星号或下划线,会画出一条横穿页面的线。
| 元素 | Markdown | 效果 |
|---|---|---|
| 分隔线 | --- | 一条水平线,<hr> |
| 其他写法 | ***
___ | 又是两条分隔线 |
| 文字后的分隔线 | Some text
--- | 一个段落,然后一条分隔线。中间的空行不能省 |
| 漏了空行 | Some text
--- | 变成二级标题而不是分隔线:文字下方的 --- 会把它变成标题 |
脚注
GitHub、GitLab 和许多静态网站生成器都支持。严格的 CommonMark 没有脚注。
| 元素 | Markdown | 效果 |
|---|---|---|
| 脚注 | Markdown dates from 2004.[^1]
[^1]: John Gruber created it, with Aaron Swartz. | 一个上标 1,链接到列在页面底部的注释 |
| 命名脚注 | See the spec.[^spec]
[^spec]: https://spec.commonmark.org | 标签可以是单词,但注释仍按使用顺序编号为 1、2、3 |
| 在哪里定义 | [^1]: The text of the note. | 定义可以放在文件的任何位置,渲染时总是显示在末尾 |
转义字符
在标点符号前加反斜杠,会原样输出这个字符,而不是把它当作格式标记。
| 元素 | Markdown | 效果 |
|---|---|---|
| 原样显示星号 | \*not italic\* | 带星号的普通文本:*not italic* |
| 原样显示 # 号 | \# Not a heading | 以 # 开头的段落 |
| 数字加句点 | 2024\. A good year. | 一个段落,而不是从 2024 开始的列表 |
| 原样显示方括号 | \[not a link\](page.md) | 方括号和圆括号原样显示 |
| 原样显示反引号 | \` | 一个反引号 |
| 原样显示反斜杠 | \\ | 一个反斜杠 |
| 可以转义的字符 | \ ` * _ {} [] () <> # + - . ! | | 任何 ASCII 标点。字母或数字前的反斜杠仍然显示为反斜杠 |
| HTML 实体 | © 2026 & <div> | 以文本形式显示 © 2026 & <div> |
| 代码中不转义 | `*stars*` | 代码 *stars* 原样显示。在代码里,反斜杠就是普通字符 |
Markdown 中的 HTML
大多数渲染器会让 HTML 原样通过,所以 Markdown 没有语法的地方,可以用标签补上。GitHub 会移除不安全的 HTML,比如 <script>、<style>、<iframe> 和 style 属性。
| 元素 | Markdown | 效果 |
|---|---|---|
| 键盘按键 | Press <kbd>Ctrl</kbd> + <kbd>C</kbd> | Ctrl 和 C 显示为按键样式 |
| 下标和上标 | H<sub>2</sub>O and x<sup>2</sup> | H₂O 和 x² |
| 可折叠区域 | <details>
<summary>Show the answer</summary>
The answer is **42**.
</details> | 点击后展开的区域。空行让里面的 Markdown 能正常渲染 |
| HTML 块中的 Markdown | <div>
**not bold**
</div> | **not bold** 原样显示。在 HTML 块里,直到空行结束这个块之前,Markdown 都不会被解析 |
| 彩色文字 | <span style="color: red">red</span> | 在允许内联样式的网站上显示为红色文字。GitHub 会移除 style 属性 |
注释
Markdown 没有注释语法。下面两个技巧可以让文字不出现在渲染后的页面上。
| 元素 | Markdown | 效果 |
|---|---|---|
| 隐藏注释 | [//]: # (This line is never shown) | 什么都不显示。这一行是一个没有被任何链接使用的链接定义,所以根本不会进入 HTML |
| 另一种写法 | [comment]: <> (Also hidden) | 什么都不显示,原理相同 |
| HTML 注释 | <!-- TODO: add screenshots --> | 页面上不显示,但注释会留在 HTML 源代码里 |
| 多行注释 | <!--
This whole block
is hidden
--> | 页面上不显示 |
| 位置 | Some text.
[//]: # (comment)
More text. | 两个段落。注释行前面必须有一个空行,否则会作为文字显示出来 |
GitHub Flavored Markdown 与 GitHub 扩展
GitHub Flavored Markdown(GFM)就是 CommonMark 加上表格、任务列表、删除线和裸 URL 链接。GitHub 在此之上又加了更多功能。
| 功能 | Markdown | 适用范围 |
|---|---|---|
| 表格 | | a | b |
| --- | --- |
| 1 | 2 | | GFM:GitHub、GitLab 和大多数文档工具 |
| 任务列表 | - [x] Done | GFM |
| 删除线 | ~~text~~ | GFM |
| 裸 URL 链接 | www.coddy.tech | GFM |
| 指定语言的代码 | ```js
let a = 1;
``` | CommonMark 和 GFM。颜色由网站决定 |
| 脚注 | Text.[^1]
[^1]: Note. | GitHub 和 GitLab,但不在 GFM 规范中 |
| Emoji | :rocket: :tada: | GitHub 和 GitLab 会把短代码变成 emoji |
| 提及用户 | @octocat | GitHub:链接到该用户并通知对方 |
| Issue 链接 | #123 | GitHub:链接到同一仓库中编号为 123 的 issue 或 pull request |
| 图表 | ```mermaid
graph LR
A --> B
``` | GitHub 和 GitLab 会绘制 Mermaid 图表 |
| 数学公式 | $E = mc^2$
$$
\sum_{i=1}^{n} i
$$ | GitHub 会渲染 LaTeX 公式:行内公式写在 $ 之间,块级公式写在两行 $$ 之间 |
所有 Markdown 语法都在这一页,每一条旁边都写着它会变成什么。这份 Markdown 速查表涵盖核心语法(标题、强调、换行、列表、链接、图片、代码、引用块),以及 GitHub Flavored Markdown 的扩展:可设置对齐的表格、任务列表、删除线、裸 URL 链接和脚注,另外还有转义、HTML 和注释。
示例遵循 CommonMark 和 GitHub Flavored Markdown,GitHub、GitLab 和大多数文档工具都以这套规则为基础。某个网站的表现不同时,对应的行里会注明。想边输入边看到渲染效果,可以把任意示例粘贴到 Markdown 编辑器里。
Markdown 速查表常见问题
Markdown 表格怎么写?
| Name | Role |、| --- | --- |、| Ada | Admin |。分隔行中的冒号决定列的对齐方式::--- 左对齐,:---: 居中,---: 右对齐。表格是 GitHub Flavored Markdown 的功能,所以在 GitHub、GitLab 和大多数文档工具中都能用,但在严格的 CommonMark 中不行。Markdown 怎么换行?
\),或者写 <br>。要开始新段落,就空一行。GitHub 的 issue 和评论是例外:在那里,单个换行符就会显示为换行。Markdown 怎么写注释?
[//]: # (your comment),并在它前面空一行,它就是一个没被任何地方使用的链接定义,所以既不会出现在页面上,也不会进入 HTML。HTML 注释 <!-- your comment --> 在页面上同样不可见,但会留在 HTML 源代码里,任何查看源代码的人都能读到。Markdown 代码块怎么写?
```python,就能获得语法高亮。句子中的代码,用单个反引号包起来:`npm install`。Markdown 怎么添加复选框?
[ ] 开头表示空复选框,以 [x] 开头表示已勾选:- [ ] Review 或 - [x] Draft。空方括号里的空格不能省。复选框属于 GitHub Flavored Markdown,在 GitHub 的 issue 和 pull request 中,点一下就能勾选。Markdown 怎么调整图片大小?
 总是按图片原始大小显示。请改用 HTML 标签,比如 <img src="image.png" alt="alt text" width="300">,GitHub 和大多数渲染器都支持。只设置宽度或只设置高度,就能保持原有比例。Markdown 怎么链接到某个标题?
# 加上标题的 ID 作为链接:[Setup](#getting-started) 会跳到 ## Getting Started。GitHub 用标题文字生成 ID:转为小写,空格变成连字符,除连字符和下划线以外的标点都会被去掉。要链接到其他文件中的标题,就把 ID 写在文件名后面:[Setup](docs/install.md#getting-started)。.md 文件是什么?
.md 和 .markdown,而 README.md 就是 GitHub 显示在仓库首页的那个文件。任何文本编辑器都能打开它;GitHub、文档网站和 Markdown 查看器会把它渲染成带格式的文本。想边编辑边看渲染效果,可以把文件内容粘贴到 Markdown 编辑器里。