Ckeditor5 Versions Save

Powerful rich text editor framework with a modular architecture, modern integrations, and features like collaborative editing.

v38.2.0-alpha.0

10 months ago

Release highlights

This release is intended to improve compatibility with Vite and Vitest by correctly reporting CKEditor packages as ESM modules.

Please note that this release is based on v38.1.0 and is marked as alpha, which means that it is an experimental version and some unexpected results may occur when using it.

We appreciate any feedback that will help us improve the final form of the project.

Bug fixes

Released packages

Check out the Versioning policy guide for more information.

Released packages (summary)

Other releases:

v38.1.0

10 months ago

Release highlights

Show blocks

The show blocks feature allows the content creators to visualize all block-level elements (except for widgets) by surrounding them with an outline and displaying their element name at the top-left corner of the box.

image

Adjacent lists support

CKEditor 5 introduces an opt-in feature specifically for list handling during Word import or pasting. This feature influences how adjacent lists of the same type (either ordered or unordered) are processed. By default, such lists merge together, but you can prevent this.

To enable this feature, the AdjacentListsSupport plugin needs to be added to your CKEditor 5 configuration. This allows you to maintain distinct lists, even when they are of the same type and positioned adjacently. However, please note that this feature only works with the DocumentLists implementation. We are considering making it the default setting in future updates, based on user feedback and experience we collect. Let us know your opinion on the https://github.com/ckeditor/ckeditor5/issues/14478 issue.

Comments archive integration guide

We released a new guide showcasing how you can customize comments archive UI to display the archive panel in a custom container, to better fit your application layout.

Fixing API scrolling integration with custom viewport offsets

We introduced a significant UX improvement that enhances the scrolling behavior of the Document Outline and Table of Contents features in the organization's documentation. Now, clicking on a heading in the Document Outline and Table of Contents displays a collapsed caret, which was previously located under the header section. Additionally, the fix improves other cases, such as proper scrolling when pressing enter while the editor is focused and scrolled away.

MINOR BREAKING CHANGES ℹ️

  • html-support: The htmlAttributes model property has been replaced by html*Attributes, where the * represents the name of the view element. Clients will need to modify their code accordingly by replacing all instances of htmlAttributes with html*Attributes for the respective view elements.

Features

  • export-word: Added support for resolved comment threads in the Export to Word feature.
  • html-support: Changing a list type now removes styles inherited from the previous type. Closes #14216. (commit)
  • list: Added the AdjacentListsSupport plugin to separate lists of the same type. Closes #12738. (commit)
  • ui: BodyCollection.bodyCollectionContainer is now a public property. Closes #13928. (commit)

