We would like to let you know that the 11th developer preview of CKEditor 5 has just been tagged as version v0.11.0.
This is the last release before 1.0.0 alpha. It is also the biggest release so far, containing 333 closed tickets.
It will be impossible for us to go through all the things that we have introduced, improved or fixed so we will focus here on the most notable changes. If you would like to see a detailed changelog please refer to the ckeditor5
's release page.
You can, of course, check the updated sample and read further to learn more about the progress.
Why did it take so long?
The latest "News and updates" issues explains why this release grew to such a size. Meeting the goals which we have set for this release turned out to require a lot more work than we anticipated. At the same time, releasing anything half-way was not a graceful way out either because many changes were not finalized.
On the other hand, after pushing forward for such a long time, we found ourselves at a point where the amount of changes compared to the previous release was so big that the documentation that we have been working on was incompatible with the code available on npm which confused us and the community. Hence, we decided to release the 11th developer preview to clarify this situation.
New features
The most notable features:
New editor creator was introduced — the Balloon toolbar editor. See the demo.
Two more builds were created — the Balloon toolbar editor build featuring the new editor and Inline editor build featuring the inline editor.
Support for
srcset
was added to the Image and the Image upload plugins — see ckeditor/ckeditor5-image#2 and ckeditor/ckeditor5-upload#34.Read-only mode was introduced and all existing features were updated to support it.
We implemented support for applying custom highlights (think: styling — e.g. selection-like or squiggle-like) to fragments of the content. This feature was initially called "virtual selection" but "highlights" is a better reflection of its generic nature. It allows, for example, to display selections of multiple users in one editor or to display a fake selection when the browser does not natively draw it (which happens e.g. when the editable element is blurred — see this ticket). The mechanism needs to be configurable so e.g. widget-like features may control how a highlight is displayed over them. See related tickets: 1, 2, 3.
Underline was added to the basic styles package.
mgit2 got three new commands:
mgit status
,mgit diff
,mgit checkout
. This is not a part of CKEditor 5's codebase but this is a crucial tool used by us every day during development.
Bug fixes
We fixed 163 bugs so we hope you will excuse us for not even listing the most important ones ;).
Other changes
- We refactored history and OT implementations — it was a significant change in the algorithms with a couple dozen follow-ups. As a result, we improved stability of collaboration and made selective undo really possible. We explained the reasons for this change last time.
- The "Unlink" button was removed and we are planning to implement an even more lightweight 2-step link editing interface.
- The Command API was redesigned in order to streamline commands implementation.
- The Italic feature will use
<i>
instead of<em>
to match Editor Recommendations. - Paragraph will be automatically created in an empty editor.
- We cleaned up SVG icons saving 20kb.
- The heading dropdown will only apply the style. Previously, applying a heading style to a block which is already a heading would change it to a paragraph.
- The
Selection
class got a couple of new methods. ContextualToolbar
's limiter will now be completely customizable.- We introduced configurable toolbar offsets for better integration with various websites.
PluginInterface
was introduced to make creating plugins simpler.- Link URL input has a placeholder now.
- We improved various cases with pressing Backspace in a fully selected or empty content.
- Tooltips do not use
:after
or:before
anymore which also fixed text blurring in Chrome. - We switched to ESLint (replacing JSHint and JSCS).
- Grammarly will not break CKEditor 5 (here, we actually asked the Grammarly team to disable it for CKEditor 5).
Documentation
During the last 3 months we put a lot of effort into creating a platform for writing documentation and writing the guides themselves. The nightly builds of the documentation are available online.
While the documentation is not complete yet, these parts can already be useful:
- API docs
- Builds — "builds" are ready to use editors with a predefined (but configurable) set of features. They are the fastest and easiest ways to use CKEditor 5 in your application.
- Features — deep dive into more complex features.
- Examples
It also features a useful search provided by Algolia:
The sections on which we are working right now are framework guides and framework examples. We are also constantly tweaking and improving existing guides and checking their completeness. Feel free to report any issues.
Gitter
We have set up a Gitter channel for CKEditor 5. There is also a short explanation on how we think it should be used by all of us.
What's next?
As we mentioned earlier, this is the last release before 1.0.0 alpha. To make the alpha release possible we need to:
- write framework guides,
- fix a couple of smaller issues,
- make integrating CKEditor 5 simpler and clearer: 1, 2, 3, 4, 5, 6, 7.
Sample
We updated the basic CKEditor 5 sample that you can play with. Check out the developer preview of CKEditor 5 (version 0.11.0) on the CKEditor 5 GitHub.io page.
Changelogs
For the detailed list of changes go to ckeditor5@v0.11.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.