将 markdown 整合到 angularjs?
Integrating markdown into angularjs?
我已经开始使用 AngularJS + NodeJS 编写一个简单的应用程序来了解有关堆栈的更多信息,但似乎让 markdown 工作有点棘手,而且没有得到很好的支持。我来自 ruby 背景,我使用了 redcarpet
markdown 库,它非常标准和直接。
我遇到了 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
看起来很合适,但存在一些棘手的问题,大多数其他 markdown 库要么是 dying/dead,要么掩盖了生产环境中的安全性。
我决定使用 markdown-it
。它非常灵活;它实际上允许从服务器或客户端进行解析,因此由您决定如何以及在何处解析降价。
对于我来说,我选择将 markdown 文本保存在数据库中,然后在客户端解析 markdown,效果很好。
至于安全,markdown-it
自带了一些built-in security measures,很好。还有一个单独的安全模块,您可以使用它来提供额外的功能。
我已经开始使用 AngularJS + NodeJS 编写一个简单的应用程序来了解有关堆栈的更多信息,但似乎让 markdown 工作有点棘手,而且没有得到很好的支持。我来自 ruby 背景,我使用了 redcarpet
markdown 库,它非常标准和直接。
我遇到了 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
看起来很合适,但存在一些棘手的问题,大多数其他 markdown 库要么是 dying/dead,要么掩盖了生产环境中的安全性。
我决定使用 markdown-it
。它非常灵活;它实际上允许从服务器或客户端进行解析,因此由您决定如何以及在何处解析降价。
对于我来说,我选择将 markdown 文本保存在数据库中,然后在客户端解析 markdown,效果很好。
至于安全,markdown-it
自带了一些built-in security measures,很好。还有一个单独的安全模块,您可以使用它来提供额外的功能。