Bug fixes

  • comments: The editor should no longer crash after resolving multiple comment threads from multiple editor instances inside one Context.
  • document-outline: Fixed a randomly failing Table of Contents editing test (before each).
  • document-outline: The document outline feature should respect the config.ui.viewportOffset configuration.
  • engine: The editor should no longer crash while pressing backspace in an empty editor (in Firefox). Closes #14411, #14050. (commit)
  • engine: Fixed the shallow view and model TreeWalkers returning elements outside of specified boundaries. (commit)
  • engine: The CSS shorthand value normalizer should work for values with white spaces. Closes #14309. (commit)
  • engine: View#scrollToTheSelection() should respect the config.ui.viewportOffset configuration and consider the geometry of a classic editor's toolbar to assure the caret is always visible to the user. Closes #13730. (commit)
  • engine: Font attributes are preserved after inserting inline widgets. Closes #14106. (commit)
  • export-pdf: Text will no longer go beyond its cell when columns are resized by the resize handler in exported PDFs. Closes #3355. (commit)
  • font: The accept button in the color picker will no longer submit forms. Closes #14361. (commit)
  • html-support: GHS should allow linking of custom elements. Closes #13803. (commit)
  • html-support: Preserve HTML attributes when a list is split or its item is removed. Closes #14346 and #14349. (commit)
  • html-support: Remove unrelated html*Attributes from elements. See #14216. (commit)
  • mention: Multiple mentions in the last table cell should not result in a selection error. Closes #14025. (commit)
  • paste-from-office: Remove the <style> tag that comes with the table pasted from Google Sheets. Closes #14131. (commit)
  • paste-from-office: List markers should be displayed correctly after pasting a list from MS Word. Closes #12361. (commit)
  • style: Styles dropdown should allow styling <div> elements. Closes #13341. (commit)
  • table: Text will no longer go beyond its cell when columns are resized by resize handler in Firefox. Closes #14386. (commit)
  • track-changes: Removed an unnecessary request to the token URL when using the TrackChangesData plugin.
  • ui: Fixed a styling issue that would cause some toolbar dropdowns to be shrunk. (commit)
  • ui: Fixed the arrow keys behavior in the color picker component. Closes #14218. (commit)
  • ui: The "Powered by" logo should not shake on the first show. Closes cksource/ckeditor5-internal#3289. (commit)
  • ui: Fixed the way code exports the colorPaletteIcon icon, which could result in a broken build. Closes #14205. (commit)
  • utils: Rect#getVisible() should not consider ancestors when the target is an element with position: absolute. Closes #14107. (commit)
  • Added multi-root support for: title, HTML comments, table resize, word count and block toolbar. (commit)
  • Fixed editor crash that happened when TrackChangesData or revision history was used in setup with Context if CloudServices was set only in the Context configuration (and not in the editor configuration).

Other changes

  • comments: The resolve button will now be disabled instead of hidden when the editor is in read-only mode for better UI consistency.
  • engine: Exports ViewTreeWalker from ckeditor5-engine/src/index.ts. Closes #14158. (commit)
  • html-support: Changed htmlAttributes to html*Attributes where * represents the name of the view element. See #14216. (commit)
  • ui: Added a configuration option that forces the "Powered by" logo to show up despite a valid license key being used. Closes #14235. (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:

v38.0.1

11 months ago

Release highlights

This is a patch release that resolves an incorrect import issue that resulted in a "Cannot find module" error when using CKEditor 5 in a TypeScript environment.

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

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

Bug fixes

  • ui: Fixed how the code exports the colorPaletteIcon icon, which could result with a broken build. Closes #14205. (commit)

Released packages

Check out the Versioning policy guide for more information.

Released packages (summary)

Other releases:

v38.0.0

11 months ago

Release highlights

From version v38.0.0 onwards, all open-source installations of CKEditor (using it under the GPL terms) will carry a small “Powered by CKEditor” logo in the bottom-right corner of the editing area. This new logo links directly to the CKEditor website to strengthen the awareness of who’s powering and modernizing their rich text editor.

This change does not affect customers with commercial licenses. You can reach out to our Technical Support team using this form, if you have any questions.

You can read more about this change in the announcement on GitHub, the update guide, and the Managing the "Powered by CKEditor" logo guide.

Color picker

Until v38.0.0, users were only able to choose from predefined colors in features like font color, font background color, table border color, etc. Starting from v38.0.0, they can also use a color picker to choose any possible color.

The color picker is now available in the font color and font background color features. In the upcoming versions (next month), it will be added to the table-related color features.

If you're interested in keeping the old behavior where the user can choose only from predefined colors, check out the update guide.

Styles

The latest update allows users to apply styling to tables and their elements, as well as to lists and their items (DocumentList plugin). We've also fixed the behavior for links, so styles now only apply to the entire link. In addition, we've implemented a few bug fixes to address prior inconsistencies and issues.

MAJOR BREAKING CHANGES ℹ️

  • Introduced the "Powered by CKEditor" logo.

