Skip to content

Releases: ckeditor/ckeditor5

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:

v35.0.0

03 Aug 07:16
Compare
Choose a tag to compare

Release highlights

We are happy to announce the release of CKEditor 5 v35.0.0 that contains a security fix for the Markdown GFM, HTML support and HTML embed packages. Even though this issue affects only a narrow group of integrators, an upgrade is highly recommended! You can read more details in the relevant security advisory and contact us if you have more questions.

This release introduces the following new features:

  • Various accessibility improvements.
  • The styles dropdown feature is now integrated with track changes.
  • The @ckeditor/ckeditor5-utils package is now written in TypeScript.
  • We have updated and corrected translations. 39 languages are now fully covered by professional translators.

Read more in: https://ckeditor.com/blog/ckeditor-5-v35.0.0-with-collaboration-and-typescript-migration/

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

MAJOR BREAKING CHANGES ℹ️

  • The source element is not updated automatically after the editor destroy.

MINOR BREAKING CHANGES ℹ️

  • engine: The DomConverter#viewToDom() and DomConverter#viewChildrenToDom() parameter lists have changed (the 2nd parameter – the DOM document instance is no longer accepted).
  • image: The ImageInsertPanelView#dropdownView property is no longer accessible. Use editor.plugins.get( 'ImageInsertUI' ).dropdownView instead to access the image insert dropdown instance. See #11654.
  • ui: Before, preventDefault() was called on the mousedown event to prevent the ButtonView class from "stealing" the focus from the editing root. Starting this release, to improve the accessibility of the editor, all instances of the ButtonView class (and its child classes) will automatically focus in DOM when clicked. It is recommended for features using buttons to manage the content to call editor.editing.view.focus() after the button was executed in order to bring the DOM focus back to the editing root to allow users type right away.

Features

Bug fixes

  • ckbox: Replaced the CloudServicesCore requirement in favor of the CloudServices plugin for CKBox. Closes #12040. (commit)
  • editor-balloon: The editing area of the editor should have a clear accessible label. Closes #11836. (commit)
  • engine: The editor should not crash while making a selection after having a collapsed selection with styles applied. Closes #12026. (commit)
  • image: Allowed setting an accessible label in the toWidgetEditable() helper. Added missing labels for assistive technologies to image captions. Closes #11837. (commit)
  • link: Link manual decorators should be properly down-casted on the document selection. Closes #12046. (commit)
  • revision-history: Fixed a bug where custom plugins were filtered out from revision history preview if they required the track changes plugin.
  • table: Added a proper label for color buttons in the table properties panel so that it is available for screen readers. Closes #11895. (commit)
  • track-changes: A suggestion will be discarded from document data if the TrackChangesAdapter#addSuggestion() method has errored.
  • ui: The default value of the aria-pressed DOM attribute of a toggleable button should be false instead of undefined. Closes #11115. (commit)
  • ui: Opening a dropdown should focus the first item (or the first active item) for easier navigation and accessibility. Closes #11838, #2000, #11568, #3215, #5859. (commit)

Other changes

  • engine: The DomConverter should use a separate DOM document instance in the data pipeline. (commit)
  • image: Introducing the ImageInsertViaUrl plugin enabling insertion of images via URL without the requirement of the UploadPlugin. Closes #11654. (commit)
  • style: StyleCommand#execute() now expects to be passed an object with properties styleName and optional forceValue instead of a single string. (commit)
  • utils: The utils package is now written in TypeScript. (commit)
  • Updated 38 translations to 100%. (commit, commit, 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:

Read more