是一个许久远的话题了,首先谈谈默认状况,也就是不使用任何编辑器的状况。

  内容部份键入:

  代码:

  test editor

  typecho

  !!

  会原封不动的保存至数据库表text数组,是不富含任何html标签的,但是查看前台页面的源码却是下边这个样子:

  代码:

  test editor

  typecho

  !!

  这是为什么呢,因为模版中显示内容的代码是

  代码:

  在执行后面的代码的时侯就会对原始数据进行

  代码:

  Typecho_Common::cutParagraph();

  操作,从前面的检测看就是按照换行符生成html词句格式。

  貌似wp只是这个样子,数据库里保存的只是带换行符的内容,不是前台显示的html;而且wp的编辑器只是订制过的,跟TE的TinyMCE不一样,源代码方式就是不包含br跟p的。

  猜想这是Typecho不自带编辑器,但又不得不简化用户操作的一项举措吧,总不能使不用编辑器的人手写html吧,还有一种可以就是为了兼容wp内容格式。当然,由 产生的各类问题也就是由此形成的。

  * 对于不使用编辑器的,保证上下各留一空行,生成的html为,前台就不会有问题了。

  * 对于使用可视编辑器生成的内容,由于数据库内保存的早已是html了,进行里面的操作也就多此一举了,而且这个操作上面多是字符串的查找替换,耗费资源。

  如果你的数据没有从wp导出的,从一开始就是用可视化编辑器写文章的话可以试试下边的插件,估计可以算是有始以来代码最少的插件了,只是屏蔽Typecho_Common::cutParagraph()操作而已。从而也避免了形成br的问题,因为编辑器诸多,所以也不保证一定好使。

  * 事实上可视编辑器里也有两种

  1.一种就是里面所说的,编辑器(html)->数据库(html)->显示(html)

  2.另一种的代表即使是官方出的 TinyMCE 编辑器了。编辑器里为html,保存的时侯等同于执行了Typecho_Common::cutParagraph()的反操作,生成带换行符的文本保存至数据库里,显示的时侯再转化成html格式显示。大家可以认为太悲催吧,起初我也百思不得其解,还在SF上问过,不过没有得到回应。现在想想其实很简单,官方要保证数据库里的格式统一,才出此策略。

  另外,Magike Editor, MarkItUp 编辑器属于html源码编辑器,大致可归属于不使用编辑器的范畴。使用这两个跟TinyMCE,还有QFish的Ckeditor+代码高亮显示的,可以不用试这个东东了,用了前台显示必无换行。

  目前的编辑器插件确实是比较纷乱的typecho 富文本编辑器,希望官方能出个标准或则说是要求,规范编辑器插件的开发。

  对于在找那个编辑器最好,这个实在不好说,我认为当初用那个就经常用那个,保证格式的统一。

  纯属个人看法typecho 富文本编辑器,对的不对的欢迎见谅。

最后修改:2021 年 02 月 14 日 10 : 22 AM
如果觉得我的文章对你有用,请随意赞赏