Markdown或HTML

时间:2010-07-28 15:45:08

标签: html markdown

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

从我可以收集的内容中,可以存储降价和HTML。为什么这样做 - 有什么好处?

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

更新:

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

有问题的博文是here。我猜我将不得不采用与SO相同的方法 - 并清理服务器端的输入。

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

非常感谢任何帮助。

由于

3 个答案:

答案 0 :(得分:8)

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

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

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

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

答案 1 :(得分:6)

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

答案 2 :(得分:0)

如果您只存储了一个,则必须为显示视图或编辑视图重新创建另一个。