Markdown 列表语法
00:00
有序列表、无序列表、任务列表与嵌套规则。
1. 无序列表 (Unordered Lists)
1.1 语法
使用 -、* 或 + 加空格开头,三者效果完全一致,推荐统一使用 - 以保持一致性。
-
-
-
1.2 渲染效果
- 无序列表项 1
- 无序列表项 2
- 无序列表项 3
1.3 高级用法
1.3.1 列表项换行
如果列表项内容较长,需要换行时,第二行及以后的内容需要与第一行文本对齐,而不是与标记符对齐:
- 换行后需要与第一行文本对齐,
而不是与标记符对齐
-
渲染效果:
- 这是一个很长的列表项, 换行后需要与第一行文本对齐, 而不是与标记符对齐
- 另一个列表项
1.3.2 列表项中的空行
列表项之间可以添加空行,提高可读性:
-
-
-
渲染效果:
- 列表项 1
- 列表项 2
- 列表项 3
2. 有序列表 (Ordered Lists)
2.1 语法
使用 数字 + 英文句号 + 空格 开头,数字顺序不影响最终渲染结果,推荐按顺序书写以保持代码的可读性。
1. 有序列表项 1
2. 有序列表项 2
3. 有序列表项 3
2.2 渲染效果
- 有序列表项 1
- 有序列表项 2
- 有序列表项 3
2.3 高级用法
2.3.1 序号自动调整
即使使用非连续的数字,渲染时也会自动调整为连续序号:
1. 第一项
2. 第二项(使用了数字 3)
3. 第三项(使用了数字 2)
渲染效果:
- 第一项
- 第二项(使用了数字 3)
- 第三项(使用了数字 2)
2.3.2 多级有序列表
多级有序列表的序号会自动递增:
1. 一级列表项
1. 二级列表项
1. 三级列表项
1. 另一个二级列表项
1. 另一个一级列表项
渲染效果:
- 一级列表项
- 二级列表项
- 三级列表项
- 另一个二级列表项
- 另一个一级列表项
3. 任务列表 (Task Lists)
3.1 语法
待办清单专用语法(GFM 扩展),[ ] 表示未完成,[x] 表示已完成,符号后必须加空格。
-
-
-
- [x] 子任务 1
- [ ] 子任务 2
3.2 渲染效果
- 未完成的待办任务
- 已完成的待办任务
- 可嵌套待办
- 子任务 1
- 子任务 2
3.3 高级用法
3.3.1 任务列表与描述
可以在任务列表项后添加描述文本:
- 详细描述:需要包含项目背景、目标、计划和预算
- 详细描述:讨论项目进度和下一步计划
渲染效果:
- 完成项目提案 详细描述:需要包含项目背景、目标、计划和预算
- 召开团队会议 详细描述:讨论项目进度和下一步计划
4. 嵌套列表 (Nested Lists)
4.1 语法
嵌套列表需要使用4 个空格或 1 个制表符进行缩进。
4.1.1 无序列表嵌套
-
- 二级无序列表项
- ## 三级无序列表项
4.1.2 有序列表嵌套
1. 一级有序列表项
1. 二级有序列表项
1. 三级有序列表项
1. 另一个一级有序列表项
4.1.3 混合嵌套
-
1. 有序列表项
- 无序列表项
1. 有序列表项
4.2 渲染效果
- 一级无序列表项
- 二级无序列表项
- 三级无序列表项
- 另一个一级无序列表项
- 一级有序列表项
- 二级有序列表项
- 三级有序列表项
- 另一个一级有序列表项
- 无序列表项
- 有序列表项
- 无序列表项
- 有序列表项
4.3 嵌套列表的最佳实践
- 控制嵌套层级:一般不超过 3 层,过深的嵌套会降低可读性
- 保持缩进一致:使用统一的缩进方式(4 个空格或 1 个制表符)
- 添加空行:在不同层级的列表之间添加空行,提高可读性
- 使用不同类型:根据内容需要选择合适的列表类型进行嵌套
5. 列表与其他元素的结合
5.1 列表中使用代码块
-
```python
print("Hello, World!")
```
console.log('Hello, World!');
渲染效果:
- 列表项 1
```python
print("Hello, World!")
- 列表项 2
console.log('Hello, World!');
5.2 列表中使用引用
-
> 这是一个引用
> 可以跨越多行
> True- 列表项 2
> 另一个引用
渲染效果:
- 列表项 1
这是一个引用 可以跨越多行
- 列表项 2
另一个引用
5.3 列表中使用图片和链接
-
-
渲染效果:
- 列表项 1:Markdown 指南
- 列表项 2:
6. 不同 Markdown 解析器的兼容性
不同的 Markdown 解析器对列表语法的支持可能略有差异:
| 解析器 | 无序列表 | 有序列表 | 任务列表 | 嵌套列表 |
|---|---|---|---|---|
| GitHub Flavored Markdown | 支持 | 支持 | 支持 | 支持 |
| CommonMark | 支持 | 支持 | 不支持 | 支持 |
| Markdown.pl | 支持 | 支持 | 不支持 | 支持 |
| MultiMarkdown | 支持 | 支持 | 不支持 | 支持 |
| 注意:任务列表是 GitHub Flavored Markdown (GFM) 的扩展特性,在其他解析器中可能不被支持。 |
7. 常见问题与解决方案
7.1 列表项不显示
问题描述:列表项不显示为列表,显示为普通文本。
原因分析:标记符后缺少空格。
解决方案:在标记符后添加一个空格,如 - 列表项、1. 列表项。
7.2 嵌套列表显示异常
问题描述:嵌套列表显示为一级列表,没有正确缩进。 原因分析:嵌套列表的缩进不正确。 解决方案:使用 4 个空格或 1 个制表符进行缩进。
7.3 任务列表不生效
问题描述:任务列表显示为普通无序列表,没有复选框。 原因分析:使用了不支持 GFM 扩展的 Markdown 解析器。 解决方案:使用支持 GFM 扩展的 Markdown 解析器,如 GitHub、VSCode 等。
7.4 列表项换行后对齐问题
问题描述:列表项换行后文本没有正确对齐。 原因分析:换行后的文本没有与第一行文本对齐。 解决方案:确保换行后的文本与第一行文本的起始位置对齐,而不是与列表标记符对齐。
8. 总结与最佳实践
8.1 核心概念
- 无序列表:使用
-、*或+加空格开头 - 有序列表:使用
数字 + 英文句号 + 空格开头 - 任务列表:使用
[ ]或[x]加空格开头(GFM 扩展) - 嵌套列表:使用 4 个空格或 1 个制表符进行缩进
8.2 最佳实践
- 列表使用
- 无序列表:用于不需要特定顺序的项目
- 有序列表:用于需要特定顺序的项目
- 任务列表:用于待办事项或任务跟踪
- 格式规范
- 统一使用一种无序列表标记符,推荐使用
- - 保持列表项的缩进一致
- 列表项之间可以添加空行,提高可读性
- 长列表项换行时,确保文本对齐
- 嵌套列表
- 避免过深的嵌套,一般不超过 3 层
- 确保缩进正确,使用 4 个空格或 1 个制表符
- 在不同层级之间添加空行,提高可读性
- 兼容性考虑
- 任务列表仅在支持 GFM 的解析器中生效
- 避免使用过于复杂的嵌套结构,以确保在不同解析器中都能正确显示
- 与其他元素结合
- 合理使用列表与代码块、引用、图片和链接的结合
- 确保这些元素的缩进正确,以保持列表结构的完整性
8.3 个人实践总结
- 选择合适的列表类型,根据内容的性质和顺序要求
- 保持列表格式的一致性和缩进的正确性
- 合理使用嵌套列表,提高内容的层次感
- 注意标记符后必须加空格,确保列表语法生效
- 考虑不同 Markdown 解析器的兼容性,尤其是任务列表等扩展特性
- 结合其他 Markdown 元素时,注意保持正确的缩进和格式
更新日志 (Changelog)
- 2026-04-06: 初版,涵盖无序列表、有序列表、任务列表、嵌套列表及最佳实践
- 2026-05-03: 更新至 v3.5.0 格式,移除 HTML 锚点和 emoji,统一标题层级