大多数 Markdown 解析器生成非常相似的 HTML 输出,但可能略有不同。
一些解析器是严格的,只允许this is **bold**
,但不是this is ** bold **
其他的都接受。还有许多其他细微差别。
我想在前端使用 pagedown。哪个 gem 或库产生相同的 HTML 输出?
“预览”中的结果应该与后端生成的 HTML 完全相同。
Pagedown 描述说这是 Sundown 的端口,因此没有任何扩展的Redcarpet应该可以按预期工作。
如果您想要完全相同的 HTML,您可以简单地将 pagedown 输出与 markdown 源一起保存在数据库中,如果没有发布 HTML 输出(作为后备,即当 javascript 被禁用或损坏时),则仅在 Ruby 中解析 markdown。
编辑
正如评论中所指出的(谢谢!),这是一个潜在的安全问题,因为攻击者可以提交任意 HTML。
另一种解决方案是在客户端使用 Node.js,并让 pagedown 也在那里进行解析。