Release highlights
We are happy to announce the release of CKEditor 5 v27.1.0.
This release introduces some new features:
- Support for nested tables.
- Support for nested block quotes.
- Content with the deprecated
align
attribute can now be loaded into the editor (but will be transformed to a modern format).
There were also a few bug fixes:
- The empty value in the configuration (
config.initialData
) will have precedence over a non-empty DOM element when creating the editor. - The watchdog feature does not import CKEditor 5 utilities to avoid code duplication in external framework integrations.
- Dragging the entire table cell is no longer possible.
- The selection will no longer get stuck in read-only mode.
- Attributes that have already been set are no longer overridden while setting attributes upon upcast conversion, as this caused text styles to not be properly converted.
MINOR BREAKING CHANGES ℹ️
- engine: Added the new
useFillerType()
method in theDataProcessor
interface. Classes based on this interface should implementuseFillerType()
to avoid errors. - upload: The asynchronous
SimpleUploadAdapter#upload()
method resolves to an object with normalized data including theurls
object, which was only returned before. This may affect all integrations depending on theSimpleUploadAdapter
uploading mechanism.
Features
- alignment: Added support for the deprecated
align
attribute. Closes #9193. (commit) - block-quote: Added support for nested block quotes. Check the migration guide if you want to disable this behavior and disallow nesting quotes. Closes #9210. (commit)
- engine: Introduced new "markedNbsp" block filler mode in
DomConverter
, in which<span data-cke-filler="true"> </span>
is inserted, to prevent leaking extra space characters into the data. (commit) - engine: Introduced
useFillerType()
inHtmlDataProcessor
andXmlDataProcessor
to switch between using marked and regularnbsp
block fillers. Closes #9345. (commit) - engine: Enabled marker downcast for document fragments. Closes #9460. (commit)
- image: Introduced the
uploadComplete
event inImageUploadEditing
that allows customizing the image element (e.g. setting custom attributes) based on the data retrieved from the upload adapter. Closes #5204. (commit) - media-embed: Introduced the
config.mediaEmbed.elementName
to allow setting semantic element name. Closes #9373. (commit) - table: Added support for nested tables. Check the migration guide if you want to disable this behavior and disallow nesting tables. Closes #3232. (commit)
- upload: The upload adapters' asynchronous
#upload()
method resolves to an object with additional properties along with theurls
hash. See more in #5204. (commit)
Bug fixes
- clipboard: The selection was stuck and impossible to change in read-only mode. Closes #9372. (commit)
- clipboard: The nested editable element should not be dragged. Closes #9370. (commit)
- code-block: Markers created in or on code block element are now preserved after the document is loaded. Closes #9402. (commit)
- core: The
MultiCommand.execute()
method prevents calling undefined commands. (commit) - engine: While setting attributes upon upcast conversion, do not override attributes that have already been set. The correct behavior is to keep the attributes applied by the deepest nodes in the view tree as, in most cases, the deepest node will have precedence (e.g. an inline style applied by the deepest node). Closes #8921. (commit)
- track-changes: Accepting multiple "turn on/off list item" suggestions (created by multiple users) that should cause the same effect will have a correct result now.
- watchdog: Removed imports from the
ckeditor5
package. Closes #9315. (commit) - widget: Hide the selection handler in the nested widget if the outer widget is hovered or selected. Closes #9453, #8964. (commit)
- The editor was not initialized with the empty data for
config.initialData
set to an empty string. Closes #8974. (commit)
Other changes
- list: Introduced the
config.forceValue
option toListCommand
that forces turning list items on or off instead of toggling. (commit) - Updated translations. (commit)
- real-time-collaboration: The
Editor.create()
method will throw an error if the initial websocket connection cannot be established.
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)