8

我正在考虑允许用户使用降价编辑网站内容,因为它简单易行。现在的问题是如何存储该输入 - 我应该在保存时将其转换为 html,然后将原始 HTML 存储在数据库中,还是保存降价文本并在每次请求时将其重新解析为 HTML?这里是否应该采用不同的方法(编写静态文件等)?我只是想知道如何解决这个问题,以及像 stackoverflow 这样的网站是如何做到的。谢谢。

4

1 回答 1

13

我可能会同时存储原始 Markdown 和内容的 HTML 版本。事实上,我在存储原始版本和格式化版本时做过类似的事情(剥离了最小的 HTML 而不是 Markdown)。

如果您想在创建内容后对其进行编辑,那么您将需要原始的 Markdown,因为它可能比来自 Markdown 到 HTML 转换器的一些丑陋的 Markdown 更容易使用。保留 Markdown 还可以让您更轻松地跟踪您的修订历史或在未来调整您的 HTML 格式。

显示内容可能比创建或编辑内容更常见。因此,您可能希望方便地使用 HTML,以避免一遍又一遍地执行相同的 Markdown 到 HTML 转换。

如果您只有 Markdown,那么您需要为每次显示支付额外费用。如果您只有 HTML,那么您最终会得到丑陋且不可读/不可编辑的 Markdown。如果两者兼有,则您需要支付一点磁盘空间,但能够轻松地重新生成具有不同内部结构的 HTML、轻松的修订历史跟踪、轻松的编辑,并且您可以获得便宜的显示作为令人愉快的副作用。此外,存储两者可以轻松存储批量列表(例如/questionsSO 上的列表)的片段,并且这些列表将很便宜,因为您将数据直接从存储转储到页面,处理最少。

于 2011-06-01T08:24:21.883 回答