Omm*_*awn 8 markdown list pandoc
我正在尝试在 Markdown 中创建一个列表。正如我在一些文档中读到的,如果我编写以下 Markdown 代码:
My list
* first item
* second item
* third item
Not in the list
Run Code Online (Sandbox Code Playgroud)
我得到的结果与用 HTML 编写的结果相同:
My list
* first item
* second item
* third item
Not in the list
Run Code Online (Sandbox Code Playgroud)
我使用 Atom 作为编辑器及其 Markdown 预览器,一切正常,但是当我使用pandoc以下方式转换 Markdown 文件时:
pandoc test.md -o test.odt
Run Code Online (Sandbox Code Playgroud)
我得到的是这样的:
My list * first item * second item * third item
Not in the list
Run Code Online (Sandbox Code Playgroud)
我哪里做错了?
Way*_*lan 11
您的问题有两种可能的解决方案:
在段落和列表之间添加一个空行(如@melpomene 在评论中提到的)。
My list
* first item
* second item
* third item
Not in the list
Run Code Online (Sandbox Code Playgroud)省略空行并告诉 Pandoc 使用commonmark作为输入格式而不是默认的markdown.
pandoc -f commonmark -o test.odt test.md
Run Code Online (Sandbox Code Playgroud)“问题”是 Atom 编辑器使用 CommonMark 解析器,并且默认情况下,Pandoc 使用老式 Markdown 解析器,该解析器主要遵循这些规则和参考实现 ( markdown.pl)。事实上,Commonmark 规范明确承认了这种差异:
在 CommonMark 中,列表可以打断段落。也就是说,不需要空行来将段落与以下列表分开:
Run Code Online (Sandbox Code Playgroud)Foo - bar - baz <p>Foo</p> <ul> <li>bar</li> <li>baz</li> </ul>
Markdown.pl不允许这样做,因为担心通过硬包装行中的数字触发列表:Run Code Online (Sandbox Code Playgroud)The number of windows in my house is 14. The number of doors is 6.
如果您希望工具之间具有共同的行为,那么您只需使用遵循相同行为的工具。