Markdown 入门
Markdown 是一种轻量级标记语言,你可以使用它向纯文本文档添加格式元素。Markdown 由 John Gruber 于 2004 年创建,现在是世界上最流行的标记语言之一。
基本语法
尽管一些软件并不支持进阶的 Markdown 语法,但几乎所有 Markdown 应用程序都支持原始 Markdown 设计文档中概述的基本语法。
1. 标题
在单词或短语前添加井号(#)。井号的数量与标题级别相对应。
- Markdown 输入
- 渲染输出
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
一级标题
二级标题
三级标题
四级标题
五级标题
六级标题
备用语法
在文本下方的行中,添加任意数量的 == 字符以表示一级标题,或 -- 字符以表示二级标题。
- Markdown 输入
- 渲染输出
一级标题
===========
二级标题
-----------
一级标题
二级标题
常见错误
错误一:# 与文字间没有添加空格
- ❌ 错误
- ✅ 正确
#这是一个标题
# 这是一个标题
错误二:标题前后没有放置空行
❌ 不推荐的写法:
上面是文章内容 #这是一个标题 下面是文章内容
在大部分软件中不会被正确输出为标题。
✅ 推荐的写法:
上面是文章内容
# 这是一个标题
下面是文章内容
2. 换行
在每行的结尾处键入至少两个空格,再键入回车。
- Markdown 输入
- 渲染输出
这是第一行··
这是第二行。
· 表示空格
这是第一行
这是第二行。
常见错误
错误:行末键入少于两个空格后就回车
- ❌ 错误
- 渲染输出
这是第一行.
这是第二行。
仅一个空格或直接回车
这是第一行。这是第二行。
部分编辑器已经可以做到回车即换行,但在一些平台中(GitHub),你可能仍要键入两个空格。如果在渲染预览中没有实现换行效果,不妨试试键入两个空格。
3. 斜体
在单词或短语前后各添加一个星号(*)或下划线(_)。
- Markdown 输入
- 渲染输出
这是一个*斜体文本*。
这是一个_斜体文本_。
这是一个斜体文本。
这是一个斜体文本。
常见错误
错误:星号或下划线周边有空格
- ❌ 错误
- 渲染输出
这是一个* 斜体文本 *。
这是一个 _斜体文本_ 。
这是一个* 斜体文本 *。
这是一个 _斜体文本_ 。
部分编辑器可能不支持通过添加下划线(_)实现斜体效果。为了兼容性,请使用星号(*)。
4. 加粗
在单词或短语前后各添加两个星号(**)或下划线(__)。
- Markdown 输入
- 渲染输出
这是一个**加粗文本**。
这是一个__加粗文本__。
这是一个加粗文本。
这是一个加粗文本。
常见错误
错误:星号或下划线周边有空格
- ❌ 错误
- 渲染输出
这是一个** 加粗文本 **。
这是一个 __加粗文本__ 。
这是一个** 加粗文本 **。
这是一个 __加粗文本__ 。
部分编辑器可能不支持通过添加下划线(_)实现加粗效果。为了兼容性,请使用星号(*)。
5. 加粗和斜体
在单词或短语前后各添加三个星号(***)或下划线(___)。
- Markdown 输入
- 渲染输出
这是一个***加粗斜体文本***。
这是一个___加粗斜体文本___。
这是一个加粗斜体文本。
这是一个加粗斜体文本。
常见错误
错误:星号或下划线周边有空格
- ❌ 错误
- 渲染输出
这是一个*** 加粗斜体文本 ***。
这是一个 ___加粗斜体文本___ 。
这是一个*** 加粗斜体文本 ***。
这是一个 ___加粗斜体文本___ 。
部分编辑器可能不支持通过添加下划线(_)实现加粗斜体效果。为了兼容性,请使用星号(*)。
6. 列表
有序列表
添加带有数字和句号的行项目。数字不必按数字顺序排列,但列表应从数字一开头。
- Markdown 输入
- 渲染输出
1. 第一个项目
2. 第二个项目
5. 第五个项目
- 第一个项目
- 第二个项目
- 第五个项目
部分 Markdown 渲染器要求列表数字必须按顺序排列。
无序列表
在行项目前添加破折号(-)、星号(*)或加号(+)。按 Tab 缩进创建嵌套列表。
- Markdown 输入
- 渲染输出
- 第一个项目
- 第二个项目
- 第2.5个项目
- 第2.75个项目
- 第三个项目
- 第一个项目
- 第二个项目
- 第2.5个项目
- 第2.75个项目
- 第2.5个项目
- 第三个项目
用数字开始无序列表项
如果你需要用一个数字加句号开始一个无序列表项,可以使用反斜杠(\)来转义句号。
- Markdown 输入
- 渲染输出
- 1968\. 伟大的一年!
- 我认为 1969 年是第二好的。
- 1968. 伟大的一年!
- 我认为 1969 年是第二好的。
常见错误
错误一:序号与项目之间未键入空格
- ❌ 错误
- 渲染输出
1.第一个项目
2.第二个项目
-第三个项目
1.第一个项目 2.第二个项目 -第三个项目
错误二:未使用反斜杠转义
- ❌ 错误(未转义)
- 渲染输出
- 1968. 伟大的一年!
- 我认为 1969 年是第二好的。
- 伟大的一年!
- 我认为 1969 年是第二好的。
7. 代码
在单词或短语两端添加反引号(`)。
- Markdown 输入
- 渲染输出
在命令提示符下,键入 `nano`。
在命令提示符下,键入 nano。
若要创建代码块,请参考 扩展语法。
常见错误
错误:反引号与代码之间有多余空格
- ❌ 错误
- 渲染输出
在命令提示符下,键入 ` nano `。
在命令提示符下,键入 nano。
部分编辑器可能需要在第一个引号前键入一个空格才能实现该效果。
8. 水平线
在单独的一行上使用三个或更多的星号、破折号或下划线。
- Markdown 输入
- 渲染输出
星号写法:
***
破折号写法(推荐):
---
下划线写法:
___
星号写法:
破折号写法(推荐):
下划线写法:
部分编辑器可能不支持通过星号(***)与下划线(___)实现水平线效果。为了兼容性,请使用破折号(---)。
9. 引用块
在段落前添加大于号(>)。
- Markdown 输入
- 渲染输出
> 私多分(我想我大概…)
> 一生CRYCHICのこと忘れられないよ(一辈子也忘不了CRYCHIC)
私多分(我想我大概…) 一生CRYCHICのこと忘れられないよ(一辈子也忘不了CRYCHIC)
包含多个段落的引用块
在段落之间的空行也添加 >。
- Markdown 输入
- 渲染输出
> 私多分(我想我大概…)
>
> 一生CRYCHICのこと忘れられないよ(一辈子也忘不了CRYCHIC)
私多分(我想我大概…)
一生CRYCHICのこと忘れられないよ(一辈子也忘不了CRYCHIC)
嵌套引用块
在段落前添加两个大于号(>>)。
- Markdown 输入
- 渲染输出
> 一生 バンドしてくれる(能跟我组一辈子乐队吗?)
>
>> ここには 終わらせに来たの(我是来结束这个乐队的)
一生 バンドしてくれる(能跟我组一辈子乐队吗?)
ここには 終わらせに来たの(我是来结束这个乐队的)
包含其他元素的引用块
引用块可以包含其他 Markdown 格式的元素,但并非所有元素都可以使用——你需要进行尝试以查看哪些元素有效。
- Markdown 输入
- 渲染输出
> いいご身分ですわね(还真是高高在上呢)
> #### バンド 楽しいって思ったこと 一度もない(我从没有觉得乐队有意思过)
> - 祥ちゃんたちがいないと 私…(没有了你们 我···)
> - あなた ご自分のことばかりですのね(你这个人 满脑子都想着自己呢)
>
> **弱い私は もう死にました** *(脆弱的我 已经死去了)*
いいご身分ですわね(还真是高高在上呢)
バンド 楽しいって思ったこと 一度もない(我从没有觉得乐队有意思过)
- 祥ちゃんたちがいないと 私…(没有了你们 我···)
- あなた ご自分のことばかりですのね(你这个人 满脑子都想着自己呢)
弱い私は もう死にました (脆弱的我 已经死去了)
10. 链接
链接文本放在方括号 [] 中,URL 放在圆括号 () 中。
- Markdown 输入
- 渲染输出
访问 [CQUT-OSP](https://github.com/CQUT-OpenProject) 了解更多。
访问 CQUT-OSP 了解更多。
添加标题
在 URL 后添加用双引号包裹的标题,鼠标悬停时显示。
- Markdown 输入
- 渲染输出
[CQUT-OSP](https://github.com/CQUT-OpenProject "CQUT 开源项目")
网址与邮箱自动链接
用尖括号 <> 包裹 URL 或邮箱地址,自动转为链接。
- Markdown 输入
- 渲染输出
<https://github.com>
<example@email.com>
引用式链接
将 URL 集中放在文档底部,正文引用标签名。适合多处引用同一链接的场景。
- Markdown 输入
- 渲染输出
[CQUT-OSP][cqut]
[cqut]: https://github.com/CQUT-OpenProject
11. 图片
语法与链接类似,在最前加感叹号 !。
- Markdown 输入
- 渲染输出


带标题的图片
- Markdown 输入
- 渲染输出


图片链接
将图片嵌套在链接中,点击图片跳转到指定 URL。
引用式图片
- Markdown 输入
- 渲染输出
![CQUT-OSP Logo][logo]
[logo]: /img/logo.jpg

12. 转义字符
如果你想显示 Markdown 中用于格式化文本的字面量字符,可以在字符前面添加反斜杠 \。
- Markdown 输入
- 渲染输出
\*斜体\* 而不是斜体
\*\*加粗\*\* 而不是加粗
\# 不是标题
\` 不是代码
\> 不是引用块
\- 不是列表
1\. 不是有序列表
*斜体* 而不是斜体
**加粗** 而不是加粗
# 不是标题
` 不是代码
> 不是引用块
- 不是列表
1. 不是有序列表
可转义的字符列表
| 字符 | 转义 | 说明 |
|---|---|---|
\ | \\ | 反斜杠 |
` | \` | 反引号 |
* | \* | 星号 |
_ | \_ | 下划线 |
{} | \{\} | 花括号 |
[] | \[\] | 方括号 |
() | \(\) | 圆括号 |
# | \# | 井号 |
+ | \+ | 加号 |
- | \- | 减号 |
. | \. | 句号 |
! | \! | 感叹号 |
| ` | ` | | |
扩展语法
并非所有 Markdown 应用程序都支持扩展语法。
1. 表格
使用三个或更多连字符(---)创建标题分隔行,并使用竖线(|)分隔每列。为保证兼容性,建议在行两端各添加一个竖线。
- Markdown 输入
- 渲染输出
| Syntax | Description |
| ----------- | ----------- |
| Header | Title |
| Paragraph | Text |
| Syntax | Description |
|---|---|
| Header | Title |
| Paragraph | Text |
文本对齐
在标题分隔行中使用冒号控制对齐:左对齐(:---)、居中(:---:)、右对齐(---:)。
- Markdown 输入
- 渲染输出
| Syntax | Description | Test Text |
| :--- | :----: | ---: |
| Header | Title | Here's this |
| Paragraph | Text | And more |
| Syntax | Description | Test Text |
|---|---|---|
| Header | Title | Here's this |
| Paragraph | Text | And more |
2. 代码块
使用三个反引号(```)或三个波浪号(~~~)包裹代码块。
- Markdown 输入
- 渲染输出
```
{
"firstName": "John",
"lastName": "Smith",
"age": 25
}
```也可以用波浪号:
~~~
{
"firstName": "John",
"lastName": "Smith",
"age": 25
}
~~~{
"firstName": "John",
"lastName": "Smith",
"age": 25
}
语法高亮
在第一个反引号旁边指定语言。
- Markdown 输入
- 渲染输出
```json
{
"firstName": "John",
"lastName": "Smith",
"age": 25
}
```{
"firstName": "John",
"lastName": "Smith",
"age": 25
}
3. 删除线
在单词前后各添加两个波浪号(~~)。
- Markdown 输入
- 渲染输出
我不是说了吗?~~请把你剩余的人生交给我。~~
我不是说了吗?请把你剩余的人生交给我。
4. 任务列表
在破折号(-)与方括号之间添加空格。要选中复选框,在方括号之间添加 x。
- Markdown 输入
- 渲染输出
- [x] 任务一
- [ ] 任务二
- [ ] 任务三
- 任务一
- 任务二
- 任务三
常见错误
错误:破折号与方括号之间未键入空格
- ❌ 错误
- 渲染输出
-[x] 任务一
-[ ] 任务二
-[ ] 任务三
-[x] 任务一 -[ ] 任务二 -[ ] 任务三
5. 高亮
使用 <mark> 标签或两个等号(==)包裹文字。
:::info 兼容性说明
==text== 语法并非所有平台都支持。Docusaurus 中需使用 HTML <mark> 标签实现高亮效果。
:::
- Markdown 输入
- 渲染输出
<mark>将你的罪孽,悉数化作乐器吧</mark>
6. 上标
使用 <sup> 标签或脱字符(^)包裹文字。
- Markdown 输入
- 渲染输出
X<sup>2</sup>
X^2^
X2