Menu
CoddyTech

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 上都有效
换行:HTMLRoses 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/docsdocs 链接到该 URL。[1]: 这一行不会显示
简写引用See [GitHub]. [GitHub]: https://github.comGitHub 链接到该 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效果
图片![A cat asleep on a sofa](cat.png)<img src="cat.png" alt="A cat asleep on a sofa">
带标题的图片![Logo](logo.png "Coddy logo")同样的图片,鼠标悬停时显示提示
来自 URL 的图片![Build status](https://example.com/badge.svg)从网上加载图片
带链接的图片[![Logo](logo.png)](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 实体&copy; 2026 &amp; &lt;div&gt;以文本形式显示 © 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] DoneGFM
删除线~~text~~GFM
裸 URL 链接www.coddy.techGFM
指定语言的代码```js let a = 1; ```CommonMark 和 GFM。颜色由网站决定
脚注Text.[^1] [^1]: Note.GitHub 和 GitLab,但不在 GFM 规范中
Emoji:rocket: :tada:GitHub 和 GitLab 会把短代码变成 emoji
提及用户@octocatGitHub:链接到该用户并通知对方
Issue 链接#123GitHub:链接到同一仓库中编号为 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 怎么写注释?
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 怎么调整图片大小?
普通 Markdown 没有设置尺寸的语法:![alt text](image.png) 总是按图片原始大小显示。请改用 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 文件是什么?
就是用 Markdown 写的纯文本文件。常见的扩展名是 .md 和 .markdown,而 README.md 就是 GitHub 显示在仓库首页的那个文件。任何文本编辑器都能打开它;GitHub、文档网站和 Markdown 查看器会把它渲染成带格式的文本。想边编辑边看渲染效果,可以把文件内容粘贴到 Markdown 编辑器里。
Coddy 编程语言插图

在 Coddy 学习 Markdown

开始