github ckeditor/ckeditor5 v26.0.0

latest releases: v41.4.2, v41.4.1, v41.4.0...
3 years ago

Release highlights

We are happy to announce the release of CKEditor 5 v26.0.0.

This release brings some new features:

There were also some important bug fixes:

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 CloudServicesUploadAdapter plugin no longer loads CloudServices. Make sure to add CloudServices to the editor plugins when using the CloudServicesUploadAdapter or EasyImage features.
    • The EasyImage plugin no longer loads Image and ImageUpload. Make sure to add Image and ImageUpload to the editor plugins when using the EasyImage feature.
    • The CKFinder plugin no longer loads CKFinderUploadAdapter. The CKFinderEditing plugin no longer loads ImageEditing and LinkEditing features. Make sure to add CKFinderUploadAdapter, Image, and Link features to the editor plugins when using the CKFinder feature.
    • The Title plugin no longer loads Paragraph. Make sure to add Paragraph to the editor plugins when using the Title feature.
    • The ListEditing plugin no longer loads Paragraph. Make sure to add Paragraph to the editor plugins when using the List feature.
    • The LinkImageEditing plugin no longer loads ImageEditing. Make sure to add Image to the editor plugins when using the LinkImage feature.
    • The LinkImageUI plugin no longer loads Image. Make sure to add Image to the editor plugins when using the LinkImage feature.
    • The ExportPdf plugin no longer loads CloudServices. Make sure to add CloudServices to the editor plugins when using the ExportPdf feature.
    • The ExportWord plugin no longer loads CloudServices. Make sure to add CloudServices to the editor plugins when using the ExportWord feature.
  • cloud-services-core: The package has been merged into @ckeditor/ckeditor5-cloud-services. All classes that were available in the @ckeditor/ckeditor-cloud-services-core package have been moved to the @ckeditor/ckeditor5-cloud-services package. They should now be instantiated via factory methods on the CloudServicesCore plugin that's located in @ckeditor/ckeditor5-cloud-services. See #8811.

  • image: The following modules have been moved (before → after):

    • image/image/imageinsertcommand~ImageInsertCommandimage/image/insertimagecommand~InsertImageCommand
    • image/imageresize/imageresizecommand~ImageResizeCommandimage/imageresize/resizeimagecommand~ResizeImageCommand
    • image/imageupload/imageuploadcommand~ImageUploadCommandimage/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~TodoListCheckCommand has been moved to list/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!+A will not be translated to Cmd+A on macOS).

Features

  • cloud-services: Created the CloudServicesCore plugin that provides the base API for communication with CKEditor Cloud Services. (commit)
  • core: The PluginCollection class will allow requiring a plugin by name, if it is provided in config.plugins or if it was already loaded. Closes #2907. (commit)
  • engine: ContainerElement can be marked as isAllowedInsideAttributeElement in 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 via options.isAllowedInsideAttributeElement to false. Read more in DowncastWriter#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: DowncastWriter should handle UIElements consistently 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 supportAllValues configuration for the FontSize and FontFamily features to work with nested elements (tables). Closes #7965. (commit). Thanks to @dkrahn!
  • heading: In the Title plugin, 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 www subdomain 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 insertMediaEmbed command should be disabled if any non-media object is selected (see #8798). (commit)
  • table: The insertTable command 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-core package have been moved to the @ckeditor/ckeditor5-cloud-services package. They should now be instantiated via factory methods on the CloudServicesCore plugin. Closes #8811. (commit)

  • engine: The KeyObserver should provide information about metaKey being 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 checkSelectionOnObject function should be exported by the @ckeditor/ckeditor5-widget package (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):

    • imageUploaduploadImage
    • imageResizeresizeImage
    • imageInsertinsertImage
    • imageResize:*resizeImage:*

    Changes in command names:

    • imageInsertinsertImage
    • imageUploaduploadImage
    • imageResizeresizeImage
    • forwardDeletedeleteForward
    • todoListCheckcheckTodoList

Released packages

Check out the Versioning policy guide for more information.

Released packages (summary)

Major releases (contain major breaking changes):

Releases containing new features:

Other releases:

Don't miss a new ckeditor5 release

NewReleases is sending notifications on new releases.