请教下,使用markdown编辑器后在前端的展示方案是怎样的?
正在建设的知识付费应用使用了learnku.com所用的editor.md
编辑器,在前端展示的时候遇到了问题,想知道learnku.com使用的是哪个方案?
方案一:分两个字段,一个保存markdown+一个保存html
1、数据库有两个字段,一个是markdown_content
,一个是html_content
,分别保存两种不同的格式,模板直接显示html
2、后台和前台都不再需要做额外的处理
优点:操作简单,可实现editor.md的默认效果,真正的可见即所得
缺点:增加了数据库的存储空间
方案二:保存markdow+前台editor.md
js解析
1、内容字段保存的是markdown格式(同方案1)
2、与方案一不同的是,在模板输出的仍然是markdown,但是使用了editor.md
的markdown to html
功能,在浏览器端,也就是用户看到的是js转换后的html,查看源码仍然是markdown格式
优点:不占用数据库空间,也可以实现editor.md的默认效果
缺点:因为源代码中仍然是markdown原始格式,没有h2、h3等标记,不适合SEO,所以该方案可暂时抛弃。
方案三:保存markdown+后台parsedown解析
1、内容字段保存的是markdown格式
2、后台使用parsedown把markdown格式转成html,然后在模板显示html
3、前台使用Highlight.js
等代码高亮插件,显示code类代码
优点:不占用数据库空间,因为是后台将markdown转为了html,不给前端增加负担
缺点:无法实现代码行号;因为有这个js的加入,显示速度可能会慢
在这里想真心请教下各位大牛,除了这三种方案外,是否还有更优的解决方案?
第一个可以方案不错,用空间换时间,很划算。
目前用的第一个方案,现在的存储成本很低廉了,怕这些干啥呢?而且你编写markdown都是文字性内容,不会占用很大的空间。