node.js的简单降价转换器

时间:2012-01-13 12:18:21

标签: node.js markdown

我有一个node.js应用,我想让我的用户通过一点点降价来增强他们的消息。但只是一点点。我想要

  • 消毒
  • 粗体(**)和斜体(*)
  • 链接

关于它,仅此而已。但是,在扩展消息传递系统时,我可能需要更多时间。

我查看了showdownmarkdown-jsPageDown。只有后者进行消毒,但所有这些都不可配置。 PageDown最有希望,但我无法在输出周围生成<p>

是否有其他替代方案可以让我更多地控制?

2 个答案:

答案 0 :(得分:8)

有一个相当新的转换器支持直接访问词法分析器。我认为这将是您所需要的:https://github.com/chjj/marked

答案 1 :(得分:1)

查看Rho项目。您可以使用InlineCompiler,它基本上可以满足您的需求(假设您还需要一些基本的转义,例如&lt;&amp;)。

您可以在Express / Handlebars帮助器中使用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读取markdown,比如

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

其中message是您提供给模板的一些JSON。