MINOR BREAKING CHANGES ℹ️

  • font: Color picker is now added by default to the font color and font background color dropdowns. Thanks to it, users can apply any color through these features. In places where users should use a limited number of colors, it is possible to disable the color picker using a configuration option.
  • track-changes: Introduced new values for the trackFormatChanges configuration parameter. Previously possible values were true or false. New possible values are: 'always', 'default' (the old true), and 'never' (the old false). Please update your configuration accordingly.
  • Changed the look of the buttons in the comments and suggestions annotations. Previously, the buttons to add a comment, add a reply, or save the edited comment were represented by icons. Now they are proper buttons with text labels.

Features

  • clipboard: Introduced experimental support for block drag & drop. Closes #14033. (commit)
  • comments: Added support for resolved comment threads imported from Word.
  • editor-multi-root: Introduced the MultiRootEditor#disableRoot() and MultiRootEditor#enableRoot() methods that allow switching only a particular root to a read-only state. (commit)
  • engine: Introduced the Model#canEditAt( selectable ) method that checks whether a given selectable is in an editable place in the model. It should be used instead of Editor#isReadOnly in multi-root integrations as it acknowledges the root's read-only state. (commit)
  • font: Introduced the color picker feature for font and font background colors. Closes #10988. (commit)
  • style: The styles dropdown now applies link styles only to the entire link. Closes #11709. (commit)
  • style: Added custom styling support for the <td>, <th>, <caption>, and <figcaption> elements. Closes #13777. (commit)
  • style: Added support for the document lists feature. Closes #11590, #12668. (commit)
  • style: The <figure> element can now be styled. See #11590. (commit)
  • track-changes: Added more granular changes tracking.
  • track-changes: Introduced a new configuration parameter: mergeNestedSuggestions: boolean (default true). Introduced new values for the trackFormatChanges configuration parameter. See the API reference for more details.
  • ui: Introduced the color picker view. See #10988. (commit)

Bug fixes

  • comments: The mentions dropdown no longer appears behind the comments archive dropdown panel and is now accessible.
  • comments: Fixed an error thrown when a resolved comment thread was received in a particular scenario.
  • comments: The comments archive panel is now correctly visible when the comments archive is opened from various toolbars.
  • comments: The comment thread attributes are now correctly returned in CommentsRepository#getCommentThreads().
  • comments: Fixed the comment thread input area which was incorrectly displayed or hidden in particular cases.
  • comments: Fixed the editor crash when a comment was added to a comment thread imported from a Word file.
  • core: Added the licenseKey property to the EditorConfig interface. Closes #13906. (commit)
  • document-outline: The document outline and table of contents features should now support the multi-root editor.
  • document-outline: The document outline and table of contents features should not display placeholders for empty headings by default.
  • engine: TypeScript should suggest editingDowncast and dataDowncast in conversion.for. Closes #13750. (commit)
  • engine: The editor should not crash when a custom element with an invalid attribute name is pasted. Closes #13841. (commit)
  • font: Screen readers should now announce the selected option in dropdown lists for the font size, font family, and heading features. Closes #13250. (commit)
  • heading: Screen readers should now announce the selected option in dropdown lists for the font size, font family, and heading features. Closes #13250. (commit)
  • html-support: Fixed the editor crash when pasting a table from Google Sheets. Closes #13876. (commit)
  • html-support: HTML classes from a paragraph created after pressing the Enter key in a heading are now removed. Closes #11578. (commit)
  • paste-from-office: Fixed the width of tables pasted from Google Sheets. Closes #13746. (commit)
  • revision-history: Fixed the editor crash when a legacy revision (created using the editor in version 37.1.0 or older) was restored.
  • style: The remove format feature should also remove styles. Closes #11580. (commit)
  • style: The classes of the removed style are now preserved if other active styles also use them. Closes #11748. (commit)
  • table: Removed comments with both CK_DEBUG and istanbul that break the Vite integration. See #13922. (commit)
  • track-changes: Fixed the integration of the remove format and format painter features.
  • ui: The mousedown event should not be canceled on a UI button press so it can be dragged. See #14033. (commit)
  • ui: The toolbar should not disappear when the toolbar separator is clicked. The toolbar view should be focusable the same as the dropdown panel views. Closes #12172. (commit)
  • ui: Select all (Ctrl/Cmd+A) should now be enabled by default in an input field placed in a dropdown panel. Closes #13982. (commit)
  • Screen readers should announce the selected option in dropdown lists for the code block, language, image (resize options), special characters (categories), and table (border style) features. Closes #13748. (commit)

