Third developer preview of CKEditor 5 available

Third Developer Preview of CKEditor 5 Available image

We would like to announce that the third developer preview of CKEditor 5 has recently been tagged as version v0.3.0.

While the second developer preview (v0.2.0) was mainly focused on project cleanup and refactoring, iteration 3 brought new important features and resulted in closing over 100 tickets.

New features

Iteration 3 introduces two major features that are paramount to every WYSIWYG editor: lists and links.

The list feature

It is the biggest feature so far and it was a great test for the CKEditor 5 editing engine. We are very happy with the result, because in a single iteration we were able to achieve something that would not have been possible in the past.

The most important problem that we had to deal with was how to represent lists in the data model. There were two options:

  • Like in HTML — as a nested <ul/ol> and <li> structure.
  • As a flat structure of <listItem> elements (where the nesting level is defined by an attribute).

After a very long discussion we decided to go with the second approach. Having lists normalised to a flat structure is convenient for implementing operations on them, however, very demanding for conversion to the view (virtual DOM). It was a tough test for the converters and we are happy that they passed it. List support is one of the trickiest editing feature which you can imagine, so — with such an experience — we are optimistic about implementing more features in the future.

You can see the result below. Mind, for example, cases like automatic merging (on delete) subsequent list items into one list or integration with the headings feature. Thanks to how the lists are represented in the data model, we achieved those results automatically, without touching the code of other features.

CKEditor 5 v0.3.0 lists feature

Note: Nested lists are not fully supported yet. Most of the code is in place, but we will be working on stability issues in the next iteration.

Package: https://github.com/ckeditor/ckeditor5-list

The link feature

No web content can exist without links so introducing the link feature at an early stage was natural for us. Comparing to the lists feature its implementation was simple, but we had to find answers for many UX/UI related issues (starting point).

CKEditor 5 v0.3.0 link feature

Package: https://github.com/ckeditor/ckeditor5-link

Other changes

As usual, we worked on countless bigger and smaller changes, among which these deserve mentioning the most:

Sample

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

What’s next – Iteration 4

Iterantion 4 has already started. Apart from stabilising the new features, we plan to tackle the image, autoformat and clipboard packages. We also plan to switch to Karma and Webpack for the testing environment and we are going to work on various selection, typing and engine improvements, targeted at stabilising this piece of functionality.

Feel free to ask questions and join the discussion about iteration 4.

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.