Markdown 语法指南 #
Markdown是为网络书写者而生的方便“text-to-HTML”工具,它允许人们用一种易读易写的纯文本格式进行书写,然后将其转化成XHTML(或HTML)。
Markdown 的特点是“易读易写”,其中可读性是最重要的。一份使用 Markdown 格式撰写的文件应该可以直接以纯文本发布,并且看起来不会像是由许多标签或是格式指令所构成。
Markdown 语法的目标是:成为一种适用于网络的书写语言。
Markdown 不是想要取代 HTML,甚至也没有要和它相近,它的语法种类很少,只对应 HTML 标记的一小部分。Markdown 的构想不是要使得 HTML 文档更容易书写。在我看来, HTML 已经很容易写了。Markdown 的理念是,能让文档更容易读、写和随意改。HTML 是一种发布的格式,Markdown 是一种书写的格式。就这样,Markdown 的格式语法只涵盖纯文本可以涵盖的范围。
—— John Gruber
简介 #
文字的基本格式 #
倾斜 #
前后各一个 *
(星号)或 _
(下划线符)包围的文本是倾斜文本。*倾斜*
倾斜_倾斜_
倾斜
但不能*
和 _
一样一个的混用,像这样 *倾斜_
加粗 #
前后各两个 *
(星号)或 _
(下划线符)包围的文本是倾斜文本。**加粗**
加粗__加粗__
加粗
倾斜并加粗 #
*__倾斜并加粗__*
倾斜并加粗_**倾斜并加粗**_
倾斜并加粗
删除线 #
~~删除文本~~
删除文本
高亮 #
==标记文本==
标记文本
**注:该功能不一定所有的 Markdown 都支持,可以使用 html 的 <mark>
**
引用 #
单次引用 #
> 单次引用
单次引用
嵌套引用 #
> 嵌套引用1
>> 嵌套引用2
>>> 嵌套引用3
>>
>> 嵌套引用2
>
> 嵌套引用1
嵌套引用1
嵌套引用2
嵌套引用3
嵌套引用2
嵌套引用1
标题 #
#
+ 空格 可以生成一级标题,也就是对应 html 里的 <h1>
标签,几个 #
就对应的几级标题,大部分的 Markdown 最多支持6级标题。
#### 四级标题
##### 五级标题
###### 六级标题
四级标题 #
五级标题 #
六级标题 #
列表 #
Markdown列表有有序列表、无序列表、任务列表、嵌套列表四种。列表可以嵌套成多级列表。
有序列表 #
1. 注意,注意的前面有一个空格
- 注意,注意前面有一个空格
无序列表 #
+
、-
、*
都可以用来标记无序列表
- 这个用的
+
- 这个用的
-
- 这个用的
*
任务列表 #
- [x] 已完成任务
- [ ] 未完成任务
- 已完成任务
- 未完成任务
嵌套列表 #
列表嵌套只需在子列表中的选项缩进四个空格即可
1. 任务一:
- 任务一嵌套的第一个元素
- 任务一嵌套的第二个元素
2. 任务二:
- 任务二嵌套的第一个元素
- 任务二嵌套的第二个元素
- 任务一:
- 任务一嵌套的第一个元素
- 任务一嵌套的第二个元素
- 任务二:
- 任务二嵌套的第一个元素
- 任务二嵌套的第二个元素
链接 #
网页链接 #
[要显示的文字](链接的地址)
,例:
[百度](www.baidu.com) |- 这里有填写前面要显示的文字
[](www.baidu.com) |- 这里没有填写前面要显示的文字
百度 |- 这里有填写前面要显示的文字
|- 这里没有填写前面要显示的文字
图片 #

,例:

自动链接/邮箱 #
自动链接直接用一对尖括号包围即可,<https://wiki2.codeqs.com>
,显示
https://wiki2.codeqs.com
代码 #
行内代码 #
使用 ` (键盘左上角1左边的那个键,不是单引号)包起来的部分
`代码片段` 显示 代码片段
代码块 #
使用 3 个 ` (同上)包起来的部分
``` 代码语言
代码块
```
#include <iostream>
int main(void)
{
std::cout << "hello world" << std::endl;
return 0;
}
段落 #
如果是中文书写习惯,每一段的开头,都应该空4个英文字符的宽度。一般在word里,在段首可以直接按Tab
键实现,但在 Markdown 中,这并不起作用。这就需要使用 html 来实现。
缩进 #
使用 html 的空格表示方法  
,  
,
对齐 #
使用 html 的对齐方法 <p align="center">
, <p align="right">
, <p align="left">
换行 #
在行尾输入两个空格即可(敲击两下空格键)。
分割线 #
在标准 Markdown 中,分割线一般由连续的 3 个同样的-
、+
、*
组成,只需这三个符号在同一行且没有字符(除了空格)即可,符号之间有没有空格不影响分割线的生成。如-- -
、+ + +
、***
都可以。
表格 #
基本表格
基本的表格方法如下:
| Items | Prices|
| :--: | : -- : |
| Apple | 20$ |
| Banana | 25$ |
第一行:表头,两个符号|间的内容是标题;
第二行:可选,设置表中内容的对齐方式,默认是靠近显示,如下:
: --- :
设置内容水平居中对齐;
: ---
设置内容左对齐;
--- :
设置内容右对齐;
脚注 #
脚注[^1]
[^1]: 这里是脚注
脚注1
锚点跳转 #
有这么一种情况:浏览一个很长的文章时,可能只对其中几个章节感兴趣时,需要直接跳转到该章节,这时就需要锚点。
锚点是是网页制作中超级链接的一种,又叫命名锚记。使用命名锚记可以在文档中设置标记,这些标记通常放在文档的特定主题处或顶部。然后可以创建到这些命名锚记的链接,这些链接可快速将访问者带到指定位置4。
锚点跳转要注意首先要注意以下两点:
- 锚点的标识名称,可使用任意字符,使用锚点跳转;
- 锚点生成的链接,可以是页内跳转,也可以生成目录;
- 锚点只对
#
标注的标题生成锚点链接; - 锚点的基本格式是:
[跳转标题](#跳转标题)
,注意()
里的#
与后面的内容无空格,且只有一个#
,该符号与正文里的多级标题无关(不管是几级标题,只需要一个#URL
); - 非英文的锚点字符,在单击跳转时,在浏览器的URL中会按照规则进行编码和解码;
在使用时还需要记住以下几个问题:
- 任意 1-6 个#标注的标题都可设置为同名的锚点链接
[标题1](#标题1)
[标题2](#标题2)
[标题3](#标题3)
# 标题1
## 标题2
### 标题3
- 大写字母要转换成小写
[Github标题](#github标题)
### Github标题
- 多单词锚点的空格用
-
代替
[Github Heading](#github-heading)
### Github Heading
- 多级序号需要去除
.
[2.3. Github Heading](#23-github-heading)
### 2.3. Github Heading
这里是脚注 ↩︎