基础语法
本章介绍 Markdown 最核心的基础语法,包括标题、段落、文本样式和列表。这些语法是所有 Markdown 文档的基础。
标题
Markdown 支持六级标题,使用 # 符号表示。# 的数量对应标题级别。
语法规则
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
渲染效果:
一级标题
二级标题
三级标题
四级标题
五级标题
六级标题
重要说明
# 与标题文字之间必须有空格。这是 CommonMark 规范的要求,缺少空格会导致语法不被识别。
#正确的写法 ← 错误:没有空格
# 正确的写法 ← 正确:有空格
替代语法
一级和二级标题还有一种替代写法,使用底线符号:
一级标题
========
二级标题
--------
这种写法较少使用,但某些场景下可能更直观。
最佳实践
- 每个文档通常只有一个一级标题,作为文档标题
- 标题层级应当连续,不要跳级(如从一级直接跳到三级)
- 标题前后保持空行,增强可读性
段落
段落是最基本的文本单位。在 Markdown 中,段落由一个或多个连续的文本行组成,段落之间用空行分隔。
基本段落
这是第一段。段落可以包含多行文字,
只要中间没有空行,就属于同一个段落。
这是第二段。两个段落之间有一个空行。
渲染效果:
这是第一段。段落可以包含多行文字, 只要中间没有空行,就属于同一个段落。
这是第二段。两个段落之间有一个空行。
段落换行
如果需要在段落内强制换行,有两种方式:
方式一:行末添加两个空格
这是第一行··
这是第二行
(· 代表空格,实际输入时不可见)
方式二:行末添加反斜杠
这是第一行\
这是第二行
两种方式渲染效果相同:
这是第一行 这是第二行
注意事项
不要使用多个空行来增加段落间距,多个连续空行在渲染时会被合并为一个。如果需要更大的间距,应使用 HTML 的 <br> 标签或 CSS 样式。
文本样式
Markdown 提供多种文本样式,用于强调或区分内容。
粗体
使用双星号 ** 或双下划线 __ 包围文字:
**这是粗体文字**
__这也是粗体文字__
渲染效果:这是粗体文字
推荐使用星号语法,因为下划线在某些情况下可能与链接语法冲突。
斜体
使用单星号 * 或单下划线 _ 包围文字:
*这是斜体文字*
_这也是斜体文字_
渲染效果:这是斜体文字
粗斜体
使用三星号 *** 或三下划线 ___ 包围文字:
***这是粗斜体文字***
___这也是粗斜体文字___
渲染效果:这是粗斜体文字
删除线
删除线是 GFM 扩展语法,使用双波浪线 ~~ 包围文字:
~~这是删除线文字~~
渲染效果:这是删除线文字
组合使用
样式可以组合使用:
**粗体中有*斜体*文字**
*斜体中有**粗体**文字*
渲染效果:粗体中有斜体文字
样式符号与文字的边界
样式符号与文字之间不能有空格:
** 正确 ** ← 错误:有空格
**正确** ← 正确:无空格
如果需要在文字中使用星号本身(而非样式),使用反斜杠转义:
这里有一个星号:\*
列表
列表是文档中常用的结构,Markdown 支持有序列表和无序列表。
无序列表
使用减号 -、星号 * 或加号 + 作为列表标记:
- 第一项
- 第二项
- 第三项
* 第一项
* 第二项
* 第三项
+ 第一项
+ 第二项
+ 第三项
三种符号渲染效果相同:
- 第一项
- 第二项
- 第三项
推荐在同一文档中统一使用一种符号,通常使用减号 -。
有序列表
使用数字加点号 . 表示:
1. 第一项
2. 第二项
3. 第三项
渲染效果:
- 第一项
- 第二项
- 第三项
有趣的是,列表的序号不一定要按顺序写。以下写法渲染结果相同:
1. 第一项
1. 第二项
1. 第三项
甚至:
1. 第一项
5. 第二项
3. 第三项
渲染时都会按实际顺序编号。但为了源码可读性,建议按顺序书写。
列表嵌套
子列表需要缩进,通常缩进 2-4 个空格或 1 个制表符:
1. 第一项
- 子项一
- 子项二
2. 第二项
- 子项一
- 嵌套子项
渲染效果:
- 第一项
- 子项一
- 子项二
- 第二项
- 子项一
- 嵌套子项
- 子项一
列表中的段落
列表项可以包含多个段落,后续段落需要缩进与第一行对齐:
1. 这是第一个列表项的第一段。
这是同一个列表项的第二段。
2. 这是第二个列表项。
列表中的代码块
在列表中插入代码块需要额外缩进:
1. 打开终端,执行以下命令:
npm install markdown
2. 安装完成后,验证安装:
npm list markdown
注意代码块需要缩进 8 个空格(列表项缩进 4 个 + 代码块缩进 4 个)。
列表结束
有时需要在列表后紧跟其他内容而不被误认为列表项。可以在列表后添加空行,或使用 HTML 注释分隔:
- 列表项一
- 列表项二
<!-- -->
这不是列表项
转义字符
Markdown 使用以下字符作为语法标记:
| 字符 | 用途 |
|---|---|
# | 标题 |
* | 斜体、粗体、列表 |
- | 列表、分隔线 |
+ | 列表 |
_ | 斜体、粗体 |
[] | 链接、图片 |
() | 链接地址 |
> | 引用 |
` | 代码 |
~ | 删除线 |
如果需要在文档中显示这些字符本身,使用反斜杠 \ 转义:
\* 这不是斜体 \*
\# 这不是标题
\[ 这不是链接 \]
渲染效果:* 这不是斜体 *
小结
本章学习了 Markdown 的基础语法:
- 标题:使用
#符号,共六级 - 段落:空行分隔段落,行末双空格换行
- 文本样式:粗体、斜体、删除线
- 列表:有序列表和无序列表,支持嵌套
- 转义:使用反斜杠显示特殊字符
这些基础语法覆盖了日常文档编写的 80% 需求。下一章将学习链接和图片的使用方法。
练习
- 创建一个包含三级标题的文档
- 编写一段包含粗体、斜体和删除线的文字
- 创建一个嵌套列表,包含有序列表和无序列表
- 尝试在文字中显示星号字符