npm @ckeditor/ckeditor5-build-classic 28.0.0

latest releases: 0.0.0-nightly-20240518.0, 41.4.2, 0.0.0-nightly-20240517.0...
2 years ago

Release highlights

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

This release introduces several new features:

There were also a few bug fixes:

MAJOR BREAKING CHANGES

Note: Check out the Migration to CKEditor 5 v28.0.0 guide for more detailed information on how to upgrade to the current version.

MINOR BREAKING CHANGES ℹ️

  • engine: Styles definitions for the border:* property produced by the StylesProcessor will now be merged as a single border:* property if all its properties (width, style, and color) for all edges (top, right, bottom, left) are the same.
  • table: The TablePropertiesView and TableCellPropertiesView classes require additional property in the object as the second constructor argument (options.defaultTableProperties for the table and options.defaultTableCellProperties for table cells).
  • table: The upcastBorderStyles() conversion helper requires a third argument called defaultBorder. The object defines the default border (width, color, style) properties.
  • table: The following conversion helpers: upcastStyleToAttribute(), downcastAttributeToStyle(), downcastTableAttribute() accept two arguments now (the conversion and the options objects). Previous usage: conversionHelper( conversion, /* ... */ ) should be replaced with conversionHelper( conversion, { /* ... */ } ).
  • table: Values for the borderColor, borderStyle, borderWidth, and padding model attributes are unified (to values produced by the editor itself) while upcasting the table or table cells if all sides (top, right, bottom, and left) have the same values. Previously, the <table style="border: 1px solid #ff0"> element was upcasted to <table borderStyle="{"top":"solid","right":"solid","bottom":"solid","left":"solid"}" borderColor="{...}" borderWidth="{...}">. Now the object will be replaced with the string value: <table borderStyle="solid" borderColor="#ff0" borderWidth="1px">. The same structure is created when using the editor's toolbar. If border values are not identical, the object notation will be inserted into the model (as it is now).
  • table: The following classes require the second argument called defaultValue which is the default value for the command:
    • TableCellHorizontalAlignmentCommand,
    • TableCellVerticalAlignmentCommand,
    • TableCellBackgroundColorCommand,
    • TableCellBorderColorCommand,
    • TableCellBorderStyleCommand,
    • TableCellBorderWidthCommand,
    • TableCellHeightCommand,
    • TableCellPropertyCommand,
    • TableCellWidthCommand,
    • TableCellPaddingCommand,
    • TableAlignmentCommand,
    • TableBackgroundColorCommand,
    • TableBorderColorCommand,
    • TableBorderStyleCommand,
    • TableBorderWidthCommand,
    • TableHeightCommand,
    • TablePropertyCommand,
    • TableWidthCommand.

Features

  • engine: Introduced the SchemaItemDefinition#allowChildren property simplifying the defining of which other items are allowed inside this schema item definition. Closes #9261. (commit)
  • engine: Introduced the 'mouseover' and 'mouseout' events in the MouseObserver class. Closes #9338. (commit)
  • engine: The StylesProcessor reducer for the border:* CSS property was extended to be able to merge to the border:* property if all its properties (width, style, and color) are specified. Otherwise, the border-(width|style|color) definition should be returned. Closes #9490. (commit)
  • table: Added support for table captions. Closes #3204. (commit)
  • table: Added support for the default table cell properties. Read more about the feature in the documentation. (commit)
  • table: Added support for the default table properties. Read more about the feature in the documentation. Closes #8502, #9219. (commit)
  • Introduced the Revision History feature, that allows the users to create, view and restore content versions.

Bug fixes

  • comments: Fixed comments marker conversion that would fail if the comment marker is in a model document fragment.
  • engine: Added checks for the upcast attribute-to-marker converter before changing the data and consuming view elements. Part of #9779. (commit)
  • engine: Updated downcastwriter to allow setting up attribute element's priority to 0. Closes #5797. (commit)
  • engine: The model.deleteContent() should not exclude a block widget at the end of the deletion range. (commit)
  • engine: The conversion upcast elementToAttribute() and attributeToAttribute() functions should not call the model.value() callback if the element will not be converted. Closes #9536. (commit)
  • engine: The renderer should not crash while removing multiple DOM nodes in the same render cycle. Closes #9534. (commit). Thanks to bendemboski!
  • html-embed: Allow rendering the <script> element inside the HTML preview. Closes #8326. (commit)
  • link: All text attributes starting their names with link will be removed when typing over a link or clicking at the end of the link. Closes #8462. (commit)
  • list: Fixed a crash when applying a spell checker suggestion to a word inside a list item. Closes #9325. (commit)
  • media-embed: Added support for more google maps URL formats (goo.gl/maps, maps.google.com, maps.app.goo.gl). Closes #2762. (commit)
  • track-changes: Fixed a crash happening in some scenarios when a block quote deletion suggestion was accepted.
  • track-changes: Fixed a crash with inline formatting suggestion in the content with a <br> tag.
  • ui Fixed arrow handling with the toolbar focused in case of RTL language UI. Closes #5585. (commit)
  • widget: Pasting plain text while the widget fake caret is active should not remove the widget. Closes #9477. (commit)
  • All non-DLL packages will re-export their modules instead of exporting the default object with these modules as the object entries. Closes #9134. (commit)

Other changes

  • comments: Improved performance for handling huge amounts of annotations.
  • engine: In the marker-to-data conversion, attributes for marker boundaries will be used every time the marker starts or ends before or after the model element, instead of only where a text is not allowed by the model schema. Closes #9622. (commit)
  • export-pdf: The exportPdf command will not be disabled if the editor goes into read-only mode as it does not impact the data.
  • export-word: The exportWord command will not be disabled if the editor goes into read-only mode as it does not impact the data.
  • table: Border definitions produced by the TableProperties and TableCellProperties features will be merged into a group if possible. Instead of producing border-(top|right|bottom|left):* property, the border:* definition will be returned. The same applies to the table cell padding. See #9490. (commit)
  • Updated translations. (commit, commit)
  • Added plugins metadata to packages. Introducing new guides for the metadata and the present HTML output of the features. Closes #6642. (commit)

Released packages

Check out the Versioning policy guide for more information.

Released packages (summary)

Minor releases (contain minor breaking changes):

Releases containing new features:

Other releases:

Don't miss a new ckeditor5-build-classic release

NewReleases is sending notifications on new releases.