Markdown中有序列表和无序列表
最近有用户问我,在简书写 Markdown, 一条有序列表 item 之后接一条无序列表 item,为什么 parse 的结果,第二个 item 依旧是作为有序列表的第二项显示,带有有序列表的列表符号?
用代码和结果示例来表示就是这样,如果我们写如下的 Markdown source:
1. Foo
- Bar
为什么 parse 后结果是:
1. Foo
2. Bar
而不是:
1. Foo
Bar
老实说因为这种写法相对较少,我以前没有想到过这个问题。简书的 Markdown 规则原则上是 Github Flavored Markdown 的一个子集,并没有完全实现 GFM 的所有功能,同时还有很少量自己的调整。所以我第一时间就先去求证一下是不是我们实现错误了。
在 Github 上面,parse 结果是和我们一致的 (我是个程序员不会拼图只能把俩图放一起截了...):
由于 Markdown 是一门有着众多方言的语言,我也又去 Markdown 的发明者的 Markdown Web Digus 上面试验了一下,结果也是一样的:
试验完之后想了一下,Markdown 现在的 parse 结果是 HTML。对于 HTML 来说,在 <ol></ol>
标签里如果需要包含 <ul></ul>
的 item 的话,也许你想要的是一个二级列表,也就是下面这样 (注意第二行无序列表开头要有空格):
1. Foo
- Bar
parse 后结果:
- Foo
- Bar