Skip to content

Releases: ckeditor/ckeditor5

v23.1.0

29 Oct 12:34
Compare
Choose a tag to compare

Release highlights

We are happy to announce the release of CKEditor 5 v23.1.0.

This release introduces a new HTML embed feature.

It also comes with new API features:

Other than that, this release brings several bug fixes, to name a few:

Please note that there are some minor 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.

MINOR BREAKING CHANGES ℹ️

  • table: Removed the ensureParagraphInTableCell() converter that corrected the model state after the conversion process. Now the model will be fixed (if needed) by the post-fixer (injectTableCellParagraphPostFixer()).
  • utils: The attachLinkToDocumentation() helper was removed. To log errors with an attached documentation link to the console, use logWarning() and logError().

Features

  • engine: Elements with the data-cke-ignore-events attribute will not propagate their events to the CKEditor 5 API. Closes #4600. (commit)
  • engine: Introduced an automatic model-to-view reconversion by defining the triggerBy option for the elementToElement() conversion helper. Closes #7956. (commit)
  • html-embed: Introduced the HTML embed feature. Closes #8204. (commit)

Bug fixes

  • engine: Model#deleteContent() should properly remove content with multiple blocks selected. Closes #8145. (commit)
  • image: Removed focus outline in the "insert image via URL" form. Closes #7973. (commit)
  • image: The insert button in the insert image dropdown is now disabled when the URL input is empty. Closes #7917. (commit)
  • image: The URL input field is now focused when the image dropdown is opened. Closes #7896. (commit)
  • link: Improved the look of link balloon button separators on mobiles. Closes #7704. (commit)
  • link: Pressing Ctrl/Cmd+K when LinkCommand is disabled no longer shows the link UI. Closes #7919. (commit)
  • link: The autolink feature now uses link.defaultProtocol if set. Closes #8079. (commit)
  • list: List conversion does not throw an error if the list element is being surrounded by raw text nodes. Closes #8262. (commit)
  • media-embed: Disabled the save button in the insert media dropdown when the input is empty. See #7917. (commit)
  • media-embed: URLs with the % character are now allowed for embedding media. Closes #7488. (commit)
  • media-embed: Enabled the media embed command when the selected media is in a table cell. Closes #7604. (commit)
  • table: Pasting nested tables with content unsupported by the editor elements no longer throws an exception. Closes #8098. (commit)

Other changes

  • table: Table cell's content refreshing for the editing view now makes fewer view updates. (commit)
  • utils: Improved the readability of custom errors in the console. Closes #8140. (commit)
  • Optimized icons. (commit)
  • Updated translations. (commit, commit)

Released packages

Check out the Versioning policy guide for more information.

Released packages (summary)

New packages:

Minor releases (contain minor breaking changes):

Releases containing new features:

Other releases:

Read more

v23.0.0

30 Sep 10:31
Compare
Choose a tag to compare

Release highlights

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

This release was focused on bug fixes and stability improvements. Some highlights are listed below:

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 ℹ️

  • image: In order to use the "insert image via URL" feature you now need to load the ImageInsert plugin and use the imageInsert button instead of the imageUpload button that implemented that functionality previously.

MINOR BREAKING CHANGES ℹ️

  • clipboard: When pasting plain text each double line break is now treated as a paragraph separator, while a single line break is converted into a soft break. Formerly every single line break was treated as paragraph separation.

Features

  • clipboard: Improved line to paragraph/soft break retention when pasting as plain text. Closes #7884. (commit)
  • utils: Added a user-agent check for the Blink engine to the env module. (commit)
  • Introduced the PastePlainText feature that detects pasting with ctrl/cmd + shift + v keystroke. Closes #7799. (commit)

