Markdown 列表

列表是文档里出现频率最高的结构之一——待办事项、操作步骤、特性清单都靠它。Markdown 的列表语法看似简单,但嵌套规则和松紧区别容易让新手翻车。这一章把所有列表语法一次讲清。

1. 无序列表(Unordered)

三种符号都可以,渲染为 HTML 的 <ul>

- 用减号
* 用星号
+ 用加号

三种符号等价,渲染为 <ul><li>。
同一文档建议统一只用一种。

虽然三种符号都能用,但强烈建议一个文档里只用一种——推荐减号 -,因为星号和加号在英文环境里更易和加粗、其他语义混淆。

2. 有序列表(Ordered)

数字 + 点 + 空格,渲染为 <ol>

1. 第一项
2. 第二项
3. 第三项

数字无需连续,也能渲染为有序:

1. 第一项
1. 第二项
1. 第三项
(渲染时自动变成 1. 2. 3.)

甚至可以乱序:
5. 第五
3. 第三
8. 第八
(渲染时仍是 1. 2. 3. 顺序)

有趣的是:渲染时显示的编号是按顺序自动生成的,与源码里写的数字无关。所以推荐统一写 1.——这样插入、删除、重排项目时无需手动改编号。

3. 嵌套列表

缩进 2 或 4 个空格就能嵌套(看具体引擎,CommonMark 推荐 4 空格,GFM 推荐 2 空格):

- 一级
  - 二级(缩进 2 或 4 个空格)
    - 三级
- 回到一级

有序嵌套:
1. 有序一级
   1. 有序二级
   2. 有序二级
2. 有序一级

混搭:
1. 有序一级
   - 无序二级
   - 无序二级

4. 任务列表(Task List)

GFM 扩展,用方括号 + 字母 x 表示复选框:

- [x] 已完成的任务
- [ ] 未完成的任务
- [ ] 另一个未完成

GFM 扩展,渲染为复选框。
[x] 中 x 大小写都可以。

任务列表在 GitHub Issue、PR、项目管理里极为常用,渲染出来复选框可以直接点击切换(在 GitHub 上)。

5. 松散列表 vs 紧密列表

这是新手最容易忽略的细节:列表项之间有没有空行,决定了渲染结果

松散列表(项之间有空行):

- 第一项

- 第二项

渲染时每项被 <p> 包裹,间距更大。

紧密列表(无空行):

- 第一项
- 第二项

渲染为紧凑排列。

6. 列表项里放多段内容

列表项不是只能写一行——可以放多段、引用、代码块、图片。关键:后续内容必须缩进对齐到列表标记符之后

- 第一项的第一段。

  第一项的第二段(缩进对齐到列表标记后)。

  > 第一项里的引用。

- 第二项。

7. 最佳实践

✅ 推荐:统一用减号 -
- 苹果
- 香蕉

✅ 推荐:嵌套缩进 2 空格
- 水果
  - 苹果

✅ 推荐:有序列表统一用 1.
1. 第一
1. 第二
(这样调整顺序时无需重排编号)

❌ 避免:混用符号
- 苹果
* 香蕉
+ 橘子

8. 常见坑

小结

列表是 Markdown 里最实用的结构之一,掌握它能写出清晰的步骤、待办、特性清单。下一篇看链接与图片——把文档和外部资源连起来。

← 上一篇 文本格式

下一篇 链接与图片

✈️💬