我有一個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