html - 如何在数据库中处理用户内容的 Markdown 存储?

标签 html database performance markdown storing-information

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

最佳答案

我可能会存储内容的原始 Markdown 和 HTML 版本。事实上,我做过类似的事情(使用精简的 HTML 而不是 Markdown),我在其中存储了原始版本和格式化版本。

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

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

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

关于html - 如何在数据库中处理用户内容的 Markdown 存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6198005/

相关文章:

html - 当放置在 CSS 下拉菜单中时,HTML 选择会丢失文档流吗?

javascript - HTML5 Canvas 在完成呈现时会发出事件吗?

javascript - "Azure Mobile Services"和 "Azure App Service"之间的不同 sql 结果

ruby - Anagrams Code Kata,Ruby 解决方案非常慢

python - 在 NumPy 数组的每个单元格处对函数进行有效评估

java - 性能:Apache HttpAsyncClient与多线程URLConnection

html图像标签不显示XAMPP中文件中的图像

javascript - HTML5 DeviceAPI 不工作(返回 null)

database - 我的网站在1&1上崩溃了(joomla)

c++ - MySQL 和数据库查询 : sorting