Release highlights
We are happy to announce the release of CKEditor 5 v22.0.0.
This release brings a few new features:
Please note that there are some major breaking changes. Be sure to review them before upgrading.
Collaboration features
The CKEditor 5 Collaboration features changelog can be found here: https://ckeditor.com/collaboration/changelog.
MAJOR BREAKING CHANGES ℹ️
- engine: The
config.view
callback ofDowncastHelpers
takes aDowncastConversionApi
instance instead of aDowncastWriter
. An example migration snippet can be found in a GitHub comment. See #7334. - engine: The
config.model
callback ofUpcastHelpers
takes aUpcastConversionApi
instance instead of aModelWriter
. An example migration snippet can be found in a GitHub comment. See #7334. - engine: The
config.view
parameter for upcast element-to-element conversion helpers configurations is now mandatory. You can retain previous "catch-all" behavior for upcast converter usingconfig.view = /[\s\S]+/
value.
MINOR BREAKING CHANGES ℹ️
- table: The
tableCell
model element brought by theTableEditing
plugin is no longer an object (SchemaItemDefinition#isObject
) in theSchema
but a selectable (SchemaItemDefinition#isSelectable
). Please update your integration code accordingly. See #6432. - ui: It is now possible to override existing components when adding new ones to the component factory (previously an error was thrown). See #7803.
Features
- clipboard: Pasting a plain text will inherit selection attributes. Closes #1006. (commit)
- engine: Options passed to
Editor#getData()
andDataController#get()
are now available in downcast conversion underconversionApi.options
object. Closes #7628. (commit) - engine: Added conversion API to upcast and downcast helpers. Closes #7334. (commit)
- engine: Introduced
SchemaItemDefinition#isSelectable
andSchemaItemDefinition#isContent
properties. Closes #6432. (commit) - engine: Introduced new upcast
ConversionApi
helper methods -conversionApi.safeInsert()
andconversionApi.updateConversionResult()
. New methods are intended to simplify writing event based element-to-element converters. Closes #7336. (commit) - image: Introduced the insert image via URL feature. Closes #7794. (commit)
- indent: Block indentation is now recognized as a formatting attribute. Closes #2358. (commit)
- list: Introduced the list styles feature that allows customizing the list marker. Closes #7801. (commit)
- markdown-gfm: Introduced the
Markdown
plugin. Closes #6007. (commit) - markdown-gfm: The markdown data processor has been revamped and got the dependencies updated. Closes #5988. (commit)
- utils: Introduced the
Rect#getBoundingRect()
method that returns aRect
instance containing all the rectangles passed as argument. Closes #7858. (commit) - utils: Introduced the
passive
option support in theDomEmitterMixin#listenTo()
method. Closes #7828. (commit) - widget: Keyboard vertical navigation in the text lines next to objects should move the caret to the position closest to the object. Closes #7630. (commit)
Bug fixes
- engine: Upcast conversion will now try to wrap text or inline elements in a paragraph in a place where is not allowed but a paragraph is allowed. Closes #7753, #6698. (commit)
- engine: The selection will no longer inherit attributes from an empty inline element. Closes #7459. (commit)
- link: Fixed a case where the link balloon would point invalid place after browser scroll or resize. Closes #7705. (commit)
- ui: Dropdown panels from the editor's main toolbar should always float above the contextual balloons from the editor's content. Closes #7874. (commit)
- ui: Balloon toolbar should reposition and ungroup items correctly when the window resizes. Closes #6444. (commit)
- utils:
Rect
utility returns wrong sizes in case of a sequenced range. Closes #7838. (commit)
Other changes
-
markdown-gfm: Upgraded to Marked v1.1.1. Closes #7850. (commit)
-
mention: The space key will not confirm a mention selection from the list. Closes #6394. (commit)
-
remove-format: Block formatting should be removed if the selection is inside that block. (commit)
-
table: The
tableCell
model element brought by theTableEditing
plugin is no longer an object (SchemaItemDefinition#isObject
) in theSchema
but a selectable (SchemaItemDefinition#isSelectable
) (see #6432). (commit) -
table: Pressing Shift+Tab in the first table cell now selects entire table. Closes #7535. (commit)
-
ui: The
clickOutsideHandler()
function will take into consideration that the editor can be placed in a shadow root while detecting a click. Closes #7743. (commit)Thanks to @ywsang.
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)