将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/96https://github.com/showdownjs/showdown/issues/96

    (2)安全问题,使XSS仍未修补: https://github.com/showdownjs/showdown/issues/57https://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。