将markdown整合到angularjs?

时间:2015-04-11 02:23:36

标签: angularjs node.js angularjs-directive markdown

我已经开始使用AngularJS + NodeJS编写一个简单的应用程序来了解有关堆栈的更多信息,并且看起来让降价工作有点棘手并且不太受支持。我来自红宝石背景,我使用了redcarpet降价库,这是非常标准和直接的。

我遇到了angular-markdown-directive

赞成

  • 设置简单
  • 使用ngSanitize清除用户提交的降价。该图书馆由Angular官方团队提供支持。

缺点

  • 它使用了引擎盖下的showdown,这似乎已经过去了一段时间,但是新的维护者似乎已经取得了很小的进展。然而,它有相当多的突出错误,可追溯到2013年和2014年的两个特殊错误报告令人担忧:

    (1)下划线显然被解释为斜体(会产生格式错误的链接): https://github.com/showdownjs/showdown/issues/96

    (2)允许XSS仍未修补的安全问题: https://github.com/showdownjs/showdown/issues/57

我不确定(2)在我的情况下是否会成为问题,因为ngSanitize可能有所帮助。

还有另一个名为markdown-it的库,但是这个库处理Nodejs中的markdown而不是Angular。但他们的例子并未说明最佳安全实践。

-

是否有关于如何将markdown安全地集成到Node / Angular应用程序中的完整示例? angular-markdown-directive似乎很合适,但有一些痛苦的问题,而且大多数其他降价库都要么死亡/死亡,要么在生产环境中掩盖其安全性。

1 个答案:

答案 0 :(得分:0)

我决定使用markdown-it。它非常灵活;它实际上允许从服务器或客户端进行解析,因此它取决于您如何以及在何处解析降价。

对我来说,我选择将降价文本保存在数据库中,然后解析客户端上的降价,并且效果非常好。

至于安全性,markdown-it带有一些built-in security measures,这非常好。还有一个单独的安全模块,您可以使用它提供其他功能。