我在考虑让用户使用Markdown编辑网站内容,因为它简单易用。现在的问题是如何存储这些输入——是在保存时将其转换为HTML并将原始HTML存储在数据库中,还是保存Markdown文本并在每个请求上重新解析为HTML?是否应该采取不同的方法(编写静态文件等)?我只是想知道如何解决这个问题,以及像Stack Overflow这样的网站是如何处理的。谢谢。
我在考虑让用户使用Markdown编辑网站内容,因为它简单易用。现在的问题是如何存储这些输入——是在保存时将其转换为HTML并将原始HTML存储在数据库中,还是保存Markdown文本并在每个请求上重新解析为HTML?是否应该采取不同的方法(编写静态文件等)?我只是想知道如何解决这个问题,以及像Stack Overflow这样的网站是如何处理的。谢谢。
我可能会同时存储Markdown和HTML格式的内容。实际上,我曾经做过类似的事情(使用简化的最小HTML而不是Markdown),在那里我存储了原始和格式化的版本。
如果您想在创建后编辑内容,则需要保留原始的Markdown,因为与从Markdown转换为HTML得到的丑陋Markdown相比,使用原始Markdown可能更容易处理。保留Markdown还可以更轻松地跟踪您的修订历史记录或在将来调整HTML格式。
显示内容可能比创建或编辑内容更常见。因此,您可能希望随时掌握HTML,以避免重复进行Markdown到HTML的转换。
如果只有Markdown,则每次显示都需要额外付费。如果只有HTML,则会得到丑陋和难以阅读/编辑的Markdown。如果两者都有,则需要一点磁盘空间,但可以轻松地使用不同的内部结构重新生成HTML,轻松跟踪修订历史记录、轻松编辑,并且可以获得廉价的显示效果。此外,同时存储两者使得可以轻松地存储代码片段以供批量列表使用(例如SO上的/questions
列表),这些列表将非常便宜,因为您可以直接从存储中转储数据到页面上,只需进行最少的处理。