Skip to content

Releases: ckeditor/ckeditor5

v36.0.1

07 Feb 08:30
Compare
Choose a tag to compare

Release highlights

This is a patch release that resolves two recent issues:

  • The broken release to npm of the @ckeditor/ckeditor5-highlight package. We mistakenly published TypeScript source next to JavaScript files and that breaks some setups, making it harder to integrate the v36.0.0 of CKEditor 5 in your systems. See #13373 for more details.
  • The performance regression in drag&drop of images on the newest version of Firefox (109.0.1). This is an issue caused by a change in Firefox itself and while Firefox’s team plans to revert it, we want to ship the workaround as soon as possible to you. See #13366 for more details.

Bug fixes

Released packages

Check out the Versioning policy guide for more information.

Released packages (summary)

Other releases:

Read more

v36.0.0

25 Jan 08:33
Compare
Choose a tag to compare

Release highlights

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

  • Faster editor load time thanks to delayed dropdown initialization.
  • Improved performance when the editor includes the table column resize plugin.
  • Improved inline annotations positioning.
  • Configurable special characters categories order.
  • Vite integration.

Please refer to the update guide to learn more about these changes.

MAJOR BREAKING CHANGES ℹ️

  • core: The EditorUI class was moved from @ckeditor/ckeditor5-core to @ckeditor/ckeditor5-ui.

MINOR BREAKING CHANGES ℹ️

  • The addToolbarToDropdown() and addListToDropdown() helpers create content panels on the first dropdown open. Make sure that you access the dropdown panel after the dropdown is open. See #12890.
  • Toolbar views are filled with items on the first appearance. Make sure that you access toolbar items after the toolbar is visible. See #12890.
  • Contextual balloon panels are created on the first appearance. See #12890.

Features

Bug fixes

  • engine: Markers that are next to an auto-paragraphed text nodes will be moved to the new paragraph together with the text. (commit)
  • engine: Fixed focus handling issue which happened on Chrome after a nested editable was clicked. (commit)
  • engine: Fixed markers that were not properly set on list items and on elements in table cells, resulting in losing comments and suggestions after re-loading the document. Closes #13285. (commit)
  • find-and-replace: Disabled the find and replace popup in source mode. Closes #12939. (commit)
  • import-word: Enabled the .dotx extension in the file dialog.
  • list: The default list marker for an unordered list should be disc (instead of circle). Closes: #13206. (commit)
  • list: Fixed markers that were not properly set on list items and on elements in table cells, resulting in losing comments and suggestions after re-loading the document. Closes #13285. (commit)
  • paste-from-office: Fixed pasting images from MS Word 2016. Closes #11993. (commit)
  • table: Table and table cell property commands should not be called before changing any value to avoid creating unnecessary suggestions in the track changes mode. Closes #13262. (commit)
  • table: The editor should not crash on getData() call if the PlainTableOutput plugin is used with the TableColumnResize feature. Closes #13164. (commit)
  • table: Fixed markers that were not properly set on list items and on elements in table cells, resulting in losing comments and suggestions after re-loading the document. Closes #13285. (commit)
  • track-changes: Indent and outdent suggestions made on block images in document lists are now working correctly when accepted.
  • track-changes: Suggestions are now correctly highlighted after typing inside the deletion suggestion.

