2016-08-18 46 views
1

我现在有这在我的编辑..转换降价/ ASCI(多线)为HTML(的NodeJS)

* Line one 
* Line two 
some 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

我想我在我通过降价运行之前,需要从我的单行创建一个“多行字符串”?

有关最佳方法的任何想法?

目前使用此代码,如果已经存储为HTML DB中,而忽略他们(我们从HTML迁移到MD

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 ''; 
    } 
} 

当前代码检查,对ERP产生的HTML是最好的时候,狡猾!)

回答

2

但是它忽略了换行符

这就是它应该如何表现,根据Markdown spec

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

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

为了得到你想要的输出,只是包括一个空行列表后:

* Line one 
* Line two 

some more info 
+0

曾为梦想,完美,谢谢! –