2012-01-13 89 views
3

我有一個node.js應用程序,我希望允許我的用戶使用一點Markdown來增強他們的消息。但只有一點。我想一個簡單的markdown轉換器node.js

  • 消毒
  • 粗體(**)和斜體(*)
  • 鏈接

而且僅此而已,僅此而已。但是當擴展消息傳遞系統時,我可能需要更多。

我看了看showdown,markdown-jsPageDown。只有後者進行消毒,但所有這些都不可配置。 PageDown是最有希望的,但我不能讓它不產生<p>的輸出。

有沒有其他的選擇,讓我更多的控制?

+0

@ThiefMaster:我想稍後擴展消息,所以我可能需要一些額外的功能。 – Lanbo 2012-01-13 12:26:14

回答

8

有一個相當新的轉換器支持直接訪問詞法分析器。我認爲這將是你需要的:https://github.com/chjj/marked

+0

那麼,你怎麼知道_marked_不會在其輸出周圍產生'

'......'

'? – 2016-09-19 09:08:10

1

檢查出Rho項目。您可以使用InlineCompiler,它基本上滿足您的需求(假設您還需要一些基本轉義,如&lt;&amp;)。

可以使用的Rho快遞/把手助手裏面是這樣的:

var exphbs = require('express-handlebars'); 
var rho = require('rho'); 
var hbs = exphbs.create({ 
    helpers: { 
     mdToHtml: function(options) { 
      return new hbs.handlebars.SafeString(
       rho.toInlineHtml(options.fn(this)) 
      ); 
     } 
    } 
}); 

,然後讀取JSON模板內的降價,喜歡

<div class="col-xs-12"> 
    <p class="body"> 
     {{#mdToHtml}}{{message.body}}{{/mdToHtml}} 
    </p> 
</div> 

其中message爲您提供一些JSON模板。