We are happy to announce the release of CKEditor 5 v43.1.0.
Release highlights
This release includes important bug fixes and enhancements for the editor:
-
Block merge fields: In contrast to regular, inline merge fields, the block merge fields are designed to represent complex, block-level structures, such as a dynamically generated table, a row of products, or a personalized call-to-action segment. Block merge fields are supposed to be replaced by arbitrary HTML data when the document template is post-processed or exported to a PDF or Word file.
-
Nested dropdown menus: this release introduces a new UI component: nested dropdown menus. They can be used by feature developers to easily provide an advanced user interface where UI elements are organized into a nested menu structure.
-
Customizable accessible label: You can now configure the label for the accessible editable area through the editor settings, ensuring it fits your system’s needs.
-
Improved table and cell border controls: It is now easier to manage both table and cell borders. The table user interface now clearly indicates the default border settings, allowing you to set “no borders” (
None
) for tables and cells without any additional configuration.⚠️ In some cases this update may lead to data changes in the tables’ HTML markup when the editor loads them. However, visually nothing will change, and the experience will be the same.
The full list of enhancements can be found below.
MINOR BREAKING CHANGES ℹ️
- Reverted
config.sanitizeHtml
. In v43.0.0 we made a decision to moveconfig.htmlEmbed.sanitizeHtml
to a top-level propertyconfig.sanitizeHtml
. However, we realized that it was a wrong decision to expose such a sensitive property in a top-level configuration property. Starting with v43.1.0 you should again useconfig.htmlEmbed.sanitizeHtml
and/orconfig.mergeFields.sanitizeHtml
. The editor will throw an error ifconfig.sanitizeHtml
is used. See the {@link
updating/update-to-43#reverted-recently-introduced-configsanitizehtml migration guide} for additional context behind this decision. - ai: The structure and presentation of the list of AI commands in the toolbar have changed (a flat filtered list is now a nested menu). Additionally, if your integration customizes this user interface, please ensure your integration code is up-to-date.
- ui: The default
[aria-label]
provided byInlineEditableUIView
is now'Rich Text Editor. Editing area: [root name]'
(previously:'Editor editing area: [root name]'
). You can use theoptions.label
constructor property to adjust the label.
Features
- comments: Added
[data-author-id]
to suggestion and comment markers in editing for easier integration and styling. - media-embed: Added support for new Twitter domain (
x.com
) and Instagram Reels. Closes #16435. (commit) - merge-fields: Introduced block merge fields. They are a new type of merge fields which are treated as block content in the editor editing area.
- track-changes: Added
[data-author-id]
to suggestion and comment markers in editing for easier integration and styling. - ui: Introduced nested menu component for dropdowns. Closes #6399. (commit)
- ui: Added support for the balloon toolbar in the multi-root editor. Closes #14803. (commit)
- Allowed to configure the accessible editable area label via the
config.label
property. Closes #15208, #11863, #9731. (commit)
Bug fixes
- cloud-services: The refreshing mechanism (from the
Token
class) should retry after a failure to limit the chance of the user getting disconnected and data loss in real-time collaboration. (commit) - comments: The
TrackChangesData#getDataWithAcceptedSuggestions()
method will no longer throw errors when there are suggestions containing multi-range comments in tables. - document-outline: Editor no longer crashes during initialization when the
TableOfContents
andImageBlock
plugins are enabled. Closes ckeditor/ckeditor5#16915. - editor-classic: The widget toolbar no longer covers editor's sticky toolbar when scrolling. Closes #15744. (commit)
- editor-multi-root: The selection is no longer lost while clicking an editable containing only one block element. Closes #16806. (commit)
- engine: Prevent from editor crashes when trying to style a long paragraph. Closes #16819. (commit)
- html-support: The
<hgroup>
and<summary>
elements should work with the source editing feature. Closes #16947. (commit) - list: A to-do list should preserve the state of the checked items on the data load. Closes #15602. (commit)
- table: Changed default table and table cell properties to match the content styles. It fixes a problem with setting
[border=none]
on the table. Closes #6841. (commit) - table: Larger tables are no longer truncated in print mode. Closes #16856. (commit)
- track-changes: The
TrackChangesData#getDataWithAcceptedSuggestions()
andTrackChangesData#getDataWithDiscardedSuggestions()
methods will no longer throw errors when used in asynchronous load and save integration type. - ui: Nested menus in the menu bar and dropdowns should not get their panels focused when the main button is clicked. Closes #16857. (commit)
- ui: Restored the ability to pin balloons to text nodes in the DOM tree. Closes #16958 #16889. (commit)
- ui: The focus outline should remain visible upon closing a menu bar using the Esc key during keyboard navigation. Closes #16719. (commit)
- ui: Balloon Editor toolbar no longer sticks out of the limiter element while scrolling. Closes #17002. (commit)
Other changes
- ai: The AI Assistant pre-defined commands toolbar dropdown will now use a new nested menu component instead of the flat list component.
- comments: Moved Ctrl+Shift+E and Esc key handling code from individual features to the
Annotations
plugin to simplify the logic. - core: Reverted recent change to move
config.htmlEmbed.sanitizeHtml
to a top-level config property (config.sanitizeHtml
).config.sanitizeHtml
is no longer available and using it will throw an error. - html-embed: Reverted recent change to move
config.htmlEmbed.sanitizeHtml
to a top-level config property (config.sanitizeHtml
). Starting from v43.1.0config.htmlEmbed.sanitizeHtml
is no longer deprecated. - merge-fields: Introduced
config.mergeFields.sanitizeHtml
config property. Use it instead ofconfig.sanitizeHtml
.config.sanitizeHtml
is no longer available and using it will throw an error. - track-changes: Moved Ctrl+Shift+E and Esc key handling code from individual features to the
Annotations
plugin to simplify the logic. - typing: The package exports now the
TextTransformationConfig
type. (commit) - Updated translations. (commit)
Released packages
Check out the Versioning policy guide for more information.
Minor releases (contain minor breaking changes):
Releases containing new features:
Other releases:
Released packages (summary)