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 结果是和我们一致的 (我是个程序员不会拼图只能把俩图放一起截了...):

Github Sample

由于 Markdown 是一门有着众多方言的语言,我也又去 Markdown 的发明者的 Markdown Web Digus 上面试验了一下,结果也是一样的:

Markdown Web Digus Sample

试验完之后想了一下,Markdown 现在的 parse 结果是 HTML。对于 HTML 来说,在 <ol></ol> 标签里如果需要包含 <ul></ul> 的 item 的话,也许你想要的是一个二级列表,也就是下面这样 (注意第二行无序列表开头要有空格):

1. Foo
  - Bar

parse 后结果:

  1. Foo
  • Bar
posted @ 2019-11-07 15:32  星朝  阅读(1906)  评论(0编辑  收藏  举报