我有一个node.js
应用程序,我希望允许我的用户使用一点Markdown来增强他们的消息。但只有一点。我想一个简单的markdown转换器node.js
- 消毒
- 粗体(**)和斜体(*)
- 链接
而且仅此而已,仅此而已。但是当扩展消息传递系统时,我可能需要更多。
我看了看showdown
,markdown-js
和PageDown
。只有后者进行消毒,但所有这些都不可配置。 PageDown
是最有希望的,但我不能让它不产生<p>
的输出。
有没有其他的选择,让我更多的控制?
我有一个node.js
应用程序,我希望允许我的用户使用一点Markdown来增强他们的消息。但只有一点。我想一个简单的markdown转换器node.js
而且仅此而已,仅此而已。但是当扩展消息传递系统时,我可能需要更多。
我看了看showdown
,markdown-js
和PageDown
。只有后者进行消毒,但所有这些都不可配置。 PageDown
是最有希望的,但我不能让它不产生<p>
的输出。
有没有其他的选择,让我更多的控制?
有一个相当新的转换器支持直接访问词法分析器。我认为这将是你需要的:https://github.com/chjj/marked
那么,你怎么知道_marked_不会在其输出周围产生'
'......'
'? – 2016-09-19 09:08:10检查出Rho项目。您可以使用InlineCompiler
,它基本上满足您的需求(假设您还需要一些基本转义,如<
和&
)。
可以使用的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模板。
@ThiefMaster:我想稍后扩展消息,所以我可能需要一些额外的功能。 – Lanbo 2012-01-13 12:26:14