We would like to let you know that the 9th developer preview of CKEditor 5 has just been tagged as version v0.9.0.
Features introduced in the 9th preview nearly cleared the roadmap to 1.0.0 alpha. To reach this milestone we only need to focus on MS Edge support, file upload and stability. The last bit will certainly take us most of the time, although, our recent tests show that the editor became stable even during longer use.
Also, I'd like to thank the entire team for the amazing performance because in just one month we closed 118 tickets. This is our record so far - thanks, guys!
Check the updated sample and read further to learn more about the progress.
We introduced flat lists in the 3rd developer preview but we didn't manage to finish support for nested lists back then. The unfinished feature was causing many stability issues so we're happy to announce that nested lists are now fully supported and really stable.
Besides that, the pull request which introduced the nested lists support closed 11 tickets at once, which is our new record! :)
Another big feature added in this iteration is the block quotes. It's not particularly big itself, but it was the first feature to use move, wrap and unwrap deltas extensively. These are the most tricky types of operations that the engine needs to support and they caused us a bit of a headache to stabilize.
The other important aspect of this feature was its integration with
Backspace keys. Fortunately, no surprises here – the architecture proved to work:
The experience we got when working on the block quote feature and the very related lists feature convinced us that we'll need to change a bit the way how conversion works. Currently, the engine converts changes applied to the model immediately when they are applied and in the order in which they are applied. However, some atomic operations introduce a temporal, invalid state of the model because from a semantical perspective they need to be accompanied by other operations to create a kind of database transactions. Therefore, we'll need to work on a mechanism which will delay the conversion until a transaction has finished and which will convert the atomic operations in the right order.
Image caption placeholder
As we mentioned in the last release notes we introduced image captions but in terms of UX they were missing the placeholder text. Not anymore! :)
Also, we made the placeholder behavior reusable and plan to allow setting placeholders also for entire editors.
Fortunately, unlike in CKEditor 4 where we were limited by the architecture, we can (and will) add many more editor implementations. You can also create your own implementations by gluing together building blocks provided by the CKEditor 5 Framework. You could, for example, create an editor with React-based UI or an editor with 10 root editables.
Heading feature improvements
The heading feature got a couple of functional and UX improvements.
- The dropdown will now be disabled when headings can't be applied to the current selection (e.g. if an image is selected). See ckeditor/ckeditor5-heading#66.
- The list of headings is now styled. See ckeditor/ckeditor5-heading#63 and ckeditor/ckeditor5-heading#38.
- Each heading level is now a separate command which allows creating different kinds of UIs (e.g. separate buttons for each heading) more easily. See ckeditor/ckeditor5-heading#53.
First editor build
CKEditor 5 builds are pre-configured, ready-to-use editor bundles. The first one we wanted to introduce is the classic build which uses the classic editor and the standard set of features (the same as you can see in the demo).
Using a build is the easiest way to integrate a specific editor with your website. It doesn't require any additional tools unless you want to significantly change the configuration of the build.
For more details see the usage instructions.
As in every release, we spent a good time fixing issues. It's the first release which we weren't able to crash within a couple of minutes which is a good sign. Also, from a project perspective, the most important thing is to not have regressions (recurring bugs), which are the most irritating kind of issues (for both – developers and users). In our case, the extensive test suite (nearly 6000 test cases) and a strict approach to testing (each bug fix, every change, must be accompanied with tests) saved us from regressions, even though we're constantly refactoring the code.
Our focus will now move more towards the UX/UI related parts of the editor which, at the moment, are in a bit worse shape than the engine. On the editing layer, we plan to work on the MS Edge support and continue improving the IME support.
We updated the basic CKEditor 5 sample that you can play with. Check out the developer preview of CKEditor 5 (version 0.9.0) on the CKEditor 5 GitHub.io page.
For the detailed list of changes go to
firstname.lastname@example.org where you can check each package's changelogs.