尝试将此简单降价转换为html:
* section one
* item one
* item two
This is the first section
* section two
* item one
* item two
This is the second section
我收到的HTML是:
<ul>
<li>
<p>section one</p>
<ul>
<li>item one</li>
<li>
<p>item two</p>
<p>This is the first section</p>
</li>
</ul>
</li>
<li>
<p>section two</p>
<ul>
<li>item one</li>
<li>
<p>item two</p>
<p>This is the second section</p>
</li>
</ul>
</li>
</ul>
第一级列表中的段落是嵌套列表的第二个列表项的一部分
我希望这个段落是嵌套列表的兄弟,我甚至在不同的在线编辑器中对它进行了测试,它们按照我的预期进行渲染,而不是像marked
的结果那样。
我做错了什么或是marked
中的错误?
我试着玩这些选项,但没有任何帮助。
以下是代码:
const marked = require("marked");
let str = "* section one\n\t* item one\n\t* item two\n\n\tThis is the first section";
str += "\n\n* section two\n\t* item one\n\t* item two\n\n\tThis is the second section";
marked(str)
答案 0 :(得分:1)
这绝对是个错误。如您所见,other implementations按预期呈现。
但是,可以认为文档中存在轻微错误。您应该在(外部)列表项的第一行和嵌套列表之间添加一行。
假设您创建的文档仅包含第一个(外部)列表项的内容。正如您对列表进行格式化,如下所示:
section one
* item one
* item two
This is the first section
其中一个以下的大多数Markdown实施interpret:
<p>section one * item one * item two</p>
<p>This is the first section</p>
或
<p>section one <em> item one </em> item two</p>
<p>This is the first section</p>
当然,第一行和列表之间需要一个空行。像这样:
section one
* item one
* item two
This is the first section
始终为renders:
<p>section one</p>
<ul>
<li>item one</li>
<li>item two</li>
</ul>
<p>This is the first section</p>
将其应用于您的完整文档,如下所示:
* section one
* item one
* item two
This is the first section
* section two
* item one
* item two
This is the second section
,你会得到很好的,一致的results: