将markdown整合到angularjs中?
我已经开始使用AngularJS + NodeJS编写一个简单的应用程序来了解更多关于堆栈的信息,看起来markdown工作起来有点棘手,但是没有得到很好的支持。 我来自一个ruby背景,我使用的是redcarpet
降价库,这是非常标准和直接。
我遇到了angular-markdown-directive :
优点
- 设置简单
- 使用
ngSanitize
清理用户提交的降价。 这个图书馆是由Angular官方团队支持的。
缺点
-
它在引擎盖下使用
showdown
,似乎已经死了一段时间,但小的进展似乎正在与新的维护者正在接近。 然而,它有不less突出的bug,2013年和2014年的两个特别bug报告令人担忧:(1)下划线显然被解释为斜体(将创build格式不正确的链接):
https://github.com/showdownjs/showdown/issues/96
:https://github.com/showdownjs/showdown/issues/96
(2)安全问题,使XSS仍未修补:
https://github.com/showdownjs/showdown/issues/57
:https://github.com/showdownjs/showdown/issues/57
我不确定(2)是否会成为我的情况,因为ngSanitize
可能有帮助。
还有另一个名为markdown-it
库,但是这个库在Nodejs中处理Markdown而不是Angular。 但是他们的例子并没有提到最好的安全实践。
–
有没有关于如何安全地将Markdown安全地集成到Node / Angular应用程序中的完整示例? angular-markdown-directive
似乎是一个不错的select,但有一些令人痛苦的问题,而其他大多数markdown库都是死亡/死亡,或者它们在生产环境中的安全性。
我决定使用markdown-it
。 它非常灵活 它实际上允许从服务器或客户端parsing,所以这取决于你如何以及在哪里parsing降价。
对于我来说,我select将减价文本保存在数据库中,然后parsing客户端上的降价,并且工作得很好。
至于安全性, markdown-it
有一些内置的安全措施 ,这是非常好的。 还有一个单独的安全模块,您可以使用它提供附加function。