当前位置: 代码迷 >> Web前端 >> KindEditor 上一步开发计划
  详细解决方案

KindEditor 上一步开发计划

热度:703   发布时间:2012-11-22 00:16:41.0
KindEditor 下一步开发计划
KindEditor是简单的在线HTML编辑器,支持目前流行的大部分浏览器,主要优势在于简单、快速、定制方便,非常适合博客、SNS日记、WEB邮箱等互联网网站。

3.1.1版本初始化时被GZIP压缩以后总大小为22KB,分别为1个JavaScript文件,2个CSS文件,2个gif图片,目前国内的ADSL宽带速度下基本上可以瞬间打开。



不足的地方是:
1. 每个浏览器生成的HTML不一致。
2. UNDO/REDO无法保存SELECTION。
3. 不支持快捷键。
4. 界面不够美观。
5. 程序特殊处理较多,可读性不好。

下一步开发重点为保持简单、快速的前提下,尽量生成标准XHTML,并自由地定制输出的XHTML,完全分离plugin和核心程序,简化CSS文件。

下面简单说明一下输出XHTML的原理。

目前大部分轻量级编辑器都靠浏览器提供的execCommand来完成大部分HTML生成操作,execCommand每个浏览器生成的代码不太一样,导致生成不一致、不标准的代码。TinyMCE、FCKeditor生成标准一致的XHTML,但随之而来的是程序体积变大,代码臃肿。

编辑时直接生成XHTML难度很大,因为几乎所有execCommand都要用JavaScript DOM来实现。一种不太好的方法是编辑期间仍然使用浏览器的execCommand,最后提交代码时用正则等方式把代码转换成XHTML,不过代码模式切换,在转换后的代码上进行操作等都会出现一系列的问题。

例如,有以下HTML代码
<span style="color:#ff0000;">文字颜色</span>


在IE下选中文字,用execCommand的forecolor修改文字颜色,代码会变成这样。
<span style="color:#ff0000;"><font color="#0021b0">文字颜色</font></span>


不管在用什么浏览器,理想的代码是
<span style="color:#0021b0;">文字颜色</span>


除此之外,还需要考虑各种效果(文字颜色、背景颜色、文字大小等)交叉使用,粘贴不规则有缺陷的HTML等情况。
9 楼 Army 2009-03-26  
提升非常多,具体多少我也没测试过数据,感官上是相当的明显。而且时间的延迟大多数是下载swf文件以及js和as互相通信的时间,我记得在as3中遍历10w字符串也是几十ms内的事情。

至于实时加亮,每一个input事件都会触发重新渲染,细节是值得商讨的。
第一个就是类似google suggest,每改变一次后计时超过一定时间后重新渲染,防止连续快速输入;
第二个就是如何渲染了,不可能每改变一个字符都要整篇重新分析的,肯定要区分出哪里有改变,需要重新渲染,哪里无需变动。

这样的话就是很难了。
10 楼 taocong810 2009-03-26  
luolonghao 写道
taocong810 写道
龙博ajax现在需要一个准实时的语法色彩渲染器,不知道楼主和army有没有兴趣合作一下。


大概看了一下你的龙博ajax,技术很酷。不过具体应用在什么地方?

如果是基于WEB的JS可视化开发的话我觉得现在条件不成熟,性能还是最大的问题。


只有想不到的,没有做不到的。现在有几个项目可以参考
http://codepress.sourceforge.net/index.php
http://www.cdolivet.com/editarea/editarea/exemples/exemple_full.html
永远不要等技术成熟了再去做,龙博ajax在这方面吃亏太多了。
11 楼 taocong810 2009-03-26  
KindEditor其实也犯了同样的错误,我很早就知道KindEditor了,没有记错的话应该是2005/2006年(我记不得是在哪个论坛上了)。那时候FCKeditor虽然说比较厉害了,但是KindEditor那时候就推出,现在就有更多的机会和FCKeditor PK了。
12 楼 taocong810 2009-03-26  
这个对部分渲染处理技巧值得我们学习
http://helene.muze.nl/ariadne/loader.php/helene/demo/
13 楼 天机老人 2009-03-26  
这样看来互联网的轻量级应用可以选用哥们你提供的编辑器拉!
要复杂点还是得乖乖的用FCK是啊?恩我觉得这样就够了!
14 楼 Army 2009-03-26  
taocong810 写道
这个对部分渲染处理技巧值得我们学习
http://helene.muze.nl/ariadne/loader.php/helene/demo/

