Release highlights
We are happy to announce the release of CKEditor 5 v33.0.0.
This release introduces the following new features:
- A new, completely redesigned reconversion system
- Support for handling the
<style>element in the General HTML Support feature - DLL-compatible package builds for collaboration features
- A solution for how to downcast a table to
table>caption - Real-time collaboration support in revision history
There were also a few bug fixes:
- Removing complex emojis now work as expected
- Preparing DLL package builds in the development mode (the
--devflag) no longer ends with an error - Clicking content that has a comment does not cause content data change (resulting with extra autosave)
- The
<CKEditorContext>React component now destroys properly
Read more in: https://ckeditor.com/blog/ckeditor-5-v33.0.0-with-improved-conversion-system-and-dll-builds-for-collaboration-features/
MAJOR BREAKING CHANGES ℹ️
- engine: Removed the
Differ#refreshItem()method from the public API. Replaced byEditingController#reconvertItem()(see #10659). - engine: The
DowncastDispatcherwill throw an error if any of the model items were not consumed while converting. Read theconversion-model-consumable-not-consumederror documentation for more information. - engine: The
DowncastDispatcher#conversionApiproperty is no longer available. The instances ofDowncastConversionApiare created at the start of conversion. - engine: Support for the
triggerByoption for downcast helpers was removed and replaced with the newelementToStructure()options. - list: The
ListEditing,ListUI,ListStyleEditing,ListStyleUI,TodoListEditing,TodoListUIplugins were moved to their dedicated subdirectories (list,liststyle,todolist).
MINOR BREAKING CHANGES ℹ️
- image: Image caption utilities were converted to the
ImageCaptionUtilsplugin. - table: The downcast converters of the table feature were rewritten with the use of
elementToStructure()and the re-conversion mechanism. See #10502. - table: The table selection utilities were to the
TableUtilsplugin. config.initialDatawill now always be set, even if it is not passed in the editor config.
Features
- engine: The
DowncastWriter#createContainerElement()should accept a list of children so that bigger view structures can be created in one call. Closes #10714. (commit) - engine: The
elementToElement()downcast helper will log a console warning if multiple elements have been created. Closes #10610. (commit) - engine: The
DowncastDispatcherwill throw an error if any of the model items were not consumed while converting. Closes #10377. (commit) - engine: Introducing
convertItem(),convertChildren()andconvertAttributes()in the downcast conversion API interface. (commit) - engine: Added support for reconversion in the
DowncastHelpers#elementToElement()downcast helper. Closes #10359. (commit) - engine: Added the
DowncastHelpers#elementToStructure()downcast helper with reconversion support. Closes #10358. (commit) - engine: It is now possible to trigger a nested conversion while downcasting an element. (commit)
- engine: The
DeleteCommandchanged to delete the whole multi-character emoji at once. Closes #6504. (commit) - engine: Introduced
Marker#getData(). (commit) - html-support: Added the
<style>element support in General HTML Support feature. Closes #11104. (commit) - table: Introduced the
PlainTableOutputplugin to override the defaultfigure>captionmarkup in the data pipeline (it outputs the table astable>caption). Closes: #10892. (commit)
Bug fixes
- engine: Setting a marker to the same range it was will no longer trigger the
change:dataevent. This will prevent unnecessary autosave callbacks. Closes #9901. (commit) - html-support: Prevent the removal of the
<script>and<style>elements when they are the only content in the editor. Closes #11247. (commit) - image: Always create new instances of the default options for the
ImageStyleplugin. Closes #11328. (commit) - table: Prevent the plain table output converter from interfering with other features' caption converters. Closes #11394. (commit)
- Fixed the "Unknown option --dev" error when building DLL files in the development mode enabled. Closes #11170. (commit)
Other changes
- engine: Implemented the
EditingController#reconvertMarker()method to be used instead ofWriter#updateMarker()for marker reconversion purposes. Implemented theEditingController#reconvertItem()method to replaceDiffer#refreshItem(). Closes #10659. (commit) - engine: The attribute and child nodes conversion events are fired by the lowest priority handler for the insert event instead of the
DowncastDispatcheritself. Closes #10376. (commit) - engine: Events are fired by the
DowncastDispatchereven if they were previously consumed. It is the conversion handler's responsibility to check if it can be consumed or if it was already consumed by other converters. (commit) - engine: The
DowncastDispatcher#convert()method was introduced as a replacement to the previously usedconvertInsert(). The new method not only handles the nodes conversion but also the markers. (commit) - engine: The
<style>element will not interfere with the editing experience. See #11104. (commit) - font: Moved the utils functions to plugins to make them available in DLLs. (commit)
- list: The
ckeditor5-listpackage was restructured into subdirectories. Closes #10811. (commit) - list: The downcast conversion should consume the downcasted attributes. (commit)
- table: Table downcast conversion was migrated to the
elementToStructure()downcast helper. Closes #10502. (commit) - Updated translations. (commit)
Editor.create()will now setconfig.initialDatavalue based on the first parameter, ifinitialDatahas not been set in the editor config. As a result, plugins can now easily read and modify the editor initial data. (commit)
Released packages
Check out the Versioning policy guide for more information.
Major releases (contain major breaking changes):
Minor releases (contain minor breaking changes):
Releases containing new features:
Other releases:
Released packages (summary)