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

8

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

1个回答

14

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

如果您想在创建后编辑内容,则需要保留原始的Markdown,因为与从Markdown转换为HTML得到的丑陋Markdown相比,使用原始Markdown可能更容易处理。保留Markdown还可以更轻松地跟踪您的修订历史记录或在将来调整HTML格式。

显示内容可能比创建或编辑内容更常见。因此,您可能希望随时掌握HTML,以避免重复进行Markdown到HTML的转换。

如果只有Markdown,则每次显示都需要额外付费。如果只有HTML,则会得到丑陋和难以阅读/编辑的Markdown。如果两者都有,则需要一点磁盘空间,但可以轻松地使用不同的内部结构重新生成HTML,轻松跟踪修订历史记录、轻松编辑,并且可以获得廉价的显示效果。此外,同时存储两者使得可以轻松地存储代码片段以供批量列表使用(例如SO上的/questions列表),这些列表将非常便宜,因为您可以直接从存储中转储数据到页面上,只需进行最少的处理。


“存储HTML和Markdown”是什么意思?您能详细解释一下吗?请提供几个例子。 - Loint
当Markdown文本输入时,您可以每次显示它时将其转换为HTML,或者您可以在Markdown源更改时将其转换为HTML一次,并将HTML和Markdown存储在数据库中。 - mu is too short

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接