慢慢研究下……一直缺少这方面资料。诶,e文看着就是难啃。
15 楼 luolonghao 2009-03-26  
taocong810 写道
KindEditor其实也犯了同样的错误,我很早就知道KindEditor了,没有记错的话应该是2005/2006年(我记不得是在哪个论坛上了)。那时候FCKeditor虽然说比较厉害了,但是KindEditor那时候就推出,现在就有更多的机会和FCKeditor PK了。


KindEditor确实2006年发布以后没投入精力开发后续版本,直到去年10月才开始了新版本的开发。FCKeditor、TinyMCE在重量级编辑器里已经很成熟,而且专门的团队做开发和技术支持,我这个业余的项目很难和他们正面PK。
不过在轻量级和本土化领域可以发挥优势,现在开始投入精力不断改进,做最优秀的轻量级编辑器。
16 楼 luolonghao 2009-03-27  
taocong810 写道
这个对部分渲染处理技巧值得我们学习
http://helene.muze.nl/ariadne/loader.php/helene/demo/


你发的这几个link非常不错,我好好研究一下。
17 楼 hax 2009-03-29  
动态高亮的话,需要做一些折中。

比如重新渲染的部分以语句或语句块为单位。

因为程序员在编程时,其实也几乎不会做改动整体结构的事情(除了大段paste之外)。

举个例子来说,如果程序员键入字符串的开始 " 尚未键入结束 " 时,一般来说没有必要去对下面的部分做重新渲染。因为这种重新渲染99%是没有价值的。最不济,你渲染到下一行就结束了(因为绝大多数语言不允许跨行的 " ,除非行尾加上 \ 或者是 """ 之类的语法)
18 楼 cn-done 2009-03-29  
支持轻量级的kindEditer。但是就目前的开发情况来说,FCK用起来确实比较得心应手一点。特别是功能上很占优。
19 楼 zhiye 2009-03-30  
一直在用kindeditor 个人感觉,代码还是过于臃肿!
虽然我已经把三个文件合并了!
希望在 精简压缩上继续努力!
20 楼 luolonghao 2009-03-30  
zhiye 写道
一直在用kindeditor 个人感觉,代码还是过于臃肿!
虽然我已经把三个文件合并了!
希望在 精简压缩上继续努力!


3.1开始发布版本合并了三个文件
21 楼 Army 2009-03-30  
hax 写道
动态高亮的话,需要做一些折中。

比如重新渲染的部分以语句或语句块为单位。

因为程序员在编程时,其实也几乎不会做改动整体结构的事情(除了大段paste之外)。

举个例子来说,如果程序员键入字符串的开始 " 尚未键入结束 " 时,一般来说没有必要去对下面的部分做重新渲染。因为这种重新渲染99%是没有价值的。最不济,你渲染到下一行就结束了(因为绝大多数语言不允许跨行的 " ,除非行尾加上 \ 或者是 """ 之类的语法)

Dr.Hax有兴趣写篇blog,对整体动态高亮进行一下分析讲解么,从基础开始,到高深部分。
22 楼 smilerain 2009-04-07  
一直比较关注KindEditor,但因为到2.5的时候就停止了,最后我又改回了FCK.
希望lz继续努力.高亮也是我比较关注的一个问题.
如果兼容性上老火可以考虑参考,或者引入mootools这些js的处理方式.
swf能够处理高亮就更好了.不过前段时间看到.swf好像处理高亮在非ie下比较麻烦.
努力吧.其实有时候想,如果有是个纯flash的web Html 编辑器,效果可能也很不错.
可惜不会flash
23 楼 bcw104 2009-04-07  
地址在哪呢?
24 楼 luolonghao 2009-04-08  
bcw104 写道
地址在哪呢?


http://www.kindsoft.net/

最近公司工作比较忙,后续开发进展比较缓慢。
25 楼 arkxu 2009-04-12  
猛顶你, 你牛的.

我现在用fckeditor, 基本上试过所有的editor. 比较好的两个一个tinymce,一个fckeditor. 可是都还是有问题.

关注你们的进展, 等你们成熟了就换过来
26 楼 pior 2009-04-13  
fckeditor`不错``之前用的``

和EXT集成用的````有些麻烦```
27 楼 xzj127 2009-04-16  
感觉挺好的。。不过确实有好多地方需要修改。。

   
28 楼 jejwe 2009-04-22  
http://labs.mozilla.com/projects/bespin/
  相关解决方案