在GFM中的列表内执行连续列表的正确方法是什么?
目标:
我查看了有关continued number lists和relevant issues的常见信息,但还没有看到有人问这个问题。
答案 0 :(得分:2)
从技术上讲,您不能这样做。 Markdown是HTML的子集,而HTML不提供这种功能。但是,您可以使用<ol start="3">
之类的东西在HTML中进行伪造,该伪造实际上是告诉列表以3
而不是默认的1
开始编号。
当然,您总是可以退回到原始HTML,但是让我们继续仅在Markdown中实现这一目标。是否可以在Markdown中执行此操作取决于所使用的Markdown实现。
传统的Markdown rules状态:
请务必注意,您用来标记 列表对Markdown产生的HTML输出没有影响。
...
但是,如果您确实使用了惰性列表编号,则仍应启动 列出数字1。在将来的某个时候,Markdown可能会 支持以任意数字开头的有序列表。
由此可见,当前尚无法实现所需的行为。但是,如果暗示的更改要发生,事情可能会有所不同...
事实证明,Github扩展的Commonmark确实支持以任意数字开头的有序列表。正如spec所述:
有序列表的开始号由列表号决定 其初始列表项。后续列表项的数量为 忽略。
鉴于上述情况,似乎以下内容会产生所需的输出:
1. One
1. one
2. two
2. Two
3. three
4. four
但是,正如Babelmark所演示的那样,这仅适用于一些实现(请注意输出中包含<ol start="3">
的实现)。
部分问题是父列表在嵌套列表的紧前一行包含一个段落(内容为Two
)。因此,如果您在不同的块级元素之间添加空白行,就像这样:
1. One
1. one
2. two
2. Two
3. three
4. four
然后更多的实现可以正确地看到嵌套列表。具体来说,如Babelmark所示,这使Commonmark可以根据需要解析列表。实际上,您得到以下输出(请注意<ol start="3">
):
<ol>
<li>
<p>One</p>
<ol>
<li>one</li>
<li>two</li>
</ol>
</li>
<li>
<p>Two</p>
<ol start="3">
<li>three</li>
<li>four</li>
</ol>
</li>
</ol>
事实上,我检查了一下,并在GitHub上正常运行。