快速了解 Markdown 基础语法
【Markdown从入门到精通】
语法规则是 Markdown 的核心,本节我们就来学习一下 Markdown 的基础语法,记不住不要紧,小伙伴们可以在用到的时候及时查阅,反复练习即可。用不了几天,你一定会掌握的!
在前面《三分钟成为 Markdown 专家》提到,目前有许多 Markdown-like language,还有一个提供无歧义语法规范的 CommonMark 项目。这就导致了各种存在差异的 Markdown 的语法,对初学者来说造成疑惑,比如在一个 Markdown 编辑器这么写没问题,换一个编辑器就不行了。
所以在学习 Markdown 语法之前,我们需要知道 Markdown 语法其实分为基础语法和扩展语法。基础语法基本上与 CommonMark Spec 一致(毕竟 CommonMark 还没成为真正的标准,只能说是参考标准,不过对于用户来说并没有什么影响,更多的影响在于对 Markdown 解释器的实现)。扩展语法则由不同的软件工具支持,包括 CommonMark 标准没有规定的上标、下标、高亮、删除线、任务列表、表格、块图等等,因此不同的 Markdown 编辑器可能会不一样。比较流行的扩展语法是 GFM(GitHub Flavored Markdown),即 Github 风格的 Markdown。
下面我们来看看 Markdown 的基础语法都有哪些?
段落与换行
Markdown 语法中的段落由一行或多行文本组成,不同的段落之间使用 空行来标记。(空行是 CommonMark Spec 规定的,但有些编辑器可能没有遵守,建议习惯性在段落间增加空行。)
语法说明:
- 如果行与行之间没有空行,则会被视为同一段落;
- 如果行与行之间有空行,则会被视为不同段落;
- 空行是指行内什么都没有,或者只有空格和制表符;
标题
Markdown 提供了两种标题风格:ATX headings 和 Setext headings。
ATX 风格标题
Markdown 语法中使用 # 号标记标题。支持六级标题:
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
语法说明:
- 在行首插入 # 号即可将该行标记为标题;
- # 号的个数表示了标题的等级;
- 为提高兼容性,建议在 # 号后面加一个空格。
Setext 风格标题
另外,还可以在标题下方添加 =
或 -
表示一级和二级标题。
一级标题
========
二级标题
--------
语法说明:
- Setext 风格只支持 2 级标题;
- 底线的数量不限,但是为了避免歧义,建议使用连续三个符号;
===
和---
要紧跟在标题文字下方,不能有空行。
列表
Markdown 语法支持有序列表和无序列表。
- 有序列表由“数字+英文句号+空格+列表内容”标记
- 无序列表由“星号/加号/减号+空格+列表内容”标记
有序列表
1. 首先是...
2. 然后是...
3. 最后是...
语法说明:
- 数字后面紧跟英文句号,然后必须添加一个空格;
- 列表项之间可以不加空行。
无序列表
无序列表支持使用星号 *
、加号 +
、减号 -
三种风格进行标记。
* 刘备
* 关羽
* 张飞
+ 刘备
+ 关羽
+ 张飞
- 刘备
- 关羽
- 张飞
语法说明:
- 上面三种标记的结果是一样的,但是同一个列表需要使用同一种标记;
*
、+
、-
后面必须添加一个空格。
列表嵌套
列表支持嵌套,且有序 列表和无序列表可以相互嵌套。
+ 第一层列表
+ 第二层列表
+ 第三层列表
+ 第二层列表2
1. A
2. B
语法说明:
- 层与层之间使用 TAB 键缩进来标记;
- 列表之间不需要添加空行;
- Markdown 标准没有对嵌套级数进行限定,但不宜过多(不美观)。