Chapter 03 / 10

列表与任务列表

有序、无序、嵌套列表与 GFM 任务列表的完整用法

无序列表

使用 -*+ 作为列表项标记(同一列表建议统一用一种):

源码
- 苹果
- 香蕉
- 橙子
渲染效果
  • 苹果
  • 香蕉
  • 橙子
INFO列表标记后面必须跟一个空格。推荐统一使用 -(减号),与 GFM 风格保持一致。

有序列表

数字后跟 .) 创建有序列表。有趣的是:数字本身无关紧要,渲染时会自动编号:

源码
1. 第一步
2. 第二步
3. 第三步
渲染效果
  1. 第一步
  2. 第二步
  3. 第三步
# 这样写也会生成 1. 2. 3. 的有序列表
1. 第一步
1. 第二步
1. 第三步

嵌套列表

通过缩进(4 个空格或 1 个制表符)创建嵌套列表:

源码
- 前端
    - HTML
    - CSS
    - JavaScript
- 后端
    - Python
    - Go
渲染效果
  • 前端
    • HTML
    • CSS
    • JavaScript
  • 后端
    • Python
    • Go
WARNINGCommonMark 规范要求嵌套列表缩进与父列表内容对齐(通常是 2 或 4 个空格)。不同渲染器的行为略有差异——建议统一使用 4 个空格缩进。

列表中的多段落

在列表项中添加多个段落,需要缩进第二段:

- 第一项

    这是第一项的第二段(缩进 4 空格)。

- 第二项

GFM 任务列表

GitHub Flavored Markdown 支持复选框任务列表:

源码
- [x] 已完成的任务
- [x] 另一个已完成的
- [ ] 未完成的任务
- [ ] 待处理的事项
渲染效果
  • 已完成的任务
  • 另一个已完成的
  • 未完成的任务
  • 待处理的事项
TIP在 GitHub Issues 和 Pull Request 描述中使用任务列表,可以直接点击复选框来切换状态,非常实用!任务完成情况还会显示在 Issue 列表中(如 "2/4 tasks")。

定义列表(扩展语法)

某些 Markdown 扩展(如 Pandoc、PHP Markdown Extra)支持定义列表:

术语
:   定义文字

另一个术语
:   这是它的定义

标准 CommonMark 和 GFM 不支持定义列表,GitHub 不会渲染此语法。

列表排版技巧

混合有序与无序

源码
1. 准备材料
   - 面粉
   - 鸡蛋
   - 牛奶
2. 混合搅拌
3. 煎制
渲染效果
  1. 准备材料
    • 面粉
    • 鸡蛋
    • 牛奶
  2. 混合搅拌
  3. 煎制

列表项中使用代码

- 安装依赖:`npm install`
- 启动服务:`npm start`
- 构建项目:`npm run build`

小结