Skip to content

Releases: ckeditor/ckeditor5

v37.0.1

05 Apr 11:39
Compare
Choose a tag to compare

Release highlights

There was an invalid version of the ckeditor5-collaboration dependency in the following packages:

Due to that and the CKEditor 5 versioning policy, we release all packages once again.

Check out the highlights of the v37.0.0 original release.

Released packages

Check out the Versioning policy guide for more information.

Released packages (summary)

Other releases:

v37.0.0

05 Apr 08:11
Compare
Choose a tag to compare

Release highlights

We are excited to announce that CKEditor 5 has been completely migrated to TypeScript, making v37.0.0 the first major release with full TypeScript support. This migration has brought numerous improvements, including better code organization and enhanced stability:

  • Full TypeScript support: CKEditor now supports TypeScript in all its packages, making it easier for developers to write type-safe code and provide better code completion and error checking in IDEs.
  • Improved code quality: The migration to TypeScript has allowed us to improve the overall code quality of CKEditor, resulting in better stability and performance.
  • Better documentation: With TypeScript, we have been able to provide comprehensive and accurate type definitions for all the components in CKEditor, making it easier for developers to understand and use the API.
  • Enhanced developer experience: TypeScript provides better tooling support, including code completion and error checking, which improves the overall developer experience.

Feel free to check our documentation to find out more about the Using CKEditor 5 with a TypeScript setup and read the migration guide.

We believe this release will be a significant milestone for CKEditor 5 and will provide a better development experience for our users. Please try it out and let us know your feedback by leaving a comment in this issue.

Comments archive

We are excited to introduce the Comments Archive feature. It provides a way to archive comments that are no longer relevant, reducing clutter and making it easier to focus on the most important feedback. Users can access the archive from the toolbar and use the comments archive dropdown to view and restore archived comments if necessary. This new feature will help simplify the feedback management process for our users.

Multi-root editor

In this release, we added official support for multi-root editor type and a new multi-root editor build. Additionally, we bring some fundamental improvements that make the multi-root editor more flexible and useful!

  • Add and detach document roots. The multi-root editor will allow you to add or remove editing fields in your application in a dynamic fashion (i.e. after the editor was initialised), without the need to create additional editor instances.
  • The multi-root editor will allow you to use root attributes to store additional metadata related to roots (editable fields). You can change these attributes and obtain them when you save the document data. Finally, you can react to these changes to alter how your application looks or behaves. Root attributes are a tool that will help you customize the editing experience further according to your needs. To take advantage of root attributes, you will need to provide a custom feature. As of now, there are no official plugins that would require saving and using the attributes of the root.

The multi-root editor is still a project in progress!

While the new predefined build is readily available, several features are not yet supported in the multi-root editor as of this release. These include: revision history, pagination, PDF/Word export, table resize, word count, HTML comments, full-page editing, title, mini-map, and the Cloud Services editor bundle. We will work on bringing support for these features in upcoming releases.

Other than that we look forward to sharing with you guides that will better explain how you can use these new improvements!

Tables

We expanded the General HTM Support feature with support for the <colgroup>’s and <col>’s attributes. We significantly refactored how these HTML elements are handled by the editor. They are now legit elements in the model instead of being kept as a <table> attribute.

MAJOR BREAKING CHANGES ℹ️

  • Upgraded the minimal versions of Node.js to 16.0.0 due to the end of LTS.

MINOR BREAKING CHANGES ℹ️

  • table: The table columns' widths are stored as model elements instead of a model element attribute. See #11479.
  • The @ckeditor/ckeditor5-watchdog package is no longer available as a standalone DLL build. It is now included in the main ckeditor5-dll.js build. See #13707.

Features

  • build-multi-root: Introduced a new editor build featuring the multi-root editor. (commit)
  • comments: Introduced comments archive. It is now possible to resolve a comment thread instead of removing it. Resolved comment threads can be reviewed in the comments archive and can be re-opened if the commented content is still available in the editor.
  • comments: Introduced comment:modify_all permission that will allow the user to edit or remove all comments.
  • engine: Introduced model.Writer#addRoot() and model.Writer#detachRoot(). Model roots can now be dynamically added to or detached from the document. All content gets removed from a detached root and new content cannot be inserted as long as the root is detached. Closes #13388. (commit)
  • engine: Introduced Differ.getChangedRoots() which returns the roots added or detached since last the differ reset. Differ#isEmpty and Differ#hasDataChanges() will return true if a root was added or detached. (commit)
  • mention: Limiting the dropdown on the singular feed level should now be possible. Closes #13504. (commit)
  • multi-root-editor: Introduced the multi-root editor type that allows defining multiple editable areas handled by a single editor instance. Closes #11493. (commit)
  • real-time-collaboration: Added support for custom path prefixes in WebSocket URLs. Any path proceeding the required /ws part in the WebSocket URL is now preserved.

