CommonMark规范是否允许列表标记之前的前导空格?

时间:2017-04-07 10:44:47

标签: html list markdown commonmark

这是CommonMark中的有效列表吗?

  1. Foo
     - Bar
     - Baz
  2. Qux

我担心每个列表标记前两个前导空格的有效性,即1.2.等。在列表标记之前提供前导空格是否有效?

我无法在规范中找到任何明确提及在http://spec.commonmark.org/0.27/的CommonMark规范中每个列表标记前面都有前导空格的内容。

但是有很多例子似乎显示了在列表标记之前使用的前导空格。例如,请参阅

但我希望该规范清楚地说明在列表标记之前放置空格是有效的。您能否在规范中找到明确说明这一点的内容,或至少暗示这一点?

1 个答案:

答案 0 :(得分:1)

具体规则是list items部分的规则4 (在example 246之后开始):

  
      
  1. 缩进。如果 L 的行序列根据规则#1,#2或#3构成列表项,则缩进每行的结果 L 的1-3个空格(每行相同)也构成具有相同内容和属性的列表项。如果一行为空,则不需要缩进。
  2.   

示例247248249分别显示一个,两个和三个空格,所有这些空格都被解释为列表项。最后,example 250显示了四个缩进空格,从而产生了代码块。

当然indented blocks州的规则(强调增加):

  

缩进代码块由一个或多个由空行分隔的缩进块组成。缩进块是一系列非空行,每行都缩进四个或更多空格。代码块的内容是行的文字内容,包括尾部行结尾,减去四个缩进空格

因此,任何少于四个缩进空间的东西都不是代码块。几段之后我们会发现以下内容:

  

如果将缩进的解释作为代码块与指示材料属于列表项之间存在任何歧义,则列表项解释优先:

给出的示例显示了一个嵌套的列表项,它缩进了四个或更多空格。但是,同样的示例也会将父列表项缩进两个空格,因此规则可以应用于两者。

为了进行比较,原始Markdown rules明确指出:

  

列表标记通常从左边距开始,但最多可缩进三个空格。

这一概念已在Markdown存在多年。