将Markdown / ASCI(多行)转换为HTML(nodejs)

我现在有这个在我的编辑器..

* Line one * Line two some more info 

像这样坐在数据库中

* Line one\r\n* Line two\r\nsome more info

我正在使用Markdown软件包将减价转为HTML以显示在我的网站上,这工作正常。

但是,它忽略了换行符,因此给我这个输出…

<ul><li>Line one</li><li>Line two\r\nsome more info</li></ul>

当我想要的输出是…

<ul><li>Line one</li><li>Line two</li></ul>some more info

我想我需要从我的单行'多行string'之前,我通过降价运行它?

任何想法的最佳方法?

目前使用这个代码

 var markdown = require( "markdown" ).markdown; var unMarkdownDescriptions = function(description){ //Check if currently contains HTML. if(typeof description !== "undefined"){ if(description.indexOf("<") !=-1){ return description; }else{ return html_content = markdown.toHTML(description); } }else{ return ''; } } 

当前的代码检查是否已经以数据库的forms存储在HTML中,并忽略它们(我们从HTML迁移到MD,在ERP上生成的HTML在最好的时候是狡猾的!)

但是它忽略了换行符

按照Markdown规范 ,这就是它的行为。

段落只是一个或多个连续的文本行,由一个或多个空行分隔。 (空白行是任何看起来像空行的行 – 只包含空格或制表符的行被认为是空白。)普通段落不应该用空格或制表符缩进。

“一个或多个连续文本行”规则的含义是Markdown支持“硬包装”文本段落。 这与大多数其他文本到HTML格式化程序(包括Movable Type的“Convert Line Breaks”选项)有很大的不同,它将段落中的每个换行符转换为<br />标记。

为了得到你想要的输出,只需在你的列表后面加一个空行:

 * Line one * Line two some more info