10th developer preview of CKEditor 5 available

Tenth developer preview of CKEditor 5 available image

We would like to let you know that the 10th developer preview of CKEditor 5 has just been tagged as version v0.10.0.

During this iteration, we spent a lot of time on fixing bugs and improving the user experience. We also implemented the last missing features planned for 1.0.0 alpha, reaching the feature completeness state!

You can, of course, check the updated sample and read further to learn more about the progress.

Microsoft Edge support

We reviewed the support for Edge. We were able to close the most important issues and we are happy to announce that CKEditor 5 is finally usable on Edge. However, we had to deal with a lot of instability from the Edge side which both made debugging hard and made us chase one bugfoot after another. We will be monitoring this situation and we kindly ask you to report all the issues so we can focus on real bugs.

Note: It is a known issue that only plain text is available in the clipboard. According to Microsoft, Edge 15 (only available in Windows 10 Creators Update for now) should finally enable support for all data types so we keep our fingers crossed that it will work soon without any action from our side.

The UI library

In this iteration, we put a lot of focus on the stability of contextual balloons and features which use them.

First of all, we realised that when multiple features want to display their UI in contextual balloons, those balloons should be synchronized. Therefore, we came up with a more centralized API (still reusable, though) for managing the editor balloon and refactored the link feature to use it. This allows us to reduce code duplication and get rid of ugly mutex-like code.

Based on the new utility we implemented the contextual toolbar plugin. A screencast is worth more than a thousand words, so, here you go:

Contextual toolbar screencast

Finally, we improved the balloon positioning in various browsers (see 123).

Clipboard

A lot of work was also put into the stability of clipboard integration. In order for pasting to work well from the user point of view it is necessary to gracefully handle content which might not be allowed in certain places in the editor (see 123).

We also worked on better UX when pasting list items into a nested list and made sure that when copying content from CKEditor, the text/plain field of the clipboard is also set (previously, only HTML was available). This allows pasting that content into plain text editors (like code editors).

Other improvements

Among many, these are the more important improvements which landed in this version:

Image upload

During this iteration, we worked on one more feature — the image upload. It is pretty much ready at the moment, but we did not manage to squeeze a critical bug fix for it into this milestone, so it is not enabled it in the demo yet. We recorded a screencast, though, so you can see how it works:

Image upload screencast

The image upload feature uses the upload utils which expose a handy API for managing file upload through a pluggable server adapter. We also implemented the CKFinder adapter.

Documentation is coming...

Our main goal during the next iteration is to finally publish some documentation. We will start with the minimum, knowing how much refactoring we are still planning, but we will make sure to cover topics related to architecture and implementing features. This will allow you to dive deeper into CKEditor 5.

Sample

We updated the basic CKEditor 5 sample that you can play with. Check out the developer preview of CKEditor 5 (version 0.10.0) on the CKEditor 5 GitHub.io page.

Changelogs

For the detailed list of changes go to ckeditor5@v0.10.0 where you can check each package's changelog.

Feedback and collaboration

We are most excited about the project and would love to get some feedback about this early preview.

You can report all general issues in the main CKEditor 5 repository. Specific issues, like those related to the editing engine, should be reported in their respective repositories. Very general ideas and questions can be reported in the design repository.