Other changes

  • comments: Changed the comments annotation button styles from icons to labeled buttons.
  • comments: The comments archive header is now fixed at the top of the dropdown panel.
  • image: Changed the export type to export for plugins in the @ckeditor/ckeditor5-image package. Closes #13868. (commit)
  • track-changes: Changed the track changes annotation button styles from icons to labeled buttons.
  • Optimized icons. (commit)
  • Updated translations. (commit, commit)
  • Introduced the "Powered by CKEditor" logo. (commit)

Released packages

Check out the Versioning policy guide for more information.

Released packages (summary)

Minor releases (contain minor breaking changes):

Releases containing new features:

Other releases:

v38.0.0-rc.1

1 year ago

This is a hotfix release which addresses problems discovered after publishing code for our previous rc release. Please make sure to check the changelog for version 38.0.0-rc.0 below as well.

Released packages

Check out the Versioning policy guide for more information.

Released packages (summary)

Minor releases (contain minor breaking changes):

Releases containing new features:

Other releases:

v38.0.0-rc.0

1 year ago

Release highlights

From version v38.0.0 onwards, all open-source installations of CKEditor (using it under the GPL terms) will carry a small “Powered by CKEditor” logo in the bottom right corner of the editing area. This new logo links directly to the CKEditor website to strengthen the awareness of who’s powering and modernizing their rich text editor.

This change does not affect customers with commercial licenses. You can reach out to our Technical Support team, using this form, if you have any questions.

You can read more about this change in the announcement on GitHub, the update guide and the Managing the "Powered by CKEditor" logo guide.

Color picker

Until v38.0.0 users were only able to choose from predefined colors in features like font color, font background color, table border color, etc. Starting from v38.0.0 they are now also able to use a color picker to choose any possible color.

The color picker is now available in font color and font background color features. In the coming versions (next month) it will also be added to the table-related color features.

If you're interested in keeping the old behavior where the user was able to choose only from predefined colors, check out the update guide.

MAJOR BREAKING CHANGES ℹ️

  • Introduced the "Powered by CKEditor" logo.

MINOR BREAKING CHANGES ℹ️

  • font: Color picker is now added by default to the font color and fonto background color dropdowns allowing to apply any color to it. In places where users should only use a limited number of colors, it is possible to disable color picker using a configuration option.
  • track-changes: Introduced new values for the trackFormatChanges configuration parameter. Previously possible values were true or false. New possible values are 'always', 'default' (the old true) and 'never' (the old false). Please update your configuration accordingly.
  • Changed the look of the buttons in the comments and suggestions annotations. Previously, the buttons to add a comment, a reply or to save the edited comment were represented by icons. Now they are proper buttons with text labels.

Features

  • clipboard: Introduced an experimental support for block drag & drop. Closes #14033. (commit)
  • comments: Added support for resolved comment threads imported from Word.
  • editor-multi-root: Introduced the MultiRootEditor#disableRoot() and MultiRootEditor#enableRoot() methods that allow to switch only a particular root to a read-only state. (commit)
  • engine: Introduced the Model#canEditAt( selectable ) method that checks whether a given selectable is at an editable place in the model. It should be used instead of Editor#isReadOnly in multi-root integrations as it acknowledges the roots read-only state. (commit)
  • font: Introduced the color picker feature for font and font background colors. Closes #10988. (commit)
  • style: The styles dropdown now applies link styles only to the whole link. Closes #11709. (commit)
  • style: Added custom styling support for the <td>, <th>, <caption> and <figcaption> elements. Closes #13777. (commit)
  • style: Added support for the document lists feature. Closes #11590, #12668. (commit)
  • style: The <figure> element can now be styled. See #11590. (commit)
  • track-changes: Added a more granular changes tracking.
  • track-changes: Introduced a new config parameter: mergeNestedSuggestions: boolean (default true). Introduced new values for the trackFormatChanges config parameter. Please see the API reference.
  • ui: Introduced the color picker view. See #10988. (commit)

