Markdown或HTML

cod*_*ger 9 html markdown

我要求用户创建,修改和删除自己的文章.我打算使用SO用来创建文章的WMD编辑器.

从我可以收集到的东西SO存储markdown和HTML.为什么这样做 - 有什么好处?

我无法决定是否存储降价,HTML或两者.如果我存储哪一个我检索并转换为显示给用户.

更新:

好吧,我想从目前为止的答案,我应该存储markdown和HTML.这看起来很酷.我也一直在阅读Jeff关于XSS漏洞的博客文章.因为WMD编辑器允许您输入任何HTML,这可能会让我感到头痛.

有问题的博文在这里.我猜我将不得不遵循与SO相同的方法 - 并清理服务器端的输入.

SO使用的清理代码是否可用作开源代码,还是我必须从头开始?

任何帮助将非常感激.

谢谢

Bal*_*usC 8

在性能和兼容性方面(最终还有社会控制),存储两者都非常有用/有用.

如果存储Markdown(或任何非HTML标记),那么每次将其解析为HTML风格都会产生性能成本.这并不总是明显便宜.

如果您存储HTML,那么您将冒险在生成的HTML中无声地爬行.这将导致大量的维护和错误修复头痛.您也将失去社交控制权,因为您不再知道用户实际填写的内容.例如,您是管理员也想知道哪些用户正在尝试使用XSS <script>等等.此外,最终用户将无法以Markdown格式编辑数据.您需要将其从HTML转换回来.

要在Markdown版本的每次更改时更新HTML,您只需添加一个额外字段,表示用于生成HTML输出的Markdown版本.只要在检索行时在服务器端更改了此项,请使用新版本重新解析数据并更新数据库中的行.这只是一次性的额外费用.


Jon*_*n B 6

通过存储两者,您只需要处理降价一次(当它被发布时).然后,您将检索HTML,以便更快地加载页面.