Bug fixes

  • clipboard: Soft breaks are now properly placed in the plain text clipboard data representation by the editor. Closes #8045. (commit)
  • engine: model.History#getOperations was returning incorrect values if history had operations with negative version numbers or version numbers differing by more than one. Closes #8143. (commit)
  • image: Aligned and fixed the styling for the split button in the ImageInsert dropdown. Closes #7986, #7927. (commit)
  • link: Manual decorators will no longer be corrupted by the link image plugin. Closes #7975. (commit)
  • link: Prevented throwing an error when creating a link from a multi-block selection. Closes #7907. (commit)
  • link: Pressing the Enter key should not throw an error when a non-collapsed selection ends with a valid URL. Closes #7983. (commit)
  • link: The link balloon positioning should be correct when the selection is collapsed in some rare cases. Closes #7926. (commit)
  • list: List styles plugin will no longer cause the editor to crash when indenting a list item that is the last element in the editor. Closes #8072. (commit)
  • list: Undo will restore a proper value of the list-style-type attribute in the view element after undoing list merge. Closes #7930. (commit)
  • list: Fixed a bug that prevented using the same list style for nested lists. Closes #8081. (commit)
  • list: The listStyle attribute should be inherited when inserting or replacing a listItem with the same kind of the list (the listType attribute for the inserted/modified item is equal to next/previous sibling list). Closes #7932. (commit)
  • list: When removing the content between two lists items, the lists will be merged into a single list. The second list should adjust its listStyle attribute to the first list. Closes #7879. (commit)
  • paste-from-office: Fixed pasting a list with an empty item from Google Docs. Closes #7958. (commit)

Other changes

  • cloud-services-core: Change tokens refreshing mechanism to depend on the token expiration time. (commit)
  • image: The config.image.upload.panel.items does not need to be set anymore in order to show the "insert image via URL form". It is enough to load the new ImageInsert plugin and use the new imageInsert button. See #8034. (commit)
  • image: Introduced ImageInsert as a standalone plugin that contains ImageUpload functionality. Closes #7890. (commit)
  • image: The ImageUploadPanelView form label should change depending on whether the image is selected or not. Closes #7878. (commit)
  • link: The link plugin now comes with the autolink feature enabled by default. Closes #7682. (commit)
  • theme-lark: Balloon panel arrows pointing south should have realistic shadows. Closes #7928. (commit)
  • Updated translations. (commit, commit)

Released packages

Check out the Versioning policy guide for more information.
...

Read more

v22.0.0

27 Aug 12:31
Compare
Choose a tag to compare

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 of DowncastHelpers takes a DowncastConversionApi instance instead of a DowncastWriter. An example migration snippet can be found in a GitHub comment. See #7334.
  • engine: The config.model callback of UpcastHelpers takes a UpcastConversionApi instance instead of a ModelWriter. 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 using config.view = /[\s\S]+/ value.

