2011-01-24 48 views
5

我正计划在未来的项目中加入Markdown。过去,我刚刚使用了预先打包的服务器端Markdown解析器,对HTML输出进行了重新清理(不必要的步骤?)并将其发送给客户端。将Markdown分析委托给客户端有什么缺点?

我有兴趣将至少这部分视图渲染卸载到客户端。我以前在Rails应用程序中使用过客户端JavaScript Markdown解析器。我将委托body对象来监视类markdown-parseme等的DOM插入,然后解析它,并用结果替换原始文本。

但这是我第一次考虑它在野外生产网站。让客户端处理Markdown呈现时,有哪些陷阱和安全问题?是否有任何特定的库将这些问题考虑在内?

编辑:明显的关注,弹簧想到的是“什么那些没有JavaScript”。完全没有我们的能力来检测没有启用Javascript的浏览器,并实现一种机制,允许客户端(可能手动)标记他们没有JS并将解析移到服务器端。我非常想调查是否存在将Markdown分析卸载到客户端的严重问题,超出了这个普通的兼容性问题。在没有输出缓存的情况下渲染体面大小的页面会在响应时间和服务器负载上增加一个不可忽略的数量,如果我们有信心将95%的用户从服务器上移出该服务器。

+0

为什么要转移到客户端?只是为了节省你的AJAX电话? – sdleihssirhc 2011-01-24 21:08:17

回答

1

假设客户端能够解析Markdown语法可能是不正确的(至少对某些人和搜索引擎而言)。如果您为服务器分析的版本提供这些组,则会复制代码。服务器通常具有更强大的工具来防止XSS等(因为这是服务器所做的:以安全的方式从用户内容生成HTML)。

0

markdown-js尚未完成,但它是一个JavaScript库,用于使用AST的一个子集,而不是HTML转换的不同阶段。它应该从一开始就产生理智的HTML。我认为这种方法如果正确执行,将会使客户端的渲染降价变得实用。

它故意不支持嵌入式HTML。

3

时下,大多数人使用javascript,所以这应该不成问题。 showdown库非常适合客户端渲染。