Releases: ckeditor/ckeditor5
v39.0.0
We are happy to announce the release of CKEditor 5 v39.0.0.
Release highlights
Paste from Office Enhanced
This release introduces a new plugin that significantly boosts the retention of styles when pasting content from Microsoft Word and Excel. This improved functionality is available as part of our Productivity pack feature set.
Color picker in table (cell) properties
It is now possible to select the desired color for table properties, such as cell background or border color, using a color picker. You can test it in the Table and cell styling tools guide.
CKBox
As the new version of CKBox supports workspaces, the integration with CKEditor was updated to support them. Read more in the update guide.
Watchdog performance improvements
We have greatly improved the editor performance when Watchdog
is used and huge amount of data is loaded in the editor. The editor should no longer lag every few seconds while typing, as Watchdog
data backup mechanism is much faster now.
Since Watchdog
is used by default in our frameworks integrations, if you use one of our integrations, you will benefit from this improvement as well!
Multi-root editor - delayed root loading [experimental]
It is now possible to initialize the multi-root editor with just one or a few of the document roots and load the other roots later on.
This solution is useful for huge documents that are split into chapters or sections, where each chapter or section is a separate document root.
Real-time collaboration and revision history features are supported. Users can join the same document but have different parts of the document loaded initially.
Please note, that there are some technical obstacles that we will be addressing in further releases:
- As of now, the solution should be used with new documents only.
- As of now, the revision data will still include and use the whole document data. However, the performance impact is significantly smaller than loading this data upfront when the editor is initialized.
- Since only a part of the document is loaded, some of the features (e.g. word count, table of contents) may behave unexpectedly.
Note: this is an experimental feature. Its API and details of its behavior may change in the upcoming releases.
Major bugfixes
-
Improved sticky toolbar behavior when nesting in an overflown element. Closes #5465.
We have resolved an issue where the sticky toolbar was incorrectly positioned if the editor was nested within multiple clipped and scrollable elements.
-
The editor does not scroll down while typing in the editable with a fixed height. Closes #13411.
When typing in an editor with a fixed height, the scroll automatically follows as the text flows onto the next line.
-
Reverse typing effect on slower machines. Closes #14569.
We have addressed an issue where the cursor seemed to be "stuck" and did not update in a timely manner, causing the text to be inserted behind it, especially under a very heavy JS thread load. The issue has been successfully resolved, ensuring smoother and more accurate cursor behavior.
Please refer to the update guide to learn more about these changes.
MAJOR BREAKING CHANGES ℹ️
- ckbox: The plugin requires CKBox in version at least 2.0.0. The editor configuration option
ckbox.assetsOrigin
is no longer supported.
MINOR BREAKING CHANGES ℹ️
- engine: The
enablePlaceholder()
helper now uses aplaceholder
property of the passedelement
. It no longer takes the placeholder text as atext
argument. - font: The
ColorTableView
class has been moved to the@ckeditor/ckeditor5-ui
package and remains available as a publicColorSelectorView
component. - font: CSS classes such as
.ck-color-table__remove-color
or.ck-color-table__color-picker
(prefixed with.ck-color-table
) are now prefixed with.ck-color-selector
. For instance:.ck-color-selector__remove-color
or.ck-color-selector__color-picker
. - table: Color pickers are now displayed by default for all color fields in the table and table cell properties UI. In places where users should use a limited number of colors, it is possible to disable the color picker using a configuration option. See the configuration reference of the table properties and table cell properties features to learn more.
Features
- ckbox: Adds support for CKBox workspaces. Closes #14504. (commit)
- ckbox:
CKBoxUploadAdapter
looks for categories using file extension case-insensitively. Closes #13751. (commit) - engine: Introduced
model.Document#getRoots()
. (commit) - engine: Placeholders can now be changed after the initialization. This can be done by changing the
placeholder
property of theelement
passed to theenablePlaceholder()
helper. Closes #9925. (commit) - html-support: Introduced a configuration option to allow empty inline elements. Closes #9888. (commit)
- multi-root-editor: Introduced
MultiRootEditor#loadRoot()
andEditorConfig.lazyRoots
which can be used to implement the roots progressive ("lazy") loading. (commit) - multi-root-editor: Introduced
MultiRootEditor#getRootAttributes()
. (commit) - table: Implemented color pickers to color selection fields in the table properties and table cell properties UI. Closes #14500. (commit)
- track-changes: Added track changes data support for multi-root editor without the need to specify a custom callback.
- ui: Extracted the
ColorTableView
UI fromckeditor5-font
as a publicColorSelectorView
component (see #14500). (commit)
Bug fixes
- comments: The comment's read-only state will now depend on the comment thread's read-only state.
- comments: A comment thread annotation will no longer disappear after clicking on a mention hint.
- comments: Sidebar
min-height
should be correctly updated after switching between various annotations display modes. - engine: Fixed a reverse typing issue on an editor gaining focus. Closes #14569. (commit)
- engine: Fixed random selection-related crashes happening on Firefox for unknown reasons (error code
NS_ERROR_FAILURE
). Closes #14493. (commit) - **[engine](https://www.npmjs.com/package/@ckeditor/ckeditor5-engine...
v38.2.0-alpha.1
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.
MINOR BREAKING CHANGES ℹ️
- font: The
ColorTableView
class has been moved to theckeditor5-ui
package and remains available as a publicColorSelectorView
component. - font: CSS classes such as
.ck-color-table__remove-color
or.ck-color-table__color-picker
(prefixed with.ck-color-table
) are now prefixed with.ck-color-selector
. For instance,.ck-color-selector__remove-color
or.ck-color-selector__color-picker
. - table: Color pickers are now displayed by default for all color fields in the table and table cell properties UI. In places where users should use a limited number of colors, it is possible to disable the color picker using a configuration option. See the configuration reference of table properties and table cell properties features to learn more.
Features
- ckbox:
CKBoxUploadAdapter
looks for categories using file extension case-insensitively. Closes #13751. (commit) - html-support: Introduced configuration option to allow empty inline elements. Closes #9888. (commit)
- table: Brought color pickers to color fields in table properties and table cell properties UI. Closes #14500. (commit)
- track-changes: Added track changes data support for multi-root editor without a need to specify a custom callback.
- ui: Extracted the
ColorTableView
UI fromckeditor5-font
as a publicColorSelectorView
component (see #14500). (commit)
Bug fixes
- comments: A comment thread annotation will no longer disappear after clicking on a mention hint.
- document-outline: Don't throw an error when an item with the incorrect index is set to active.
- paragraph: The
insertParagraph
command won't insert two paragraphs when position is at the edge of the block. Closes #13866. (commit) - source-editing: Fixes infinite loop in source editing mode. Closes #14469. (commit)
- track-changes: Roots attributes will now be passed to internal editor in track changes data plugin. This may solve some errors with custom plugins using root attributes.
- ui: Fixed the sticky panel behavior in overflowing containers. Closes #5465. (commit)
- ui: Dropdowns will stay open after clicking on an HTML element added to the dropdown's focus tracker. (commit)
Other changes
- engine: The
DomConverter
should allow registering custom matchers to detect inline object elements. See #9888. (commit) - source-editing: Fixed formatting of
<br>
elements in source editing. Whitespaces before<br>
element should not be added. (commit) - track-changes: Added
DescriptionItem
type.
Released packages
Check out the Versioning policy guide for more information.
Released packages (summary)
Minor releases (contain minor breaking changes):
- @ckeditor/ckeditor5-font: v38.2.0-alpha.0 => v38.2.0-alpha.1
- @ckeditor/ckeditor5-table: v38.2.0-alpha.0 => v38.2.0-alpha.1
Releases containing new features:
- @ckeditor/ckeditor5-ckbox: v38.2.0-alpha.0 => v38.2.0-alpha.1
- @ckeditor/ckeditor5-engine: v38.2.0-alpha.0 => v38.2.0-alpha.1
- @ckeditor/ckeditor5-html-support: v38.2.0-alpha.0 => v38.2.0-alpha.1
- @ckeditor/ckeditor5-link: v38.2.0-alpha.0 => v38.2.0-alpha.1
- @ckeditor/ckeditor5-source-editing: v38.2.0-alpha.0 => v38.2.0-alpha.1
- @ckeditor/ckeditor5-theme-lark: v38.2.0-alpha.0 => v38.2.0-alpha.1
- @ckeditor/ckeditor5-typing: v38.2.0-alpha.0 => v38.2.0-alpha.1
- @ckeditor/ckeditor5-ui: v38.2.0-alpha.0 => v38.2.0-alpha.1
Other releases:
- @ckeditor/ckeditor5-adapter-ckfinder: v38.2.0-alpha.0 => v38.2.0-alpha.1
- @ckeditor/ckeditor5-alignment: v38.2.0-alpha.0 => v38.2.0-alpha.1
- @ckeditor/ckeditor5-autoformat: v38.2.0-alpha.0 => v38.2.0-alpha.1
- @ckeditor/ckeditor5-autosave: v38.2.0-alpha.0 => v38.2.0-alpha.1
- @ckeditor/ckeditor5-basic-styles: v38.2.0-alpha.0 => v38.2.0-alpha.1
- @ckeditor/ckeditor5-block-quote: v38.2.0-alpha.0 => v38.2.0-alpha.1
- @ckeditor/ckeditor5-build-balloon: v38.2.0-alpha.0 => v38.2.0-alpha.1
- @ckeditor/ckeditor5-build-balloon-block: v38.2.0-alpha.0 => v38.2.0-alpha.1
- @ckeditor/ckeditor5-build-classic: v38.2.0-alpha.0 => v38.2.0-alpha.1
- @ckeditor/ckeditor5-build-decoupled-document: v38.2.0-alpha.0 => v38.2.0-alpha.1
- @ckeditor/ckeditor5-build-inline: v38.2.0-alpha.0 => v38.2.0-alpha.1
- @ckeditor/ckeditor5-build-multi-root: v38.2.0-alpha.0 => v38.2.0-alpha.1
- @ckeditor/ckeditor5-ckfinder: v38.2.0-alpha.0 => v38.2.0-alpha.1
- @ckeditor/ckeditor5-clipboard: v38.2.0-alpha.0 => v38.2.0-alpha.1
- @ckeditor/ckeditor5-cloud-services: v38.2.0-alpha.0 => v38.2.0-alpha.1
- @ckeditor/ckeditor5-code-block: v38.2.0-alpha.0 => v38.2.0-alpha.1
- @ckeditor/ckeditor5-collaboration-core: v38.2.0-alpha.0 => v38.2.0-alpha.1
- @ckeditor/ckeditor5-comments: v38.2.0-alpha.0 => v38.2.0-alpha.1
- @ckeditor/ckeditor5-core: v38.2.0-alpha.0 => v38.2....
v38.1.1
Release highlights
In light of a recently identified vulnerability in the protobufjs
package (CVE-2023-36665), we've rolled out an update to CKEditor 5 packages. This vulnerability is pertinent to real-time collaboration services.
Please note, our investigation has shown that our setup does not incorporate the affected protobufjs
code. However, to ensure a smooth and secure installation and update experience, we've updated our dependencies.
While the specific vulnerability doesn't impact our use-case, we still encourage an update to the latest CKEditor 5 version as a general security practice.
Released packages
Check out the Versioning policy guide for more information.
Released packages (summary)
Other releases:
- @ckeditor/ckeditor5-adapter-ckfinder: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-alignment: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-autoformat: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-autosave: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-basic-styles: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-block-quote: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-build-balloon: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-build-balloon-block: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-build-classic: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-build-decoupled-document: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-build-inline: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-build-multi-root: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-ckbox: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-ckfinder: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-clipboard: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-cloud-services: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-code-block: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-collaboration-core: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-comments: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-core: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-document-outline: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-easy-image: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-editor-balloon: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-editor-classic: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-editor-decoupled: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-editor-inline: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-editor-multi-root: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-engine: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-enter: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-essentials: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-export-pdf: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-export-word: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-find-and-replace: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-font: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-format-painter: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-heading: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-highlight: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-horizontal-line: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-html-embed: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-html-support: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-image: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-import-word: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-indent: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-language: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-link: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-list: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-markdown-gfm: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-media-embed: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-mention: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-minimap: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-operations-compressor: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-page-break: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-pagination: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-paragraph: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-paste-from-office: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-real-time-collaboration: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-remove-format: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-restricted-editing: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-revision-history: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-select-all: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-show-blocks: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-slash-command: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-source-editing: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-special-characters: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-style: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-table: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-template: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-theme-lark: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-track-changes: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-typing: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-ui: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-undo: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-upload: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-utils: v38.1.0 => v38.1.1
- @ckeditor/ckeditor5-watchdog: v38.1...
v38.2.0-alpha.0
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
- comments: Sidebar
min-height
should be correctly updated after switching between various annotations display modes. - export-pdf: Fix HTML structure in sent requests. Closes #3364.
- paste-from-office: Fix of rendering thin space when content is pasted from MSWord. Closes #12562. (commit)
- table-of-contents: Focus editing view after button click. Closes #3391.
Released packages
Check out the Versioning policy guide for more information.
Released packages (summary)
Other releases:
- @ckeditor/ckeditor5-adapter-ckfinder: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-alignment: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-autoformat: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-autosave: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-basic-styles: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-block-quote: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-build-balloon: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-build-balloon-block: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-build-classic: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-build-decoupled-document: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-build-inline: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-build-multi-root: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-ckbox: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-ckfinder: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-clipboard: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-cloud-services: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-code-block: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-collaboration-core: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-comments: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-core: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-document-outline: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-easy-image: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-editor-balloon: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-editor-classic: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-editor-decoupled: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-editor-inline: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-editor-multi-root: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-engine: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-enter: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-essentials: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-export-pdf: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-export-word: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-find-and-replace: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-font: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-format-painter: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-heading: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-highlight: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-horizontal-line: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-html-embed: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-html-support: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-image: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-import-word: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-indent: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-language: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-link: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-list: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-markdown-gfm: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-media-embed: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-mention: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-minimap: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-operations-compressor: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-page-break: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-pagination: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-paragraph: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-paste-from-office: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-real-time-collaboration: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-remove-format: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-restricted-editing: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-revision-history: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-select-all: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-show-blocks: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-slash-command: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-source-editing: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-special-characters: v38.1.0 => v38.2.0-alpha.0
- @ckeditor/ckeditor5-style: v38.1.0 => v38.2.0-alpha.0
- [@ckeditor/ckeditor5-table](https://www.npmjs.com/package/@ckedit...
v38.1.0
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.
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 #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 byhtml*Attributes
, where the*
represents the name of the view element. Clients will need to modify their code accordingly by replacing all instances ofhtmlAttributes
withhtml*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 theconfig.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...
v38.0.1
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:
- @ckeditor/ckeditor5-adapter-ckfinder: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-alignment: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-autoformat: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-autosave: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-basic-styles: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-block-quote: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-build-balloon: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-build-balloon-block: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-build-classic: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-build-decoupled-document: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-build-inline: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-build-multi-root: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-ckbox: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-ckfinder: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-clipboard: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-cloud-services: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-code-block: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-collaboration-core: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-comments: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-core: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-document-outline: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-easy-image: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-editor-balloon: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-editor-classic: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-editor-decoupled: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-editor-inline: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-editor-multi-root: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-engine: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-enter: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-essentials: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-export-pdf: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-export-word: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-find-and-replace: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-font: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-format-painter: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-heading: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-highlight: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-horizontal-line: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-html-embed: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-html-support: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-image: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-import-word: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-indent: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-language: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-link: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-list: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-markdown-gfm: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-media-embed: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-mention: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-minimap: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-operations-compressor: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-page-break: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-pagination: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-paragraph: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-paste-from-office: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-real-time-collaboration: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-remove-format: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-restricted-editing: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-revision-history: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-select-all: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-slash-command: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-source-editing: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-special-characters: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-style: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-table: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-template: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-theme-lark: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-track-changes: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-typing: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-ui: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-undo: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-upload: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-utils: v38.0.0 => v38.0.1
- @ckeditor/ckeditor5-watchdog: v38.0.0 => v38.0.1
- [@ckeditor/ckeditor5-widget](https://www.npmjs.com/package/@ck...
v38.0.0
Release highlights
"Powered by CKEditor" logo
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 weretrue
orfalse
. New possible values are:'always'
,'default'
(the oldtrue
), and'never'
(the oldfalse
). 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()
andMultiRootEditor#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 givenselectable
is in an editable place in the model. It should be used instead ofEditor#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
(defaulttrue
). Introduced new values for thetrackFormatChanges
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 inCommentsRepository#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 theEditorConfig
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
anddataDowncast
inconversion.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](http...
v38.0.0-rc.1
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):
- @ckeditor/ckeditor5-font: v38.0.0-rc.0 => v38.0.0-rc.1
Releases containing new features:
- @ckeditor/ckeditor5-clipboard: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-core: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-editor-multi-root: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-engine: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-find-and-replace: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-html-support: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-list: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-mention: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-paragraph: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-style: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-table: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-theme-lark: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-typing: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-ui: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-undo: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-utils: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-widget: v38.0.0-rc.0 => v38.0.0-rc.1
Other releases:
- @ckeditor/ckeditor5-adapter-ckfinder: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-alignment: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-autoformat: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-autosave: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-basic-styles: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-block-quote: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-build-balloon: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-build-balloon-block: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-build-classic: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-build-decoupled-document: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-build-inline: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-build-multi-root: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-ckbox: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-ckfinder: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-cloud-services: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-code-block: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-collaboration-core: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-comments: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-document-outline: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-easy-image: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-editor-balloon: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-editor-classic: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-editor-decoupled: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-editor-inline: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-enter: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-essentials: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-export-pdf: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-export-word: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-format-painter: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-heading: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-highlight: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-horizontal-line: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-html-embed: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-image: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-import-word: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-indent: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-language: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-link: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-markdown-gfm: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-media-embed: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-minimap: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-operations-compressor: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-page-break: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-pagination: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-paste-from-office: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-real-time-collaboration: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-remove-format: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-restricted-editing: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-revision-history: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-select-all: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-slash-command: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-source-editing: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-special-characters: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-template: v38.0.0-rc.0 => v38.0.0-rc.1
- @ckeditor/ckeditor5-track-changes: v38.0.0-rc.0 => v38.0.0-rc.1
- [@ckeditor/ckeditor5-upload](https://www.npmjs.com/p...
v38.0.0-rc.0
Release highlights
"Powered by CKEditor" logo
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 weretrue
orfalse
. New possible values are'always'
,'default'
(the oldtrue
) and'never'
(the oldfalse
). 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()
andMultiRootEditor#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 givenselectable
is at an editable place in the model. It should be used instead ofEditor#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
(defaulttrue
). Introduced new values for thetrackFormatChanges
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 inCommentsRepository#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 theEditorConfig
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
anddataDowncast
inconversion.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...
v37.1.0
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 inMultiRootEditor#create()
. (commit) - engine: The
targetRanges
property of thebeforeInput
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
toesbuild-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 alldetachRoot
events and then alladdRoot
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:
- @ckeditor/ckeditor5-document-outline: v37.1.0
- @ckeditor/ckeditor5-format-painter: v37.1.0
- @ckeditor/ckeditor5-slash-command: v37.1.0
- @ckeditor/ckeditor5-template: v37.1.0
Minor releases (contain minor breaking changes):
- @ckeditor/ckeditor5-language: v37.0.1 => v37.1.0
Releases containing new features:
- @ckeditor/ckeditor5-source-editing: v37.0.1 => v37.1.0
Other releases:
- @ckeditor/ckeditor5-adapter-ckfinder: v37.0.1 => v37.1.0
- @ckeditor/ckeditor5-alignment: v37.0.1 => v37.1.0
- @ckeditor/ckeditor5-autoformat: v37.0.1 => v37.1.0
- @ckeditor/ckeditor5-autosave: v37.0.1 => v37.1.0
- @ckeditor/ckeditor5-basic-styles: v37.0.1 => v37.1.0
- @ckeditor/ckeditor5-block-quote: v37.0.1 => v37.1.0
- [@ckeditor/ckeditor5-build-balloon](https://www.npmjs.com/package/@ckeditor/ckeditor5-build-ballo...