MINOR BREAKING CHANGES ℹ️

  • table: The tableCell model element brought by the TableEditing plugin is no longer an object (SchemaItemDefinition#isObject) in the Schema 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() and DataController#get() are now available in downcast conversion under conversionApi.options object. Closes #7628. (commit)
  • engine: Added conversion API to upcast and downcast helpers. Closes #7334. (commit)
  • engine: Introduced SchemaItemDefinition#isSelectable and SchemaItemDefinition#isContent properties. Closes #6432. (commit)
  • engine: Introduced new upcast ConversionApi helper methods - conversionApi.safeInsert() and conversionApi.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 a Rect instance containing all the rectangles passed as argument. Closes #7858. (commit)
  • utils: Introduced the passive option support in the DomEmitterMixin#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

Read more

v21.0.0

29 Jul 12:28
Compare
Choose a tag to compare

Release highlights

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

This release packs quite a few all around improvements, including:

We fixed also a handful of bug fixes, for example:

Finally, we also took care of some developer experience-oriented improvements:

Please note that there are some major breaking changes, be sure to review them before upgrading.

Blog post link coming soon…

Collaboration features

The CKEditor 5 Collaboration features changelog can be found here: https://ckeditor.com/collaboration/changelog.

MAJOR BREAKING CHANGES ℹ️

  • The editor.setData() method now clears the undo and redo stacks.
  • engine: The Text#is() and TextProxy#is() methods (in the model and view) now expect to be called with '$text' instead of 'text' and '$textProxy' instead of 'textProxy'.
  • engine: The is() method (e.g. Element#is(), Text#is(), AttributeElement#is() or ContainerElement#is()) in both, the model and the view, no longer treats the first argument as an element name. To check the element's name use the second argument instead (node.is( 'element', 'paragraph' ) instead of node.is( 'paragraph' )).
  • engine: Marker conversion to data has been revamped. The data format changed, the new conversion helpers were introduced and a new rule has been implemented that a comma (,) is not allowed in a marker name. See the GitHub issue for a walkthrough and example migration path.
  • engine: The DomConverter#getParentUIElement() method was renamed to DomConverter#getHostViewElement() because now it supports both UIElement and RawElement (see #4469).

MINOR BREAKING CHANGES ℹ️

  • engine: The bindTwoStepCaretToAttribute() utility function has been removed. Use editor.plugins.get( TwoStepCaretMovement ).registerAttribute() instead.
  • table: The findAncestor() utility function was removed.
  • table: The parameters of TableUtils#createTable() has changed. Use options object to pass number of rows and columns.
  • table: The removeEmptyRows() and removeEmptyRowsColumns() utility functions does not require the batch parameter any more.
  • table: The downcastTableHeadingRowsChange() downcast converter has been removed. It is no longer possible to override headingRows attribute change in a single converter. This behavior can be customized using a table downcast converter. See #7601.

Features

  • autoformat: Block autoformat can also be triggered in blocks other than a paragraph. Closes #6170. (commit)
  • autoformat: Enabled autoformat feature also for blocks that are not empty. (commit)
  • engine: Implemented the view RawElement. Added the DowncastWriter#createRawElement() method. Closes #4469. (commit)
  • engine: The method DataController#set() is now decorated so plugins can listen to editor.setData() calls. (commit)
  • engine: Introduced a new marker conversion helpers that produce semantic HTML data output. See DowncastHelpers#markerToData() and UpcastHelpers#dataToMarker(). Closes #7556. (commit)
  • engine: Added model Position#findAncestor() and Element#findAncestor() methods. Closes #3233. (commit)
  • engine: Changed the visibility scope of Mapper#findPositionIn() from private to public. (commit)
  • engine: Added Range#getJoined() method for joining ranges. (commit)
  • image: Introduced the UI for a manual image resizing via a dropdown or standalone buttons. Closes #5201. (commit)
  • image: Introduced the UI for restoring original image size. Closes #5197. (commit)
  • link: Added an icon indicating in the top-right corner of an image that informs the image is linked. Closes #7457. (commit)
  • link: Typing over the selected link will not remove the link itself. Instead, the typed text will replace the link text. Closes #4762. (commit)
  • link: Added the AutoLink feature which replaces a plain text with a link if typed or pasted content is the link. Closes #4715. (commit)
  • page-break: Added support for pasting page breaks from MS Word. Closes #2508. (commit)
  • table: Added option to set heading rows and columns for insertTable command and TableUtils#createTable(). Closes #6768. (commit)
  • typing: Introduced the TwoStepCaretMovement plugin. See [#74...
Read more

v20.0.0

24 Jun 12:44
Compare
Choose a tag to compare

Release highlights

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

This release brings some highly anticipated features:

New features were also accompanied by a set of bug fixes, to name a few:

TODO: Add a link to the blog post.

Collaboration features

The CKEditor 5 Collaboration features changelog can be found here: https://ckeditor.com/collaboration/changelog.

MAJOR BREAKING CHANGES ℹ️

MINOR BREAKING CHANGES ℹ️

  • table: The TableNavigation plugin was renamed to TableKeyboard.
  • table: The values returned by the TableWalker iterator have changed. See #6785.
  • widget: Removed the getWidgetTypeAroundPositions() helper since the "Insert new paragraph" buttons are now visible regardless of the widget location in the document
  • The isTableWidget() and toTableWidget() utility functions were removed.
  • The functions getSelectedTableWidget() and getTableWidgetAncestor() from table/utils module were moved to the table/utils/widget module.
  • The functions getSelectedTableCells(), getTableCellsContainingSelection(), getSelectionAffectedTableCells(), getRowIndexes(), getColumnIndexes(), and isSelectionRectangular() from table/utils module were moved to table/utils/selection module.
  • The functions getVerticallyOverlappingCells(), splitHorizontally(), getHorizontallyOverlappingCells(), and splitVertically() from table/utils module were moved to table/utils/structure module.
  • The functions findAncestor(), updateNumericAttribute(), createEmptyTableCell(), and isHeadingColumnCell() from table/commands/utils module were moved to table/utils/common module.
  • The functions getSingleValue() and addDefaultUnitToNumericValue() from table/commands/utils module were moved to table/utils/table-properties module.
  • The functions cropTableToDimensions() and trimTableCellIfNeeded() from table/tableselection/croptable module were moved to table/utils/structure module.
  • The functions repositionContextualBalloon(), getBalloonTablePositionData(), and getBalloonCellPositionData() from table/ui/utils module were moved to table/utils/ui/contextualballoon module.
  • The functions getBorderStyleLabels(), getLocalizedColorErrorText(), getLocalizedLengthErrorText(), colorFieldValidator(), lengthFieldValidator(), lineWidthFieldValidator(), getBorderStyleDefinitions(), fillToolbar(), and getLabeledColorInputCreator() from table/ui/utils module were moved to table/utils/ui/table-properties module.
  • The defaultColors constant from table/ui/utils module was moved to table/utils/ui/table-properties module.

Features

  • link: Introduced the linking images feature. Closes #7330. (commit)
  • link: Introduced the LinkImageUI plugin that brings a UI to wrap images in links. Closes #7331. (commit)
  • link: A fake caret (selection) should be displayed in the content when the link input has focus and the browser does not render the native caret (selection). Closes #4721. (commit)
  • link: Introduced the config.link.defaultProtocol option for adding it automatically to the links when it's not provided by the user in the link form. Closes #4858. (commit)
  • theme-lark: Added styles for the fake link caret (selection) (see #4721). (commit)
  • theme-lark: Added styles for a "fake caret" brought by the WidgetTypeAround plugin (see #6693). (commit)
  • typing: Created a public isNonTypingKeystroke() helper (see #6693). (commit)
  • upload: Introduced the config.simpleUpload.withCredentials request configuration. Closes #7282. (commit)
  • utils: Created isArrowKeyCode(), getLocalizedArrowKeyCodeDirection(), and isForwardArrowKeyCode() helpers (see #6693). (commit)
  • widget: Implemented keyboard support for inserting paragraphs around block widgets using a "fake horizontal caret" (WidgetTypeAround). Both "Insert new paragraph" buttons are now always displayed for all block widgets regardless of their location in the document. Closes #6693, #6825, #6694. (commit)

Bug fixes

  • autoformat: Autoformatting should not occur inside an existing text with a model code attribute. Closes #1239. (commit)
  • engine: The editor should not crash when the initial data includes HTML comments. Closes #5734. (commit)
  • engine: The model selection post-fixer should not set a new selection if the ranges before and after post-fixing are the same (see #6693). (commit)
  • engine: Backspace will no longer change the type of the trailing block. Closes #6680. (commit)
  • font: The Font Family feature should apply the complete family value from the configuration when config.fontFamily.supportAllValues is true. Closes #7285. (commit)
  • image: The widget toolbar won't be shown if an empty collection of items was provided in the editor's configuration. Closes #5857. (commit)
  • image: The src and alt attributes for the image element will be always added to the editor's data. Even if they are empty. Closes #5033. (commit)
  • table: Table multi-cell selection shoul...
Read more

v19.1.1

01 Jun 07:59
Compare
Choose a tag to compare

Bug fixes

Released packages

Check out the Versioning policy guide for more information.

Released packages (summary)

Other releases:

v19.1.0

27 May 09:02
Compare
Choose a tag to compare

Release highlights

We are happy to announce the release of CKEditor 5 v19.1.0.

This release further refines the table plugin, brings a helper for convenient typing in tight places before or after widgets and brings a major change in our code infrastructure. Most notable enhancements are:

But we did not stop there, as the release comes with several bug fixes too:

Read more in the blog post: https://ckeditor.com/blog/CKEditor-5-v19.1.1-with-table-enhancements-typing-around-widgets-and-print-to-PDF-feature/

Collaboration features

The CKEditor 5 Collaboration features changelog can be found here: https://ckeditor.com/collaboration/changelog.

MINOR BREAKING CHANGES ℹ️

  • media-embed: The MediaEmbedUI#form property was removed from the API.
  • table: The cropTable() utility method was removed. Use the cropTableToDimensions() instead.
  • theme-lark: A new --ck-color-focus-border-coordinates CSS custom property has been added and the existing --ck-color-focus-border property now uses it internally. If your integration overrides the latter, we recommend you update the former to avoid compatibility issues with various editor UI features.

Features

  • paragraph: Implemented the InsertParagraphCommand registered as 'insertParagraph' in the editor. Closes #6823, #7229. (commit)
  • table: Introduced support for pasting tables into a selected table fragment. Closes #6120. (commit)
  • table: Introduced table cells selection using keyboard. Closes #6115, #3203. (commit)
  • theme-lark: Brought styles for the feature allowing users to type in tight spots around block widgets (see #407). (commit)
  • widget: Brought the feature allowing users to type in tight spots around block widgets where web browsers do not allow the caret to be placed (see #407). Closes #6740, #6688, #6689, #6695. (commit)

Bug fixes

  • cloud-services: A Token instance will be destroyed by the CloudServices context plugin. Closes #7248. (commit)
  • code-block: Fixed conversion of some entities (like  , &) in a code block. Closes #5901. (commit)
  • media-embed: Made it possible to use the mediaEmbed button more than once (in more than one toolbar. Closes #6333. (commit)
  • media-mebed: The media widget conversion will no longer discard widget internals (drag or resize handlers, buttons to insert paragraphs, etc.) injected by other features when converting the URL (see #407). (commit)
  • table: Setting the column as a header will now properly split col-spanned cells. Closes #6658. (commit)
  • table: The table properties balloon should always be visible if the table is bigger than a visible viewport. Closes #6190. (commit)
  • table: When the state is restored or the user enters color value manually, the color input will now properly match color label (if any is available). Closes #6791. (commit)
  • table: The editor will not crash when removing columns next to row-spanned cells. Closes #6789. (commit)
  • table: The table properties button should not be enabled if all the property commands are disabled. Closes #6679. (commit)
  • table: Table heading rows should be properly updated after removing rows as a side effect of merging cells. Closes #6667. (commit)
  • table: Empty table rows are properly handled during conversion and layout post-fixing. Closes #3274. (commit)
  • table: Shift+click will now use an anchor cell if there is any. Closes #6453. (commit)
  • table: Fixed insert table row/column commands when a widget is selected inside of a table cell. Closes #6607. (commit)
  • table: Table keyboard navigation should not alter the native Shift+Arrow behavior inside of a table cell. Closes #6641. (commit)
  • table: Merging cells no longer wraps the text in a <span> element rather than paragraph in a certain scenario. Closes #6260. (commit)
  • widget: The widget toolbar should always be visible even if the widget is bigger than a visible viewport (see #6190). (commit)

Other changes

  • mention: Renamed the MentionAttribute._uid to a MentionAttribute.uid as it needs to be used by integrators when implementing custom converters. Closes ...
Read more

v19.0.0

29 Apr 11:26
Compare
Choose a tag to compare

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

This release is focused on further improving the table selection plugin and includes following the enhancements:

We also introduced support for plural forms in our translation API, added the select all feature and created the supportAllValues option to preserve any font family or size value.

We also did several performance tweaks to improve CKEditor 5 data processing and rendering time.

A few bugs have been fixed, most notably:

Finally, this release comes with some important breaking changes. The most notable ones are:

  • Make sure the latest version of the Essentials plugin or the SelectAll plugin is installed in your integration. Either is required for proper keystroke handling in editor widgets.
  • The format of stored editor translations changed. If you use window.CKEDITOR_TRANSLATIONS, see #334.
  • The translate() function from the translation-service was marked as protected. See #334.
  • The getPositionedAncestor() helper will no longer return the passed element when it is positioned.
  • The ViewCollection no longer has the locale property.
  • The ViewCollection#constructor() no longer accepts the locale parameter.
  • The LabeledView component was renamed to LabeledFieldView. Also, its instance of a labeled component's view is available through LabeledFieldView#fieldView. It replaced LabeledView#view.
  • The DropdownView#focusTracker property was removed as it served no purpose.
  • From now on, the SpecialCharactersNavigationView is an instance of the FormHeaderView and unnecessary SpecialCharactersNavigationView#labelView was removed.
  • The env.isEdge property was removed. See ckeditor/ckeditor5#6202.

Check the list of packages below to learn more about these and other minor breaking changes.

Blog post coming soon...

Collaboration features

The CKEditor 5 Collaboration features changelog can be found here: https://ckeditor.com/collaboration/changelog.

Dependencies

New packages:

Major releases (contain major breaking changes):

Major releases (contain minor breaking changes):

Major releases (dependencies of those packages have breaking changes):

Read more

v18.0.0

19 Mar 13:53
Compare
Choose a tag to compare

We are happy to announce the release of CKEditor 5 v18.0.0. This release introduces support for selecting multiple table cells, rows or columns and it improves structure retention for lists pasted from Microsoft Word.

We also modified our builds to include the text transformation plugin and enabled toolbar item grouping for the inline editor and balloon editor builds.

As usual, we also fixed a couple of bugs and improved existing features, mostly in the table plugin.

Finally, this release comes with a couple of important breaking changes. The most notable ones are:

  • Constructor for EditingController, DataController and View classes now require a StylesProcessor instance.
  • Constructor for DomConverter, HtmlDataProcessor and XmlDataProcessor classes and the createViewElementFromHighlightDescriptor() function now require an instance of view document.
  • The #document getter was removed from model nodes.
  • The GFMDataProcessor() requires the view document instance as its first parameter.
  • The BalloonToolbar plugin now groups the overflowing items by default.

Check the list of packages below to learn more about above and other minor breaking changes.

Blog post coming soon...

Collaboration features

The CKEditor 5 Collaboration features changelog can be found here: https://ckeditor.com/collaboration/changelog.

Dependencies

Major releases (contain major breaking changes):

Major releases (contain minor breaking changes):

Major releases (dependencies of those packages have breaking changes):

Read more

v17.0.0

20 Feb 12:22
Compare
Choose a tag to compare

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

From the end user perspective, this release introduces support for styling tables and table cells as well as a new special characters picker feature. We also worked on improving the editor initialization and data processing performance.

From the developer perspective, we added support for editor contexts, adjusted the watchdog to work with editor contexts (which introduced breaking changes in that package) and introduced an extensible system for parsing and normalizing CSS properties which main goal was to make the editor better pick up certain style names in pasted/loaded content.

As usual, we also fixed a couple of bugs and improved existing features. The two features which got most improvements are image resizing and the restricted editing feature.

Finally, this release comes with a couple of important breaking changes. The most notable ones are:

Check the list of packages below to learn more about other breaking changes.

Read more in the blog post: https://ckeditor.com/blog/CKEditor-5-v17.0.0-with-table-styles-special-characters-and-performance-improvements/.

Collaboration features

The CKEditor 5 Collaboration features changelog can be found here: https://ckeditor.com/collaboration/changelog.

Dependencies

New packages:

Major releases (contain major breaking changes):

Major releases (contain minor breaking changes):

Releases containing new features:

Other releases:

Read more