Roadmap for WYMeditor 2.0 (Draft)¶
Version 2.0 of WYMeditor will be a complete rewrite fixing a lot of the issues with the current stable version.
Version 2.0 can be grouped in to four major components: the Selection API or SAPI, the Editor core, the HTML, DOM and CSS parsers and the UI. These four components also make up the four steps we’ll need to complete before we release version 2.0. Of course these steps overlap somewhat, and it’s possible to work on several of these things in parallel.
- Separating the different areas of WYMeditor from each other, making it more modular
- Implementing a solid event system
- Documenting the WYMeditor source more thoroughly
- A more consistent source code (through the Coding Standard)
Step 1: The HTML, DOM and CSS Parsers¶
In the current stable version there’s a HTML parser and a CSS parser. In 2.0, we’ll also be introducing a DOM parser, as we can not rely on the innerHtml property due to a couple of issues and lack of flexibility.
- Document the HTML and CSS parsers
- Get rid of the innerHtml dependency
- Inline controls
- Place holders for forms/flash/dynamic content
Issues to Fix
- innerHtml: Problems with links and urls (#69)
- innerHtml: Insertion of script elements doesn’t work
Step 2: the Selection API¶
The SAPI in the current stable version is rather incomplete. To make things easier, the excellent IERange library will be used for Internet Explorer compatibility.
The SAPI could also be released as a standalone jQuery plug-in, as it could be useful to a lot of other people and projects.
- Define a general jQuery plugin for selections and ranges, and integrate the plugin with WYMeditor
- Creating a consistent API that can be used for manipulating content
- Save and restore selections, allowing support for modal dialogues and the like
- A more solid API
Step 3: The Editor Core¶
In 2.0 we’ll be moving away from designMode in favour of contentEditable. This will not only reduce the complexity a lot, it will also open up a lot of new interesting possibilities. Through easier interaction with external scripts things such as drag an drop, placeholders and the like are a lot easier to achieve.
- Move away from designMode in favour of contentEditable
- Solid event handling
- New features
- onChange/isDirty functionality (#138)
Issues to Fix
- Support for different block level elements (#152, #178)
Step 4: The UI¶
The goal is to create a new clean looking, extendable and skinnable UI that’s completely separated the WYMeditor core. This would allow the developer to completely replace the default UI with another one, opening up a lot of different integration possibilities.
- Create a new clean looking and consistent UI
- Separate the UI from the editor core
- Make it extendable and skinnable
- Make it more user friendly through on-screen help and well thought out layout, features and (visual) feedback
- One toolbar for several editor instances (#97)
- Modal dialogues (#63)
Issues to Fix
- Link editing (#69)
- Block level elements inside list items (#135)