Bug fixes

  • build-*: Typings from the CKEditor 5 builds contain types of loaded plugins. Closes #13676. (commit)
  • clipboard: Dragging images in the editor should not lag in Firefox. Closes #13366. (commit)
  • engine: Dragging images in the editor should not lag in Firefox. Closes #13366. (commit)
  • engine: The Renderer should try to update existing DOM text nodes (instead of replacing them completely) so that external tools should not get lost if the watched DOM text node is removed and replaced with another one. Closes #13051. (commit)
  • engine: The elementToStructure() downcast helper should not skip attribute changes that happened with the modification of the children list. (commit)
  • html-support: Attributes on the <colgroup>, and <col> elements should be preserved in the data. Closes #11479. (commit)
  • html-support: Fixed description lists with name-value groups wrapped in div elements wh...
Read more

v37.0.0-rc.0

03 Apr 08:08
Compare
Choose a tag to compare
v37.0.0-rc.0 Pre-release
Pre-release

MAJOR BREAKING CHANGES ℹ️

  • Upgraded the minimal versions of Node.js to 16.0.0 due to the end of LTS.

MINOR BREAKING CHANGES ℹ️

  • table: The table columns' widths are stored as model elements instead of a model element attribute. See #11479.
  • The @ckeditor/ckeditor5-watchdog package is no longer available as a standalone DLL build. It is now included in the main ckeditor5-dll.js build. See #13707.

Features

  • build-multi-root: Introduced a new editor build featuring the multi-root editor. (commit)
  • comments: Introduced comments archive. It is now possible to resolve a comment thread instead of removing it. Resolved comment threads can be reviewed in the comments archive and can be re-opened if the commented content is still available in the editor.
  • comments: Introduced comment:modify_all permission that will allow the user to edit or remove all comments.
  • engine: Introduced model.Writer#addRoot() and model.Writer#detachRoot(). Model roots can now be dynamically added to or detached from the document. All content gets removed from a detached root and new content cannot be inserted as long as the root is detached. Closes #13388. (commit)
  • engine: Introduced Differ.getChangedRoots() which returns the roots added or detached since last the differ reset. Differ#isEmpty and Differ#hasDataChanges() will return true if a root was added or detached. (commit)
  • mention: Limiting the dropdown on the singular feed level should now be possible. Closes #13504. (commit)
  • multi-root-editor: Introduced the multi-root editor type that allows defining multiple editable areas handled by a single editor instance. Closes #11493. (commit)

Bug fixes

  • build-*: Typings from the CKEditor 5 builds contain types of loaded plugins. Closes #13676. (commit)
  • clipboard: Dragging images in the editor should not lag in Firefox. Closes #13366. (commit)
  • engine: Dragging images in the editor should not lag in Firefox. Closes #13366. (commit)
  • engine: The Renderer should try to update existing DOM text nodes (instead of replacing them completely) so that external tools should not get lost if the watched DOM text node is removed and replaced with another one. Closes #13051. (commit)
  • engine: The elementToStructure() downcast helper should not skip attribute changes that happened with the modification of the children list. (commit)
  • html-support: Attributes on the <colgroup>, and <col> elements should be preserved in the data. Closes #11479. (commit)
  • html-support: Fixed description lists with name-value groups wrapped in div elements when upcasting using the General HTML Support feature. Closes #12240. (commit)
  • image: Fixed the image resize handle displaying NaN in some scenarios. Closes #10776. (commit)
  • link: The link text should update along with the URL if they were the same in the first place. Closes #12588. (commit)
  • mention: Mentions reexport the MentionFeed and ItemRenderer types. Closes #13705. (commit)
  • mention: Make a text property optional in the MentionFeedObjectItem type. Closes #13550. (commit)
  • mention: Mentions panel should be positioned left to the caret in editors with a right–to–left UI language. Closes #13459. (commit)
  • paste-from-office: Fixed handling of bold text in RTL lists pasted from MS Word. Closes #13711. (commit)
  • table: Changed detection on heading rows and columns on table upcast. Closes #3172. (commit)
  • track-changes: Suggestion annotation discard button state is now bound with the DiscardSuggestionCommand state, instead of AcceptSuggestionCommand.
  • track-changes: Fixed error thrown when a list item was created using autoformatting in the track changes mode.
  • track-changes: List style and document list style iss now applied directly to a non-list element when used in the track changes mode.

