I've just published the first draft about a generic overview about plugins on V3:
http://docs.fckeditor.net/FCKeditor_3.x ... ugin_Based
Suggestions? Impressions?
Fri, 02/15/2008 - 19:27
#1
I've just published the first draft about a generic overview about plugins on V3:
http://docs.fckeditor.net/FCKeditor_3.x ... ugin_Based
Suggestions? Impressions?
Re: Thoughts about Plugins
a) It should be possible to lazy-load plugins... A toolbar icon should be included at creation time but the functionality should first be loaded when clicked. It should also be possible to mask the editor (like ExtJS does when loading data) with a "Loading...".
b) Namespaces should be in the reverse Internet domain name convention: <TLD>.<domainname>.<extension>. An example: net.fckeditor.core.EditorPluginX, com.acme.OurPluginA
c) It should be possible to overwrite specific functions of the FCKEditor core (or any plugin for that matter) in an easy way.
d) Dialog popup layouts.... see my [url=/forums/viewtopic.php?f=11&t=8598]previous post[/url].
Re: Thoughts about Plugins
Frederico Knabben
CKEditor Project Lead and CKSource Owner
--
Follow us on: Twitter | Facebook | Google+ | LinkedIn
Re: Thoughts about Plugins
Well... it was our own plugins that I wanted to be lazy-loaded or "loaded on demand". I should have stated that.
Regarding the naming convention... I'm pretty sure that in about 50-100 years from now collisions will occur But anyway.... okay....
No I'm not from Brazil... Denmark
Re: Thoughts about Plugins
Frederico Knabben
CKEditor Project Lead and CKSource Owner
--
Follow us on: Twitter | Facebook | Google+ | LinkedIn
Re: Thoughts about Plugins
My 2 cents...
Make a core as described in the wiki. I'd include the toolbar with buttons and some core functions, eg simple html tag-buttons (strong, em, underline) and lists. Then a context menu and a dialog plugin. Document these all well and make a stable api so that they can be replaced with wrapper plugins to js library's like ext or jquery ui.
Then make a download builder of some sorts that handles dependancy and combines the plugins to only the minimum of files. May be you could use a central CDN for some default download options.
And I would do it ASAP I saw the roadmap for 2.7 and 2.8 but I would concentrate on the plugin mechanism. Table editing and spell checking would become two plugins which could be developed independently. I'd do it like jquery, maintain the core and provide good documentation and a good api. And make it fast and watch for browser compatibility and standards compliance. The good thing with plugins is that if they break, only they break, not the whole editor. And they can evolve independantly and I think it encourages people more to contribute.
Then install the project drupal module so people can list their plugins and people can submit bugs. I wouldn't necessarily provide svn for everyone. They can register themselves a project on google code or similar sites very easily.
My roadmap: I would create the core and the dependancy plugins with an almost stable api, skip 2.7 and 2.8 and release directly as 2.99 alpha or so. Get feedback for the api, convert the other functionality to plugins and release as 2.99 beta. Then work on 3.0 core stuff like XHTML compatibility, etc. and release more beta or rc until the core is ready, the api is stable, the documentation is written and the plugins work (in their current state, not yet improved). Release it as 3.0 and then concentrate on improving the table plugin and spell checker and all the other plugins...
Re: Thoughts about Plugins
We are definitely on the same track. you have pointed several pretty valuable things that we'll be certainly consider: neat core, extensibility, builder, documentation, central directory... and a lot of fun.
Then regarding the releases, I'm also seriously thinking about it. Much probably it would be a sane decision to concentrate our efforts on the V3, leaving the 2.x branch to critical fixes only. We'll be thinking about it by the end of April.
Thanks for your thoughts.
Frederico Knabben
CKEditor Project Lead and CKSource Owner
--
Follow us on: Twitter | Facebook | Google+ | LinkedIn
Re: Thoughts about Plugins
Re: Thoughts about Plugins
2 fredck:
Like thatvetguy I think download builder and library of plugins are necessary for CKeditor v3.
I think I can work on both, 5 years in the industry should help me
Also I don't have open source programming experience at all, so I think it is a chance to learn.
PS. I don't want to re-invent the wheel, please let me know if someone already working on it.
Re: Thoughts about Plugins
Thanks for the offer. We are not in the first part of the coding phase of V3. We are doing that in a way that the "builder" can be done later. But it is still too early to really start coding the builder because it should be integrated with services provided by our web site. For example, I would like the builder to retrieve the plugins and skins list from our site, so even third party plugins could be added into the build.
Btw, I'm thinking about making the builder a client program, instead of something to be used on our web site. This is related to the fact that the editor needs several files to run. It is not a single .js file like the libraries found out there. Something interesting could be done with Adobe AIR for it. Well, we'll check it in the appropriate moment.
Then, for the plugins library... this is a service to be provided at our web site. So, it needs to be coded at our side. We are already working on the site btw... we'll have a new design and several new services there.
So, right now, it is still difficult to have some help on the coding of this stuff. But, things that we always welcome are ideas, or even specifications for all that, which could show what people expect having from it.
Thanks again.
Frederico Knabben
CKEditor Project Lead and CKSource Owner
--
Follow us on: Twitter | Facebook | Google+ | LinkedIn
Re: Thoughts about Plugins
About builder - I think it should be server-side tool, integrated with plugins and skins database.
Something like this:
[ Skins selector ]
[ Plugins selector, shows incompatibility with selected theme and plugin known issues ]
[ x ] Include compressed scripts and assets [ _ ] Include uncompressed scripts and assets [ _ ] Include full source code [ Download ]
[ Preview area ]
So, my ideas for builder are:
1. Download zip file with compressed \ uncompressed scripts \ full source.
2. Preview area for selected skin and plugins
Not about builder, but may be usefull ...
1. Add setting into PHP \ ASP.NET \ Java \ JavaScript code to switch between compressed and uncompresed scripts (live \ debug)
Re: Thoughts about Plugins
Re: Thoughts about Plugins
What about leaving it just to be displayed in the plugins repository? I'm afraid people will not be testing plugins in older versions, and others would not benefit from it if we would enforce it in some way in the editor code.
Frederico Knabben
CKEditor Project Lead and CKSource Owner
--
Follow us on: Twitter | Facebook | Google+ | LinkedIn
Re: Thoughts about Plugins
Sometimes it's possible to check for a new function or something like that to guess it, and then add the proper workaround in the code (or skip it) for a bug in some function, or a difference in the way that some parameter (like it did happen with the on* events protection) is handled between versions.
But that method isn't nice, the code must check for a non-related function to know if some other code has been changed.
And with regards to old versions, most of the time, a plugin for version x doesn't work out of the box with version x-1 as soon as there is any api change in any part of the code involved, it might need an extra call or add the protection that was added in x to fix some bug.
When someone wants to use a plugin in a nontested version, he should be aware of that fact, and make some specific move (like editing the plugin to remove the version check) in order to prove that he is at least able to edit js files and deal with some problems due to the use of an old version.
Re: Thoughts about Plugins
Just to be sure, is the current FCKeditorAPI.Version and FCKeditorAPI.VersionBuild the thing you are looking for?
Frederico Knabben
CKEditor Project Lead and CKSource Owner
--
Follow us on: Twitter | Facebook | Google+ | LinkedIn
Re: Thoughts about Plugins