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

推荐阅读更多精彩内容

  • Markdown 语法 之剑 2016.5.3 23:41:46 hljs.initHighlightingOnL...
    禅与计算机程序设计艺术阅读 1,467评论 1 5
  • atom编辑器的使用和markdown基本语法 atom介绍 atom是什么 Atom是github内部的编辑软件...
    Haoqian阅读 34,809评论 3 40
  • 前段时间老婆参加了一个HR培训班,她每次听课回来都会和我总结她的收获,说遇到了一个很牛的老师;演讲水平杠杠的,讲话...
    印第安南阅读 218评论 0 0
  • 2018年1月7日 星期日 小雪 一直觉得早上睡到自然醒是一件很幸福的事。但是因为平时上...
    周李扬阅读 95评论 0 0
  • Outlook性能提升 一般不到一个月就满了,存档邮件不会删除,可以设置较短的时间,如7天 2
    林万程阅读 363评论 0 0
  • 昨晚吃饭回来的路上看到一位父亲一本正经地给他孩子说:“那不是丢垃圾的地方,去捡起来。”原来是一个小男孩把刚喝完的饮...
    Wuli小米粒阅读 345评论 0 0