如何防止Markdown将生成的HTML包装在<p>元素中?

Šim*_*das 16 javascript markdown

更新:赏金是使用"标记"库的解决方案.


这个Markdown代码:

*foo*
Run Code Online (Sandbox Code Playgroud)

将生成此HTML代码:

<p><em>foo</em></p>
Run Code Online (Sandbox Code Playgroud)

现场演示: https ://jsbin.com/luganot/edit?js,console

但是,我已经将生成的HTML代码注入到内联上下文中,如下所示:

<p> text [inject generated HTML here] text </p>
Run Code Online (Sandbox Code Playgroud)

所以我不希望<p>元素包围生成的HTML代码.我只想将*分隔符转换为<em>元素,依此类推.

有没有办法告诉Markdown转换器不生成<p>包装器?目前,我正在.slice(3,-4)使用生成的HTML字符串,它确实删除了<p></p>标签,但这显然不是我想长期保留的解决方案.

Thi*_*zKp 6

您可以跳过block-lexing部分并使用inlineLexer.

html = marked.inlineLexer(markdown, [], options);

//example
marked.inlineLexer('*foo*', []) // will output '<em>foo</em>'
Run Code Online (Sandbox Code Playgroud)