2012-01-13 93 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模板。