v31.0.0
Release highlights
We are happy to announce the release of CKEditor 5 v31.0.0.
This release introduces the following new features:
- Introduce the
Command#affectsData
property to indicate whether a given command should stay enabled in editor modes with restricted write permissions. This solves the frequently reported problems of the availability of some editor features, such as export to PDF or Word, select all or find, in such editor modes as read-only, comments-only or restricted editing. - The mentions feature has gained the ability to customize the max number of items in the list after typing the trigger character.
- New collaboration features samples are available:
- For the React integration that will implement the context feature, as well as the watchdog.
- For comments outside the editor with offline comments.
- The comment and export to Word feature icons were improved.
- Three Enter clicks at the end of a code block are now necessary to escape it.
There were also a few bug fixes:
- The link, mention, inline image, and comment marker cannot be selected by mouse drag if the link is at the edge of a block.
- A table balloon is no longer rendered in the wrong place after unlinking text in table.
- A nested widget selection handle is no longer visible while the outer table cells are selected.
- The HTML embed UI does now correctly reflects the read-only state.
MAJOR BREAKING CHANGES ℹ️
- html-embed: The
InsertHtmlEmbedCommand
andUpdateHtmlEmbedCommand
have been replaced byHtmlEmbedCommand
which is now responsible for both tasks. The command can be executed viaeditor.execute( 'htmlEmbed' )
. See the API reference for more information.
Features
- core: Introduced the
Command#affectsData
flag to indicate whether a given command should stay enabled in editor modes with restricted write permissions (e.g. read-only mode). Closes #10670. (commit) - engine: The
DataController#get()
is now decorated and fires aget
event on the method call. See #10505. (commit) - mention: Added the configuration option for customizing the maximum number of items in the list after typing the trigger character. Closes #10479. (commit)
- real-time-collaboration: Introduced the
RealTimeCollaborationClient#serverHistory
property. See the API reference for more information.
Bug fixes
- comments: Features that do not change the content, should work properly in editor modes with restricted write permissions (e.g. read-only mode). See ckeditor/ckeditor5#10670.
- comments: The comment data was not updated on remote clients after the local client edited the comment.
- engine: DOM selection updates in
Renderer
when the selection is made using the mouse was blocked. Random glitching in Chrome when the user starts selection in a link (or a marker) at the beginning of the block was limited. Closes #10562. (commit) - engine: Makes order of markers in downcast data pipeline consistent. Thanks @bendemboski! Closes #10650. (commit)
- engine: Fixed a bug in the selection post-fixer (when the selection is stuck in a limit element that cannot contain text). Closes #10487. (commit)
- export-pdf: Features that do not change the content should work properly in editor modes with restricted write permissions (e.g. read-only mode). See ckeditor/ckeditor5#10670.
- find-and-replace: The
FindCommand
andFindNextCommand
commands should work properly in editor modes with restricted write permissions (e.g. read-only mode). Closes #10636. (commit) - find-and-replace: Do not replace find results removed by collaborators that landed in the
$graveyard
root. (commit) - html-embed: Embed buttons should reflect the read-only state of the editor and the HTML embed command. Closes #10182. (commit)
- html-support: Adds HTML support for all headings given in the configuration of the headings feature. Closes #10539. (commit)
- mention: Th mention panel will now hide when the editor becomes read-only. Closes #4645. (commit)
- restricted-editing: The feature should work properly in editor modes with restricted write permissions (e.g. read-only mode). Closes #10634. (commit)
- select-all: The
SelectAllCommand
command should work properly in editor modes with restricted write permissions (e.g. read-only mode). Closes #10635. (commit) - source-editing: Calling
editor.getData()
while in the source editing mode should return the data from the source editor passed through the model. Closes #10505. (commit) - source-editing: Improve source editing textarea field size and scrolling behaviour. Closes #10422. (commit)
- source-editing: Safari browser uses monospace font for text in source editing mode. Closes #10585. (commit)
- table: The
SelectColumnCommand
andSelectRowCommand
commands should work properly in editor modes with restricted write permissions (e.g. read-only mode). See #10635. (commit) - table: Color dropdown buttons in the table properties form should not be misaligned in Safari. Closes #10589. (commit)
- table: A nested widget in a multi-cell table selection should not have the selection handle. Closes #9491. (commit)
- ui: The
ContextualBalloon
positioning should use the dynamiceditor.ui.viewportOffset
value instead of staticconfig.ui.viewportOffset
. Closes #10597. (commit) - ui: The
InputTextView
class should update its#isEmpty
property on every#input
instead of#change
to stay in sync. Closes #10431. (commit) - utils: Properly stringify objects containing circular references in the
CKEditorError
class. Closes #4959. (commit) Thanks to @marcellofuschi.
Other changes
- code-block: Makes three Enter clicks necessary at the end of a code block to escape it. Closes #6682. (commit) Thanks to @marcellofuschi!
- comments: Allowed annotations not to belong to any UI (annotation will be hidden in such a case).
- comments: Refined the comment icon for consistency with other icons in the project.
- engine: Implemented the
DomConverter#setContentOf()
method to fill DOM elements with a filtered HTML source. (commit) - engine: Made properties of
XmlDataProcessor
andHtmlDataProcessor
public to allow overriding e.g. the HTML writer. Closes #10619. (commit) - engine: Introduced alternative rendering mode to
DomConverter
. (commit) - engine: Introduced flag for experimental rendering mode for the editing view. (commit)
- export-word: Refined the Export to Word icon for better discoverability.
- html-support: Optimized the editing pipeline output of the
createObjectView()
view factory function. (commit) - html-support: Enable experimental rendering in tests. (commit)
- media-embed: Optimized the editing pipeline output of the
Media#getViewElement()
view factory method. (commit) - Updated translations. (commit)
- Updated dependencies.
Released packages
Check out the Versioning policy guide for more information.
Released packages (summary)
Major releases (contain major breaking changes):
- @ckeditor/ckeditor5-html-embed: v30.0.0 => v31.0.0
Releases containing new features:
- @ckeditor/ckeditor5-autosave: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-core: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-engine: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-find-and-replace: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-mention: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-restricted-editing: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-select-all: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-source-editing: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-table: v30.0.0 => v31.0.0
Other releases:
- @ckeditor/ckeditor5-adapter-ckfinder: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-alignment: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-autoformat: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-basic-styles: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-block-quote: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-build-balloon: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-build-balloon-block: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-build-classic: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-build-decoupled-document: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-build-inline: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-ckfinder: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-clipboard: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-cloud-services: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-code-block: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-collaboration-core: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-comments: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-easy-image: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-editor-balloon: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-editor-classic: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-editor-decoupled: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-editor-inline: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-enter: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-essentials: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-export-pdf: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-export-word: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-font: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-heading: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-highlight: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-horizontal-line: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-html-support: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-image: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-indent: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-language: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-link: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-list: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-markdown-gfm: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-media-embed: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-minimap: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-operations-compressor: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-page-break: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-pagination: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-paragraph: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-paste-from-office: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-real-time-collaboration: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-remove-format: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-revision-history: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-special-characters: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-theme-lark: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-track-changes: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-typing: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-ui: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-undo: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-upload: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-utils: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-watchdog: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-widget: v30.0.0 => v31.0.0
- @ckeditor/ckeditor5-word-count: v30.0.0 => v31.0.0
- @ckeditor/letters: v30.0.0 => v31.0.0