Markdown语法概述
本站 Markdown 与文档写作说明,含语法速查与扩展说明。

标题

用行首的 # 表示标题,# 与文本要有一个空格,#的数量对应级别。

1
2
3
4
5
6
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题

还可以在文本下方添加任意数量的 == 号来标识一级标题,或者 – 号来标识二级标题。

Markdown语法 HTML 预览效果
Heading level 1
===============

Heading level 1


Heading level 1
Heading level 2
—————

Heading level 2


Heading level 2

段落与换行

段落之间用空一行分隔。
若要在同一段内强制换行,在行尾加两个空格再回车,或使用行尾 \;很多环境也支持直接单个换行即换行。
不要用空格(spaces)或制表符( tabs)缩进段落。
几乎每个 Markdown 应用程序都支持两个或多个空格进行换行,称为 结尾空格(trailing whitespace) 的方式,但这是有争议的,因为很难在编辑器中直接看到空格,并且很多人在每个句子后面都会有意或无意地添加两个空格。由于这个原因,你可能要使用除结尾空格以外的其它方式来换行。幸运的是,几乎每个 Markdown 应用程序都支持另一种换行方式:HTML 的
标签。

为了兼容性,请在行尾添加“结尾空格”或 HTML 的
标签来实现换行。

还有两种其他方式我并不推荐使用。CommonMark 和其它几种轻量级标记语言支持在行尾添加反斜杠 () 的方式实现换行,但是并非所有 Markdown 应用程序都支持此种方式,因此从兼容性的角度来看,不推荐使用。并且至少有两种轻量级标记语言支持无须在行尾添加任何内容,只须键入回车键(return)即可实现换行。
✅ Do this

1
2
3
这是第一段。

这是第二段。

强调与行内格式

效果 源码写法
斜体 *文字*_文字_
粗体 **文字**__文字__
粗斜体 ***文字***
行内代码 `代码`
删除线 ~~文字~~

推荐使用*来达到斜体粗体粗斜体


转义字符

需要显示 Markdown 特殊字符本身时,在字符前加反斜杠 \,例如:\*\#\`\[ 等。可转义的字符集合因实现略有差异。

效果 源码写法
这会变成斜体 *这会变成斜体*
*这就不会斜体了* \*这就不会斜体了\*

列表

无序列表

行首使用 -*+,后接空格,再写内容。多级列表通过缩进表示层级(通常两个或四个空格)。

  • 第一项
  • 第二项
    • 子项 A
    • 子项 B
1
2
3
4
- 第一项
- 第二项
- 子项 A
- 子项 B

有序列表

使用数字加点与空格:1. 2. 。多数解析器会按书写顺序渲染序号,也有环境会自动重排。

  1. 第一步
  2. 第二步
  3. 第三步
1
2
3
1. 第一步
2. 第二步
3. 第三步

任务列表(GFM)

  • 未完成
  • 已完成
1
2
- [ ] 未完成
- [x] 已完成

链接与图片

行内式链接

链接文字
带标题的链接

1
2
[链接文字](https://example.com)
[带标题的链接](https://example.com "鼠标悬停说明")

图片

语法与链接类似,前面加 !

替代文字
替代文字

1
2
![替代文字](图片地址)
![替代文字](图片地址 "可选标题")

引用式图片:

替代文字

1
2
3
![替代文字][img-id]

[img-id]: https://example.com/pic.png

行内代码与代码块

行内代码用一对反引号包裹:`printf`

若代码内含反引号,可用更多反引号作为外层定界,或缩进代码块(部分解析器)。

围栏式代码块(Fenced code block):

1
2
3
```语言标识(可选)
多行代码
```
1
多行代码

语言标识(如 jspythonbash)常用于语法高亮,具体取决于渲染器。


引用

行首使用 > 表示引用,可多级嵌套:

1
2
> 这是一级引用。
> > 这是嵌套引用。

这是一级引用。

这是嵌套引用。
引用内仍可包含标题、列表、代码等块级元素(依解析器支持程度而定)。


分隔线

单独一行使用三个或更多 -*_(之间可含空格),例如:

1
2
---
* * *


注意与 Setext 二级标题的 --- 区分:Setext 要求上一行是文字;若上一行为空,通常会被解析为分隔线。


表格(GFM)

用竖线 | 与短横线画表头与对齐方式:
rkdown 中如何设置表格内容居中

1
2
3
| 左对齐 | 居中 | 右对齐 |
| :----- | :--: | -----: |
| a | b | c |

第二行中的冒号决定列对齐;无冒号时依实现可能默认左对齐。


1
2
3
4
5
6
graph TD
A[开始] --> B{条件判断}
B -->|Yes| C[执行操作A]
B -->|No| D[执行操作B]
C --> E[结束]
D --> E
1
2
3
4
5
6
7
8
9
sequenceDiagram
participant A as 用户
participant B as 系统
participant C as 数据库

A->>B: 登录请求
B->>C: 验证用户信息
C-->>B: 返回验证结果
B-->>A: 登录成功/失败
1
2
3
4
5
6
7
8
9
10
11
12
gantt
title 项目开发计划
dateFormat YYYY-MM-DD
section 设计阶段
需求分析 :done, des1, 2024-01-01,2024-01-15
UI设计 :active, des2, 2024-01-10, 30d
section 开发阶段
前端开发 : dev1, after des2, 45d
后端开发 : dev2, 2024-02-01, 60d
section 测试阶段
单元测试 : test1, after dev1, 15d
集成测试 : test2, after dev2, 10d
1
2
3
4
5
6
pie
title 浏览器市场份额
"Chrome" : 65
"Safari" : 15
"Firefox" : 10
"其他" : 10