Release highlights
We are happy to announce the release of CKEditor 5 v35.2.0.
This release introduces the following new features:
- Sidebar performance improvements for scenarios with huge number of annotations.
- The ability to group toolbar items using a declarative config.
- New category "Arrows" is available in the default configuration of the special characters dropdown.
There were also bug fixes:
- The image's alternative text button state now indicates whether any value is applied.
- The 'Show more items' toolbar button will no longer steal focus after clicking a button from it.
- The block toolbar will close properly upon clicking its button.
- Auto-linking will not happen for URLs without a protocol provided if
config.link.defaultProtocol
is not set. - An improvement for keyboard navigation for style feature.
- The image insertion pane is no longer empty if opened with the arrow down keystroke.
- The color pickers in table and table cell properties forms are now accessible for keyboard users.
- The to-do list items should not interrupt the tab key navigation across the editor content.
Please refer to the migration guide to learn more about these changes.
MINOR BREAKING CHANGES ℹ️
- basic-styles: The
bold
icon has been moved to the@ckeditor/ckeditor5-core
package. - comments: Introduced external comments and suggestions which require special handling when saving them in the database. This will concern you, if you use non real-time collaboration and the import from Word feature. Read more about it in the migration guide.
- comments: The templates for
CommentView
andSuggestionThreadView
have changed. This may concern you, if you use custom annotation views or templates and the import from Word feature. - paragraph: The
paragraph
icon has been moved to the@ckeditor/ckeditor5-core
package. - Comment input editor is now initialized on demand instead of being created in the
CommentInputView
constructor and initialized on render.CommentInputView#editor
is nownull
right after the instance is created. This may concern you, if you use custom comment views. - Annotations with targets set to markers or DOM elements inside the editor editable must now be registered in
EditorAnnotations#registerAnnotation()
after they are created. This will concern you, if you have a custom feature that createsAnnotation
instances inside the editor. This does not affect the comments outside the editor feature.
Features
- comments: Introduced integration for the import from Word feature to handle comments and suggestion included in the imported Word file.
- comments: Introduced support for comments and suggestions that come from an external source (e.g. an imported document). Annotations for these items will be labelled to differentiate them from regular comments and suggestions. To mark an annotation as external, set the
@external
attribute when creating a comment or a suggestion. - html-support: The General HTML Support (GHS) feature can exclude elements from the allowed list of elements. (commit)
- import-word: Added a new package (
@ckeditor/ckeditor5-import-word
), that allows importing Word documents into CKEditor 5. - track-changes: Introduced integration for the import from Word feature to handle comments and suggestions included in the imported Word file.
- track-changes: Introduced support for comments and suggestions that come from an external source (e.g. an imported document). Annotations for these items will be labelled to differentiate them from regular comments and suggestions. To mark an annotation as external, set the
@external
attribute when creating a comment or a suggestion. - ui: Allowed grouping toolbar items into drop-downs by using a declarative config. Closes #12490. (commit)
Bug fixes
- comments: It is now possible to switch between annotations when multiple inline annotations are displayed in the contextual balloon.
- engine: Fixed editor throwing the
Maximum call stack size exceeded
error when huge number of nodes were inserted at once into an element. Closes #12428. (commit) - html-support: Redefined most GHS-elements as not blocks in the schema. Closes #12430. (commit)
- image: The image insertion pane should not be empty if opened with the arrow down keystroke. Closes #12215. (commit)
- image: Alternative text button now indicates whether any value is applied. Closes #12268. (commit)
- link: Fixed incorrect behavior when text before the auto-linked url was removed by pressing backspace. Previously, the removed text was reinserted on backspace press. Closes #12447. (commit)
- link: Corrected autolinking URLs without a protocol given. Closes #11040. (commit)
- list: Improved styles for indented lists. Closes #12179. (commit)
- list: To-do list items should not interrupt the
Tab
key navigation across the editor content. Closes #6535. (commit) - list: List properties changes made on a list inside a container element (e.g. block quote) are now correctly propagated also to a list directly after that container. Closes #11082. (commit)
- media-embed: The focus will move to the editor after inserting a media. Closes #12186. (commit)
- pagination: Pagination should work correctly for blocks with inline elements and soft breaks.
- paste-from-office: Extra line breaks should not be generated while pasting from Google Docs. Closes #10217. (commit)
- table: Table cell widths will be preserved after pasting into the editor with table column resize feature and without table cell properties one. Closes #12426. (commit)
- table: Added keyboard (
spacebar
) support for the table insertion dropdown. Closes #12344. (commit) - table: Made color pickers in table and table cell properties forms accessible for keyboard users. Closes #12193. (commit)
- track-changes: Fixed editor crashing or disconnecting from real-time collaboration session when the initial content contained big number of suggestions.
- track-changes: The word count plugin callback will no longer be called when track changes data plugin is used.
- track-changes: Styles dropdown integration will correctly create suggestions for block quotes and other elements containing block elements.
- ui:
DropdownView
should close when it gets blurred. Also,DropdownView
should focus its#buttonView
only when it gets closed and the focus is inside itspanelView
. Closes #12178, #12005. (commit) - ui: The block toolbar should close upon clicking its button. Closes #12184. (commit)
- widget: The image resizer handle should not be visible when the resizer is not enabled (e.g. in comments-only mode). Closes #11891. (commit)
Other changes
- comments: Introduced substantial performance improvements in scenarios with big number (hundreds) of comments and suggestions. Improved editor initialization time and editor responsiveness.
- comments: Introduced
EditorAnnotations#registerAnnotation()
. - comments: Introduced the optional
@external
attribute for comments and suggestions.@external
is an object that contains fields with author name (authorName
) and date (createdAt
). The attribute is read-only and can be set only when a comment or suggestion is created. - engine:
Model#insertContent()
will now insert markers added toDocumentFragment#markers
. Closes #12467. (commit) - engine: Reimplemented
Position#isTouching()
in order to achieve better editor performance. (commit) - special-characters: Added missing arrow characters (
↑
,→
,↓
,←
) into the selection table. Closes #6167. (commit) - style: Improved keyboard navigation in the style feature drop-down. Closes #12250. (commit)
- track-changes: Introduced substantial performance improvements in scenarios with big number (hundreds) of comments and suggestions. Improved editor initialization time and editor responsiveness.
- track-changes: Introduced optional
@external
attribute for comments and suggestions.@external
is an object that contains fields with author name (authorName
) and date (createdAt
). The attribute is read-only and can be set only when a comment or suggestion is created. - utils: Dropped using lodash
isElement()
inRect
class in order to achieve better editor performance. (commit) - Updated translations. (commit, commit, commit)
Released packages
Check out the Versioning policy guide for more information.
New packages:
Minor releases (contain minor breaking changes):
Releases containing new features:
Other releases:
Released packages (summary)