列表与引用
列表是 Markdown 里使用频率最高的语法,但它的规则远比「一个符号加一个空格」复杂:有序与无序的标记规则不同、编号会被渲染器接管、嵌套层级完全由缩进决定,而缩进量的取值范围又窄得反直觉——多一格变成代码块,少一格就掉出层级。引用块则换了一套思路:它不讲标记,而讲范围,从哪一行开始、到哪一行结束。
这一章真正要训练的是两个容易被低估的能力。第一个是读缩进的能力。列表的层级不在符号里,在空格里;一段 Markdown 渲染出来的层级和你想表达的是否一致,只看缩进就能判断,而不需要在浏览器里反复试。第二个是控制边界的能力。引用块从第一个 > 开始,到第一个不带 > 的行才结束;任务列表的两个方括号、列表标记后的那个空格,都是同样的思路——用最少的标记划出一段明确的范围,剩下的交给解析器。
还有一个判断贯穿全章:什么时候该用列表,什么时候该用引用块。列表表达的是「这些是并列的、可以逐条看的」,读者多半只会挑自己关心的那一条;引用块表达的是「这段话整体属于别处」,读者的预期是完整读完。往读者最可能跳读的地方塞引用块,会让真正需要被引用的内容反而被略过。
这一章有一个流传很广的误解需要先澄清: 「二级列表必须缩进四个空格」并不是规范。真正起作用的是父项的内容起始列——短横线 - 占两列,有序标记 1. 占三列,编号到两位数时占四列。缩进两格还是四格,取决于父项用哪种标记;超过上限再往右,代码块就抢走了你的列表。
