我的项目中原来写文章使用的是富文本编辑器,现在想加入markdown编辑器,在用户发表文章的时候可以选择编辑器进行编辑。这样就涉及到一个问题,如果是对于已经使用bbcode发表的文章来说,进行编辑,假如允许用户编辑的时候也可以切换编辑器,那么就要写一套bbcode 和 markdown 语法互转的程序,看了一下bbcode 和 markdown 编辑器中的语法没法完全对的上,如果硬写的话,需要特别熟悉bbcode 中的语法和准确的正则,以及markdown 中的语法和准确的正则,感觉实现难度很大.
参考了一下CSDN 和 稀土掘进网, 发现他们也是支持富文本 和 markdown 编辑器的,但是在编辑文章的时候,如果切换,并不是将文章进行 富文本和 markdown互转, 而是新建了一篇文章,也就说,它并不支持互转,用哪个编辑器保存, 提交的数据中有不同的参数进行标识,而且似乎用了两个字段记录不同编辑器下的内容,比如
"html_content","markdown_content",在解析文章的时候大概也是根据不同的编辑器进行不同的解析.
请教大神们如何处理较好?如果互转可行性如何?
个人觉得没必要做所谓的“互转”,Markdown 并不排斥你直接编写 HTML 代码。
换句话说,你本来就可以直接在 Markdown 里面写 HTML。不过从安全考虑,你需要过滤掉一些有风险的标签和属性,来避免 XSS。
至于用户编辑,都认为他写的是 Markdown 就好了,输出的时候始终使用 Markdown 渲染器去处理。
一些简单的 HTML 测试:这段文本 就是使用的 HTML