Other changes

  • core: The EditorConfig#initialData and EditorConfig#placeholder options can now be set to Record<string, string> where the keys are root names and the values are settings for the related roots. (commit)
  • editor-*: Exposed the Context, EditorWatchdog, and ContextWatchdog classes as static editor properties. Closes #13707. (commit)
  • engine: RootAttributeOperation is now correctly handled by Differ. Root attribute changes will be returned in Differ#getChangedRoots(). (commit)
  • engine: model.Document#getRootNames() now returns only attached roots by default. The includeDetached parameter was introduced to enable returning detached roots as well. (commit)
  • **[engine](https://www.npmjs.com/packa...
Read more

v37.0.0-alpha.3

22 Mar 09:18
Compare
Choose a tag to compare
v37.0.0-alpha.3 Pre-release
Pre-release

Release highlights

This release exposes Context, EditorWatchdog, and ContextWatchdog as static editor properties. This should simplify integrations and provide consistency with editor builds.

This introduces a minor breaking change: the @ckeditor/ckeditor5-watchdog package is no longer available as a standalone DLL build. It is now included in the main ckeditor5-dll.js build. See #13707.

Please keep in mind that the release is marked as alpha, which means it is an experimental version, and some unexpected results may occur when using these typings.

We appreciate all of your feedback, as it helps us greatly to improve the final shape of the project. Please share it here.

MINOR BREAKING CHANGES ℹ️

Bug fixes

  • link: The link text should update along with the URL if they were the same in the first place. Closes #12588. (commit)

Other changes

  • editor-*: Exposed the Context, EditorWatchdog, and ContextWatchdog classes as static editor properties. Closes #13707. (commit)
  • utils: Added configuration to the View#scrollToTheSelection() helper allowing to scroll to the top of the boundary. Closes #13688. (commit)

Released packages

Check out the Versioning policy guide for more information.

Released packages (summary)

New packages:

Other releases:

Read more

v37.0.0-alpha.2

15 Mar 09:53
Compare
Choose a tag to compare
v37.0.0-alpha.2 Pre-release
Pre-release

Release highlights

This release fixes typings in the predefined builds which should now properly maintain information about included plugins.

Please keep in mind that the release is marked as alpha, which means it is an experimental version and some unexpected results may occur when using these typings.

We appreciate all of your feedback, as it helps us greatly to improve the final shape of the project. Please share it here.

Bug fixes

  • build-*: Typings from the CKEditor 5 builds contain types of loaded plugins. Closes #13676. (commit)
  • image: Fix the image resize handle displaying NaN in some scenarios. Closes #10776. (commit)

Released packages

Check out the Versioning policy guide for more information.

Released packages (summary)

Other releases:

v37.0.0-alpha.1

13 Mar 09:41
Compare
Choose a tag to compare
v37.0.0-alpha.1 Pre-release
Pre-release

Release highlights

This release addresses the issues with TypeScript reporting some commands, plugins, and configurations as either unavailable or unknown, despite them being correctly registered.

This update also includes a breaking change from alpha.0. To ensure proper TypeScript support, update your imports to use the main package entry point instead of importing from package internals. See the example below:

// ✔️
import { Table } from '@ckeditor/ckeditor5-table';

// ❌
import Table from '@ckeditor/ckeditor5-table/src/table';

Please keep in mind that the release is marked as alpha, which means it is an experimental version and some unexpected results may occur when using these typings.

We appreciate all of your feedback, as it helps us greatly to improve the final shape of the project. Please share it here.

Features

Bug fixes

  • mention: Make a text property optional in the MentionFeedObjectItem type. Closes #13550. (commit)
  • table: Change detection on heading rows and columns on table upcast. Closes #3172. (commit)

Other changes

  • core: The EditorConfig#initialData and EditorConfig#placeholder options can now be set to Record<string, string> where the keys are root names and the values are settings for the related roots. (commit)
  • Improve augmentation in some packages. Related to #13565. (commit)

Released packages

Check out the Versioning policy guide for more information.

Released packages (summary)

New packages:

Releases containing new features:

Other releases:

Read more

v37.0.0-alpha.0

27 Feb 12:24
Compare
Choose a tag to compare
v37.0.0-alpha.0 Pre-release
Pre-release

Release highlights

This release brings the long-awaited feature: typings for CKEditor 5. They are compatible with TypeScript version 4.8.4 or higher.

Please keep in mind the release is marked as alpha which means it is an experimental version and some unexpected results may occur when using these typings.

We appreciate all your feedback that lets us improve the final shape of the project.

MINOR BREAKING CHANGES ℹ️

  • table: The table columns' widths are stored as model elements instead of model element attributes. See #11479.

Features

  • mention: Limiting the dropdown on the singular feed level should be possible. Closes #13504. (commit)

Bug fixes

  • engine: The elementToStructure() downcast helper should not skip attribute changes that happened with the modification of the children list. (commit)
  • html-support: Attributes on the <colgroup>, and <col> elements should be preserved in the data. Closes #11479. (commit)
  • html-support: Fix description lists with name-value groups wrapped in div elements when upcasting using the General HTML Support feature. Closes #12240. (commit)
  • mention: Mentions panel should be positioned left to the caret in editors with right–to–left UI language. Closes #13459. (commit)

Other changes

Released packages

Check out the [Versioning policy](https://ckeditor.com/docs/ckeditor5/latest/framework/guides/support/versioning-policy....

Read more

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