Release highlights
We are happy to announce the release of CKEditor 5 v26.0.0.
This release brings some new features:
- It's now possible to add plugins to CKEditor 5 builds. Read more in the DLL builds guide.
- The editor placeholder behaves like a native input placeholder now.
- It's now possible to style inline widgets (e.g. with bold).
There were also some important bug fixes:
- Autoformat will not create a code block when typing in bulleted/numbered lists.
- The font feature now supports loading legacy
<font>elements. - Indent buttons order is misleading in all default build configurations.
- Crash when copying nested table which was pasted into the editor.
- A period does not stick to the preceding word during word-wrap.
Collaboration features
The CKEditor 5 Collaboration features changelog can be found here: https://ckeditor.com/collaboration/changelog.
MAJOR BREAKING CHANGES ℹ️
Note: Check out the Migration to 26.0.0 guide for more detailed information on how to upgrade to this version.
-
Several plugins are not loaded automatically as dependencies of other plugins anymore. From now on, they need to be provided by the editor creator manually (via
config.plugins). This list includes:- The
CloudServicesUploadAdapterplugin no longer loadsCloudServices. Make sure to addCloudServicesto the editor plugins when using theCloudServicesUploadAdapterorEasyImagefeatures. - The
EasyImageplugin no longer loadsImageandImageUpload. Make sure to addImageandImageUploadto the editor plugins when using theEasyImagefeature. - The
CKFinderplugin no longer loadsCKFinderUploadAdapter. TheCKFinderEditingplugin no longer loadsImageEditingandLinkEditingfeatures. Make sure to addCKFinderUploadAdapter,Image, andLinkfeatures to the editor plugins when using theCKFinderfeature. - The
Titleplugin no longer loadsParagraph. Make sure to addParagraphto the editor plugins when using theTitlefeature. - The
ListEditingplugin no longer loadsParagraph. Make sure to addParagraphto the editor plugins when using theListfeature. - The
LinkImageEditingplugin no longer loadsImageEditing. Make sure to addImageto the editor plugins when using theLinkImagefeature. - The
LinkImageUIplugin no longer loadsImage. Make sure to addImageto the editor plugins when using theLinkImagefeature. - The
ExportPdfplugin no longer loadsCloudServices. Make sure to addCloudServicesto the editor plugins when using theExportPdffeature. - The
ExportWordplugin no longer loadsCloudServices. Make sure to addCloudServicesto the editor plugins when using theExportWordfeature.
- The
-
cloud-services-core: The package has been merged into
@ckeditor/ckeditor5-cloud-services. All classes that were available in the@ckeditor/ckeditor-cloud-services-corepackage have been moved to the@ckeditor/ckeditor5-cloud-servicespackage. They should now be instantiated via factory methods on theCloudServicesCoreplugin that's located in@ckeditor/ckeditor5-cloud-services. See #8811. -
image: The following modules have been moved (before → after):
image/image/imageinsertcommand~ImageInsertCommand→image/image/insertimagecommand~InsertImageCommandimage/imageresize/imageresizecommand~ImageResizeCommand→image/imageresize/resizeimagecommand~ResizeImageCommandimage/imageupload/imageuploadcommand~ImageUploadCommand→image/imageupload/uploadimagecommand~UploadImageCommand
-
list: The to-do list item toggle keystroke changed to Ctrl+Enter (Cmd+Enter on Mac).
-
list: The following module
list/todolistcheckedcommand~TodoListCheckCommandhas been moved tolist/checktodolistcommand~CheckTodoListCommand. -
Keystrokes with the Ctrl modifier will not be handled on macOS, unless the modifier is registered as a forced one (for example:
Ctrl!+Awill not be translated toCmd+Aon macOS).
Features
- cloud-services: Created the
CloudServicesCoreplugin that provides the base API for communication with CKEditor Cloud Services. (commit) - core: The
PluginCollectionclass will allow requiring a plugin by name, if it is provided inconfig.pluginsor if it was already loaded. Closes #2907. (commit) - engine:
ContainerElementcan be marked asisAllowedInsideAttributeElementin order to allow wrapping it with attribute elements. Useful for instance for inline widgets. Other element types (UI, Raw, Empty) have this flag on by default but it can be changed viaoptions.isAllowedInsideAttributeElementtofalse. Read more inDowncastWriter#create*()methods documentation. Closes #1633. (commit) - font: Added the
<font>styling compatibility. Closes #8621. (commit) - utils: Added the forced modifier key (
Ctrl!) for keystrokes that should not be mapped to Command on macOS. (commit)
Bug fixes
- build-*: Switched indent buttons order in the default build config to "outdent, indent". Closes #8884. (commit)
- engine:
DowncastWritershould handleUIElementsconsistently while wrapping with and inserting them into attribute elements. Closes #8959. (commit) - engine: Words should not break on link boundaries. Closes #8852. (commit)
- engine: Undoing the deletion of merged paragraphs should result in the original tree. Closes #8976. (commit)
- engine: Pasting formatted single-line text over a widget should not split it into multiple paragraphs. Closes #8953. (commit)
- engine: The editor placeholder should not disappear until typing started. Closes #8689. (commit)
- engine: Fixed content not restored on undo when multiple blocks and widgets were removed. Closes #8870. (commit)
- font: Fixed the
supportAllValuesconfiguration for theFontSizeandFontFamilyfeatures to work with nested elements (tables). Closes #7965. (commit). Thanks to @dkrahn! - heading: In the
Titleplugin, the body placeholder is visible even when the body section is focused. See #8689. (commit) - image: The Image caption placeholder is now hidden when focused. See #8689. (commit)
- link: The Autolink plugin will no longer automatically match domains that only have a
wwwsubdomain followed with a top level domain, e.g.http://www.test. Closes #8050. (commit) - link: IP addresses should be converted into links while typing by the Autolink feature. Closes #8881. (commit)
- media-embed: The
insertMediaEmbedcommand should be disabled if any non-media object is selected (see #8798). (commit) - table: The
insertTablecommand should be disabled if any object is selected. Closes #8798. (commit) - utils: The keystrokes are no longer conflicting on macOS. Closes #5705. (commit)
- The editor will show the placeholder even when focused. See #8689. (commit)
Other changes
-
Enabled creating builds that can be extended (with more plugins) without the need to recompile. This required splitting the project into the so-called DLL part and consumers of this DLL. Under the hood, the mechanism is based on webpack DLLs. This is the first part of the required changes and it contains the necessary breaking changes (see the "MAJOR BREAKING CHANGES" section above). For more information see the "DLL builds" guide. Closes [#8395](#8395). (commit)
-
cloud-services-core: All classes available in the
@ckeditor/ckeditor-cloud-services-corepackage have been moved to the@ckeditor/ckeditor5-cloud-servicespackage. They should now be instantiated via factory methods on theCloudServicesCoreplugin. Closes #8811. (commit) -
engine: The
KeyObservershould provide information aboutmetaKeybeing pressed. (commit) -
image: Add WEBP support to the inline pasting of images from source URLs. (commit)
-
image: Introduced
Image.isImageWidget()utility method. (commit) -
list: The to-do list item toggle keystroke changed to Ctrl+Enter (Cmd+Enter on Mac). (commit)
-
widget: The
checkSelectionOnObjectfunction should be exported by the@ckeditor/ckeditor5-widgetpackage (as@ckeditor/ckeditor5-widget/src/utils) (see #8798). (commit) -
Updated translations. (commit)
-
Unified buttons and commands naming conventions. Old name values are available as aliases. Read more about those changes in the Code style guide. Closes #8033. (commit)
Changes in toolbar buttons (before → after):
imageUpload→uploadImageimageResize→resizeImageimageInsert→insertImageimageResize:*→resizeImage:*
Changes in command names:
imageInsert→insertImageimageUpload→uploadImageimageResize→resizeImageforwardDelete→deleteForwardtodoListCheck→checkTodoList
Released packages
Check out the Versioning policy guide for more information.
Major releases (contain major breaking changes):
Releases containing new features:
Other releases:
Released packages (summary)