We are happy to report the release of CKEditor 5 v11.0.0. This version brings a few new features (the block toolbar, the autosave plugin, Electron support), many improvements (typing on Android, selection stability and selection handle for tables) and an upgrade to webpack 4.
# New features
Although the first stable version of CKEditor 5 was released not so long ago, we are proud to see the framework to be so stable and robust that we can continue adding new features in a really fast pace. Here is what this release brings on top of all the goodies that we already provide!
# Block toolbar
You may already know the block toolbar from Letters. It is now available for CKEditor 5, too!
This type of toolbar is positioned next to the block element that the selection is anchored to (e.g. a paragraph) and it naturally accommodates the features that modify entire blocks (e.g. create headers or paragraphs) rather than inline styles (e.g. bold, italic, etc.).
Check out a demo and how to install it in the Block toolbar’s guide.
The new autosave feature allows you to easily integrate the editor with your system by taking care of saving the data when needed and handling situations like a user leaving the page before the data is saved.
We also introduced a general guide about Getting and saving data which explains how to handle saving editor data in a great detail.
# Compatibility with Electron
Check out how real-time collaboration works in Electron:
# And more
Besides the two new plugins, we also introduced smaller additions, such as:
editor.stateproperty which makes it easier to check whether the editor is already initialized or not.
CKEDITOR_VERSIONglobal variable which simplifies checking which CKEditor version you use (reporting tickets has never been simpler — just use
console.log( CKEDITOR_VERSION );to check the editor version 😉).
editor.ui.update()method which allows for updating the editor UI if a website or application knows that something has changed (e.g. the size of the container in which the editor is being used) while the editor does not.
- The table selection handle that makes it easier to select the table content to format it, copy or delete.
Here are some welcome improvements to the CKEditor 5 Framework that we have recently introduced.
# Typing on Android
Handling typing on Android turned out to be one of the most demanding challenges of the 21st century. Fortunately, we succeeded and heavily improved support for Android in this release.
Some other relevant changes:
- It is now possible to create new editors without specifying the element to be replaced or upcasted. You can just pass the data to the
create()method and append the created editor to the page when you want. Refer to the API documentation of specific
create()methods for more information.
- The stability and the UX of the table feature have been improved.
- Selection over widgets is now more reliable and easier to make.
editor.destroy()method waits for the editor to become ready.
# Breaking changes
This release brings two important breaking changes in the CKEditor 5 environment. Read more about upgrading from v10.1.0 to v11.0.0 in the migration guide.
# Build source repositories simplification
We changed the structure of build source repositories and changed the naming of the
Editor class properties used by builds.
src/ckeditor.js file (which is webpack’s entry point) was automatically created based on the
build-config.js file. This meant that both these files were describing the same thing: the creator, the list of plugins and the default configuration. We decided to leave only
The second change that we did was splitting the
Editor.build property to
Editor.defaultConfig. This creates a more flat and direct structure of the
src/ckeditor.js file and we hope to prevent the developers from mistakenly taking
Editor.build for the configuration and extending it (which did not work).
If you maintain a fork of one of the official builds and want to upgrade to CKEditor v11.0.0 we recommend reading the migration guide.
# Upgrade to webpack 4
Besides changing the structure of build source repositories, we also decided to finally migrate to webpack 4. Webpack 4 was released in February, however, it brought a good number of breaking changes so we decided to stick to webpack 3 until the situation stabilized.
This upgrade required releasing new versions of
@ckeditor/ckeditor5-dev-webpack-plugin as well as updating the existing
If you maintain a fork of one of the official builds or integrate CKEditor 5 from source, we recommend reading the migration guide.
# Editor#element became Editor#sourceElement
# CKEditor 5 v11.0.1
We made a small mistake in the release process which resulted in the
CKEDITOR_VERSION global returning the previous version number. We thus needed to re-release CKEditor 5 builds with this minor fix as version 11.0.1.
Other than that the 11.0.0 and 11.0.1 releases are identical. Sorry about the confusion caused 😃
# What’s next?
The ability to create detached editors which was introduced in this release finally unblocked React and Angular integrations which we hope to release very soon.
A longer term roadmap includes features such as Paste from Word, Media embed and support for block content in table cells.