我有一个node.js
应用,我想让我的用户通过一点点降价来增强他们的消息。但只是一点点。我想要
关于它,仅此而已。但是,在扩展消息传递系统时,我可能需要更多时间。
我查看了showdown
,markdown-js
和PageDown
。只有后者进行消毒,但所有这些都不可配置。 PageDown
最有希望,但我无法在输出周围生成<p>
。
是否有其他替代方案可以让我更多地控制?
答案 0 :(得分:8)
有一个相当新的转换器支持直接访问词法分析器。我认为这将是您所需要的:https://github.com/chjj/marked
答案 1 :(得分:1)
查看Rho项目。您可以使用InlineCompiler
,它基本上可以满足您的需求(假设您还需要一些基本的转义,例如<
和&
)。
您可以在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。