Bug fixes

  • comments: The mentions dropdown no longer appears behind the comments archive dropdown panel and is now accessible.
  • comments: Fixed an error thrown when a resolved comment thread was received in a particular scenario.
  • comments: The comments archive panel is now correctly visible when the comments archive is opened from various toolbars.
  • comments: The comment thread attributes are now correctly returned in CommentsRepository#getCommentThreads().
  • comments: Fixed the comment thread input area which was incorrectly displayed or hidden in particular cases.
  • comments: Fixed the editor crash when a comment was added to a comment thread imported from a Word file.
  • core: Added the licenseKey property to the EditorConfig interface. Closes #13906. (commit)
  • document-outline: The document outline and table of contents features should now support the multi-root editor.
  • document-outline: The document outline and table of contents features should not display placeholders for empty headings by default.
  • engine: TypeScript should suggest editingDowncast and dataDowncast in conversion.for. Closes #13750. (commit)
  • engine: The editor should not crash when a custom element with an invalid attribute name is pasted. Closes #13841. (commit)
  • font: Screen readers should now announce the selected option in dropdown lists for the font size, font family, and heading features. Closes #13250. (commit)
  • heading: Screen readers should now announce the selected option in dropdown lists for the font size, font family, and heading features. Closes #13250. (commit)
  • html-support: Fixed the editor crash when pasting a table from Google Sheets. Closes #13876. (commit)
  • html-support: HTML classes from a paragraph created after pressing the enter key in a heading are now removed. Closes #11578. (commit)
  • paste-from-office: Fixed the width of tables pasted from Google Sheets. Closes #13746. (commit)
  • revision-history: Fixed the editor crash when a legacy revision (created using the editor in version 37.1.0 or older) was restored.
  • style: The remove format feature should also remove styles. Closes #11580. (commit)
  • style: The classes of the removed style are now preserved if other active styles also use them. Closes #11748. (commit)
  • table: Removed comments with both CK_DEBUG and istanbul that breaks the vite integration. See #13922. (commit)
  • track-changes: Fixed the integration of the remove format and format painter features.
  • ui: The mousedown event should not be canceled on a UI button press so it can be dragged. See #14033. (commit)
  • ui: The toolbar should not disappear when clicked on the toolbar separator. The toolbar view should be focusable the same as the dropdown panel views. Closes #12172. (commit)
  • ui: Select all (Ctrl+A) should now be enabled by default in an input field placed in a dropdown panel. Closes #13982. (commit)
  • Screen readers should announce the selected option in dropdown lists for the code-block, language, image (resize options), special characters (categories), and table (border style) features. Closes #13748. (commit)

Other changes

  • comments: Changed the annotations buttons style from icons to labelled buttons.
  • comments: The comments archive header is now fixed at the top of the dropdown panel.
  • image: Changed the export type to export for plugins in the @ckeditor/ckeditor5-image package. Closes #13868. (commit)
  • track-changes: Changed the annotations buttons style from icons to labelled buttons.
  • Optimized icons. (commit)
  • Updated translations. (commit, commit)
  • Introduced the "Powered by CKEditor" logo. (commit)

Released packages

Check out the Versioning policy guide for more information.

Released packages (summary)

Minor releases (contain minor breaking changes):

Releases containing new features:

Other releases:

v37.1.0

1 year ago

Release highlights

Productivity Pack