Other changes

  • ckfinder: Set a correct value (false) for CKFinderCommand#affectsData. Now, the command's state depends only on related commands (insertImage and link). Closes #13213. (commit)
  • core: Moved the EditorUI class from @ckeditor/ckeditor5-core to @ckeditor/ckeditor5-ui. Closes #12853. (commit)
  • image: Encapsulated image replacement into a command. Closes #13217 . (commit)
  • image: Added ReplaceImageSourceCommand which encapsulates current image URL replacement logic. Closes #13217. (commit)
  • list: Raised the list item reconversion priority to 'high'. Closes #13290. (commit)
  • table: The table properties views are now created on the first open to boost editor startup time. See #12890. (commit)
  • table: Improved performance when the editor includes the table column resize plugin. Closes #13097. (commit)
  • track-changes: Prepared more informative labels for list outdent suggestions when an item is removed from the list.
  • **[ui](https://w...
Read more

v35.4.0

13 Dec 08:24
Compare
Choose a tag to compare

Release highlights

We are happy to announce the release of CKEditor 5 v35.4.0.

  • Allow list indexing to start from 0.
  • Added track changes integration for lists, document list properties, and table resize features.
  • Introduced the trackChanges.trackFormatChanges configuration property which can be used to disable tracking of format changes.
  • Added an option for dynamic filenames in the editor’s configuration for PDF/Word export.
  • More editor packages migrated to TypeScript.

Read about release highlights in a dedicated blog post: https://ckeditor.com/blog/ckeditor-5-v35.4.0-with-track-changes-expansions--and-better-control-over-the-pdf-and-word-converters/

MINOR BREAKING CHANGES ℹ️

  • engine: HtmlDataProcessor skips HTML comments by default. Set its skipComments property to false to retain comments (or use the HtmlComment plugin).

Features

  • image: Upcast the <img> element with the display:block style as a block image. Closes #12811. (commit)
  • lists: Allow list indexing to start from 0. Closes #12827. (commit)
  • track-changes: Added track changes integration for lists, document list properties, and table resize features.
  • track-changes: Introduced the trackChanges.trackFormatChanges configuration property which can be used to disable tracking of format changes.

Bug fixes

  • clipboard: Replace a tab with four spaces when pasting data from clipboard. Closes #12806. (commit)
  • comments: It is no longer necessary to make two mouse clicks to move the selection if the annotation in a wide sidebar was focused before.
  • comments: Long user names will no longer break annotations styling in inline and narrow sidebar display modes.
  • comments: Comment view should not lose focus or hide after clicking the cancel icon in the deletion confirmation box.
  • comments: Removing a comment thread imported from a Word file with at least one reply, no longer results in an error where only the first comment was removed instead of the whole thread.
  • engine: Fixed a bug which in some scenarios caused rendering with an outdated selection state when the editor was focused (on Chromium browsers). Closes #12967. (commit)
  • engine: The Model#insertObject() method should not crash when attempting to set a selection after inserting an inline element. Closes #12809. (commit)
  • html-support: Markers should not be lost while upcasting a plain table (without the <figure> element). (commit)
  • html-support: Basic styles formatting now works well with the remove format feature. Closes #12626. (commit)
  • real-time-collaboration: In some scenarios the document content was not updated by remote changes until the editor was focused.
  • special-characters: The special character label in dropdown should be updated when navigating with keyboard. Closes #12393. (commit)
  • special-characters: Special characters form a header should use a heading markup. Closes #12464. (commit)
  • table: The table width and height attributes should be upcasted from the <figure> element if it exists. Closes #12812. (commit)
  • Table: Improved the label positioning in RTL editor mode in the insert table dropdown. Closes #12833. (commit)
  • track-changes: Fixed editor crash when the TrackChangesData plugin was used with some editor configurations including real-time collaboration plugins.
  • track-changes: Fixed editor crash when the TrackChangesData plugin was used with pagination plugin.
  • track-changes: Fixed various incorrect scenarios related to the document list integration with track changes.
  • track-changes: Use all ranges in the markMultiRangeFormatBlock suggestion accept.
  • track-changes: Fixed the editor crash when the document list properties config is overwritten.
  • ui: The keyboard navigation in grid dropdowns should not be reversed in RTL editor. Closes #12871. (commit)
  • ui: The split button divider should stretch to the edges of the button. Closes #10936. (commit)
  • widget: Screen readers should now read the keyboard shortcuts to type around a widget. Closes #11936. (commit)

Other changes

  • engine: The HtmlDataProcessor exposes an option to skipComments. Closes #12813. (commit)
  • enter: Made the enterBlock() helper publicly accessible through EnterCommand#enterBlock(). Closes #12885. (commit)
  • export-pdf: Added support for callbacks in the fileName configuration option.
  • export-word: Added support for callbacks in the fileName configuration option.
  • import-word: Imported comments will keep only basic styling by default. This behavior can be changed using the new importWord.commentsStyles config property.
  • list: Added access to list-related utils functions through the new ListUtils plugin to make it possible to use them in other packages. (commit)
  • list: Added access to list-related utils functions through the new DocumentListUtils and DocumentListPropertiesUtils plugins to make it possible to use them in other packages. (commit)
  • **[table](https://www.npmjs.com/package/@ckeditor/ckeditor5...
Read more

v35.3.2

22 Nov 08:20
Compare
Choose a tag to compare

Bug fixes

  • engine: Improved support for dictation (via VoiceControl) on iOS and multi-line text replacements on macOS. Closes #2045, #11443. (commit)

Released packages

Check out the Versioning policy guide for more information.

Released packages (summary)

Other releases:

v35.3.1

14 Nov 08:17
Compare
Choose a tag to compare

Release highlights

Due to a vulnerability issue in the socket.io-parser package (CVE-2022-2421) used by packages to offer real-time collaboration services, we strongly advise updating to the latest CKEditor 5 version if your integration includes one of the following features:

Bug fixes

  • import-word: The Import from Word feature should accept a function specified in the configuration as importWord.tokenUrl.

Released packages

Check out the Versioning policy guide for more information.

Released packages (summary)

Other releases:

v35.3.0

03 Nov 08:21
Compare
Choose a tag to compare

Release highlights

We are happy to announce the release of CKEditor 5 v35.3.0.

This release introduces the following new features:

There were also bug fixes:

  • External comments are no longer assigned to the user who imported them. Im means these are not editable by them and do not behave like they were created by that user (e.g. they do not join with other suggestions created by them).
  • Tooltips handling has been improved to better follow user interface events.
  • Fixed incorrect annotations order in the sidebar when a comment or a suggestion was set on a multi-line text (and in similar cases).

Read about release highlights in a dedicated blog post: https://ckeditor.com/blog/ckeditor-5-v35.3.0-with-a-revamped-typing-and-ime-handling-better-external-annotations-handling/

MINOR BREAKING CHANGES ℹ️

  • clipboard: The DataTransfer class has been moved to the @ckeditor/ckeditor5-engine package.
  • track-changes: The SuggestionDescriptionFactory#getItemLabel() method now takes element object instead of an element name.
  • track-changes: The SuggestionDescriptionFactory#registerElementLabel() method now requires a second parameter to be a function (before, strings were also accepted). This may affect you if you provide custom plugins and use the track changes feature.
  • The input command is now deprecated, you should use the insertText command instead. See #11438.

Features

  • engine: Typing and text composition (IME) support has been refactored to use beforeInput DOM events instead of DOM mutations and keystrokes. Closes #11438. (commit)
  • enter: Typing and text composition (IME) support has been refactored to use beforeInput DOM events instead of DOM mutations and keystrokes. Closes #11438. (commit)
  • track-changes: Added track changes integration for document lists feature.
  • track-changes: Added track changes integration for table caption feature.
  • typing: Typing and text composition (IME) support has been refactored to use beforeInput DOM events instead of DOM mutations and keystrokes. Closes #11438. (commit)

Bug fixes

  • comments: Fixed incorrect annotations order in the sidebar when a comment or a suggestion was set on a multi-line text (and in similar cases).
  • comments: External comments (e.g., imported from a Word file) should not be editable by the user who imported them.
  • engine: The ModifySelection class with word unit should not stop at the attribute boundary. Closes #12673, #12657. (commit)
  • engine: Fixed conversion of the non-collapsed selection anchored between the <br> elements (in Safari). (commit)
  • table: The selection should not change when a table caption is turned off. (commit)
  • theme-lark: The SwitchButtonView's text and background color should stay the same regardless of the state because the toggle switch carries all the necessary information. Closes #12519. (commit)
  • track-changes: Fixed incorrect annotations order in the sidebar when a comment or a suggestion was set on a multi-line text (and in similar cases).
  • track-changes: External suggestions (e.g., imported from a Word file) should not behave like suggestions created by the user who imported them (e.g., should not join with other suggestions created by the user, etc.).
  • ui: A tooltip should also hide when the element it is attached to hides. Closes #12492. (commit)
  • ui: Improvements to the IconView component now allow rich colorful icons. Closes #12597, #12599. (commit)
  • ui: Preserved presentational attributes from the icon source on the <svg> element (#12597). (commit)
  • ui: It is possible to opt out from the icon color inheritance (#12599). (commit)
  • ui: Excluded icon internals from the CSS reset (#12599). (commit)
  • ui: UI tooltips should continue showing up until the last editor gets destroyed. Closes #12602. (commit)

Other changes

  • comments: Added additional visual information in comments and track changes annotations to emphasize that the author name comes from an external source.
  • comments: Introduced @external.source attribute for comments and suggestions to better inform what is the source of the external data. Improved related labels.
  • enter: The enter event is now mapped from a subset of beforeInput events. See #11438. (commit)
  • export-pdf: Support has been added for executing an asynchronous callback passed via the config.exportPdf.dataCallback configuration.
  • export-word: Support has been added for executing an asynchronous callback passed via the config.exportWord.dataCallback configuration.
  • track-changes: Introduced performance improvements for a scenario when undo is used after accepting or discarding a huge number of suggestions. Accepting or discarding many suggestions at once may now result in multiple undo steps.
  • **[track-changes](https://www.npmjs.com/package/@...
Read more

v35.2.1

11 Oct 07:13
Compare
Choose a tag to compare

Bug fixes

  • track-changes: Suggestions imported from Word file were not saved in the database.

Read about release highlights in a dedicated blog post: https://ckeditor.com/blog/ckeditor-5-v35.2.0-with-the-import-from-word-plugin-new-toolbar-functionality-and-annotations-performance-improvement/

Released packages

Check out the Versioning policy guide for more information.

Released packages (summary)

Other releases:

v35.2.0

05 Oct 07:11
Compare
Choose a tag to compare

Release highlights

We are happy to announce the release of CKEditor 5 v35.2.0.

This release introduces the following new features:

There were also bug fixes:

Read about release highlights in a dedicated blog post: https://ckeditor.com/blog/ckeditor-5-v35.2.0-with-the-import-from-word-plugin-new-toolbar-functionality-and-annotations-performance-improvement/

Please refer to the migration guide to learn more about these changes.

MINOR BREAKING CHANGES ℹ️

  • basic-styles: The bold icon has been moved to the @ckeditor/ckeditor5-core package.
  • comments: Introduced external comments and suggestions which require special handling when saving them in the database. This will concern you, if you use non real-time collaboration and the import from Word feature. Read more about it in the migration guide.
  • comments: The templates for CommentView and SuggestionThreadView have changed. This may concern you, if you use custom annotation views or templates and the import from Word feature.
  • paragraph: The paragraph icon has been moved to the @ckeditor/ckeditor5-core package.
  • Comment input editor is now initialized on demand instead of being created in the CommentInputView constructor and initialized on render. CommentInputView#editor is now null right after the instance is created. This may concern you, if you use custom comment views.
  • Annotations with targets set to markers or DOM elements inside the editor editable must now be registered in EditorAnnotations#registerAnnotation() after they are created. This will concern you, if you have a custom feature that creates Annotation instances inside the editor. This does not affect the comments outside the editor feature.

Features

  • comments: Introduced integration for the import from Word feature to handle comments and suggestion included in the imported Word file.
  • comments: Introduced support for comments and suggestions that come from an external source (e.g. an imported document). Annotations for these items will be labelled to differentiate them from regular comments and suggestions. To mark an annotation as external, set the @external attribute when creating a comment or a suggestion.
  • html-support: The General HTML Support (GHS) feature can exclude elements from the allowed list of elements. (commit)
  • import-word: Added a new package (@ckeditor/ckeditor5-import-word), that allows importing Word documents into CKEditor 5.
  • track-changes: Introduced integration for the import from Word feature to handle comments and suggestions included in the imported Word file.
  • track-changes: Introduced support for comments and suggestions that come from an external source (e.g. an imported document). Annotations for these items will be labelled to differentiate them from regular comments and suggestions. To mark an annotation as external, set the @external attribute when creating a comment or a suggestion.
  • ui: Allowed grouping toolbar items into drop-downs by using a declarative config. Closes #12490. (commit)

Bug fixes

  • comments: It is now possible to switch between annotations when multiple inline annotations are displayed in the contextual balloon.
  • engine: Fixed editor throwing the Maximum call stack size exceeded error when huge number of nodes were inserted at once into an element. Closes #12428. (commit)
  • html-support: Redefined most GHS-elements as not blocks in the schema. Closes #12430. (commit)
  • image: The image insertion pane should not be empty if opened with the arrow down keystroke. Closes #12215. (commit)
  • image: Alternative text button now indicates whether any value is applied. Closes #12268. (commit)
  • link: Fixed incorrect behavior when text before the auto-linked url was removed by pressing backspace. Previously, the removed text was reinserted on backspace press. Closes #12447. (commit)
  • link: Corrected autolinking URLs without a protocol given. Closes #11040. (commit)
  • list: Improved styles for indented lists. Closes #12179. (commit)
  • list: To-do list items should not interrupt the Tab key navigation across the editor content. Closes #6535. (commit)
  • list: List properties changes made on a list inside a container element (e.g. block quote) are now correctly propagated also to a list directly after that container. Closes #11082. (commit)
  • media-embed: The focus will move to the editor after inserting a media. Closes #12186. (commit)
  • pagination: Pagination should work correctly for blocks with inline elements and soft breaks.
  • paste-from-office: Extra line breaks should not be generated while pasting from Google Docs. Closes #10217. (commit)
  • **[table](https://...
Read more

v35.1.0

31 Aug 07:17
Compare
Choose a tag to compare

Release highlights

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

This release introduces the following new features:

  • Accessibility improvements.
  • Changes in the editor theme improve the UI.
  • The column resize feature has been improved.
  • Migration to TypeScript takes another step.

There were also bug fixes:

  • Fixed revision history crashes during various actions when the revision data contained <br> at the end of a block element (like <p>).
  • Fixed the focus after inserting an image - it is now moved to editable.

Read about release highlights in a dedicated blog post: https://ckeditor.com/blog/ckeditor-5-v35.1.0-with-an-updated-interface-table-improvements-and-more-typescript/

Please refer to the migration guide to learn more about these changes.

MINOR BREAKING CHANGES ℹ️

  • ui: The enableToolbarKeyboardFocus() helper has been removed. Please use the EditorUI#addToolbar() method instead to enable accessible toolbar navigation (and focusing) using the Alt+F10 and Esc keystrokes (see #10368).
  • ui: The TooltipView UI component has been removed. Please use the new tooltip API instead. Please note, that this change does not affect the integrations that configure tooltips using the ButtonView#tooltip property.
  • ui: The static properties of BalloonPanelView have been renamed. BalloonPanelView.arrowVerticalOffset is now heightOffset and BalloonPanelView.arrowHorizontalOffset is now sideOffset.

Features

  • core: Enabled toolbar focusing and navigation across various editor implementations and features. Closes #10368, #5146, #9906, #10025. (commit)
  • table: Added keyboard support for the table insertion dropdown. Closes #3176. (commit)
  • ui: Implemented a TooltipManager class to manage the UI tooltips across components and features. Closes #12067. (commit)
  • ui: Introduced the addKeyboardHandlingForGrid() helper to handle grid keyboard navigation. Closes #11851. (commit)

Bug fixes

  • font: Removed an unnecessary tooltip for the "Remove color" button. Closes #12277. (commit)
  • font: Fixed focus order for color grid in the font color and background drop-downs. Closes #11841. (commit)
  • highlight: Restored the correct functionality of the "Remove highlight" toolbar button. Closes #12265. (commit)
  • image: Fixed the focus after inserting an image - it is now moved to editable. Closes #12229. (commit)
  • image: Toggling an image or a table caption should focus the editing root. Closes #12165. (commit)
  • list: Unified focus handling and keyboard navigation in the list properties drop-downs. Closes #11041. (commit)
  • revision-history: Fixed revision history crashes during various actions when the revision data contained <br> at the end of a block element (like <p>).
  • special-characters: Added keyboard support to the special characters dropdown. Closes #9037. (commit)
  • theme-lark: Changed the color of the pressed button text or an icon to improve contrast. Improved the border contrast of inputs and editing roots. Improved the look of the focused state of switch buttons. Closes #1405, #11842. (commit)
  • table: Resizing a table with column count changed by another user no longer breaks the real-time collaboration. Closes #12325. (commit)
  • ui: Added a semantic attribute for marking the dropdown button as expanded. Closes #12258. (commit)

Other changes

  • engine: Rewriten the ckeditor5-engine package to TypeScript. Closes #11724. (commit)
  • utils: Introduced a new way to apply mixins. Instead of using the mix() util, classes should extend the base created by EmitterMixin(), ObservableMixin() and DomEmitterMixin() or extend Emitter or Observable directly. Closes #12077. (commit)
  • utils: Added support for typed events in EmitterMixin. Closes #12076. (commit)
  • Updated translations. (commit, commit)

Released packages

Check out the Versioning policy guide for more information.

Released packages (summary)

Major releases (contain major breaking changes):

Releases containing new features:

Read more

v35.0.1

03 Aug 08:06
Compare
Choose a tag to compare

Due to network issues, while publishing the CKEditor 5 packages, we deployed an empty @ckeditor/ckeditor5-utils package. To fix the problem, we decided to publish a new release marked 35.0.1.

Please read the changelog entries for the 35.0.0 version to learn about the latest CKEditor 5 release.

Released packages

Check out the Versioning policy guide for more information.

Released packages (summary)

Other releases: