2016-08-18 81 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

曾爲夢想,完美,謝謝! –