We are excited to announce the release of a Productivity Pack for CKEditor 5. It includes five new premium features designed to boost productivity when working with the editor.

  • Content templates: The template feature allows you to insert predefined content structures into the document. Templates can provide both smaller portions of content (e.g. a formatted table) and base structures for entire documents (e.g. a formal letter template).
  • Table of contents: The table of contents feature lets you insert a widget with the list of headings (section titles) that reflects the structure of the document. The list stays up–to–date automatically as the user works on the document. Clicking a list item navigates the user to the corresponding document section.
  • Document outline: The document outline feature displays the list of sections (headings) of the document next to the editor. The outline updates automatically as the user works on the document. It offers quick navigation to a specific section upon clicking.
  • Format painter: The format painter feature lets you copy text formatting (such as bold, italic, font size, color, etc.) and apply it in a different place in the edited document. It helps keep the formatting consistent and speeds up the creation of rich content.
  • Slash commands: The slash commands feature lets you execute a predefined command by writing its name or alias directly in the editor. When you type a slash (/), the suggested commands are displayed in a panel next to it. You can also type a phrase after the / to filter the results in the panel and to easily find the desired command.

Other changes

We continue to work on the multi-root editor. This release introduces compatibility with reversion history and pagination. We also made some minor improvements and bug fixes.

MINOR BREAKING CHANGES ℹ️

  • language: A text with language set is no longer styled as italic. To re-enable the previous behavior, add the following style definition to your CSS:

    ck-content span[lang] { font-style: italic; }
    

Features

  • template Introduced the content templates feature. It allows inserting predefined templates into the editor content.
  • document-outline Introduced the document outline and table of contents features. The document outline feature allows the user to display a navigable list of sections (headings) of the document next to the editor. The table of contents feature lets them insert a widget with a list of headings (section titles) that reflects the structure of the document.
  • format-painter Introduced the format painter feature. It allows the user to copy text formatting (such as bold, italic, font size, color, etc.) and apply it in a different place in the edited document.
  • slash-command Introduced the slash commands feature. It allows the user to execute a predefined command by writing its name or alias directly in the editor.
  • revision-history: Introduced the revision history feature support for multi-root editor.
  • pagination: Introduced the basic pagination feature support for multi-root editor.
  • source-editing: Made the SourceEditing.updateEditorData() method public to allow saving source editing data independently of the UI. Closes #11008. (commit)

Bug fixes

  • comments: Fixed the incorrect default permissions applied in non-real-time collaboration integrations.
  • engine: Selection#getSelectedBlocks() should ignore trailing blocks where no content is selected. The selection of such blocks is not visible to the content author and is usually there unintentionally. Closes #11585. (commit)
  • enter: Pressing Shift+Enter in Safari should insert <br> instead of splitting a block. Closes #13321. (commit)
  • list: ListPropertiesEditing should not crash if there was a list in an image caption element. Closes #13858. (commit)
  • real-time-collaboration: Fixed an issue when the editor selection would sometimes not be moved past other users' selection when pressing arrow keys.
  • typing: Text suggestions should replace the whole words. Closes #13583. (commit)

Other changes

  • editor-multi-root: The multi-root editor will now throw an error if EditorConfig#initialData is mismatched with initial roots set in MultiRootEditor#create(). (commit)
  • engine: The targetRanges property of the beforeInput event data should be fixed to not cross the limit elements' boundaries. See #13583. (commit)
  • language: TextPartLanguage no longer styles text as italic when the language is set. Closes #12672. (commit)
  • Switched from ts-loader to esbuild-loader when processing the TypeScript sources. It significantly reduces the build time when processing automated and manual tests or preparing snippets in the documentation. Closes #13643. (commit)
  • MultiRootEditor will first fire all detachRoot events and then all addRoot events if there are detached and added roots in the same batch. (commit)
  • Updated translations.

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:

v37.0.1

1 year ago

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

1 year ago

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

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:

v37.0.0-rc.0

1 year ago

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

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: