Release highlights
We are happy to announce the release of CKEditor 5 v32.0.0.
This release introduces the following new features:
- The environment was upgraded to use webpack 5 and Node 14.
- Introduced support for the list
startandreversedattributes, including when pasting from Word. - Addedd support for autocomplete with space in the mention plugin.
- Improved handling of
<script>elements in General HTML support (GHS) feature.
MAJOR BREAKING CHANGES ℹ️
- engine:
Batch#typehas been deprecated. It will always return'default'value and reading it will log a warning in the console. UseBatch#isUndoable,Batch#isLocal,Batch#isUndoandBatch#isTypinginstead. - revision-history: Multiple changes to
Revisionproperties has been introduced that impact revision history integrations. Introduced#fromRevisionand#toRevisionproperties. Renamed#datato#diffData. The#isLockedproperty has been removed. Those changes have an impact on what data should be saved in your database and how the revision history plugin should be integrated. Please refer to the migration guide and the documentation to learn more about these changes. - revision-history: The
RevisionHistoryAdapterinterface has changed. Also,RevisionTrackerno longer usesRevisionHistoryAdapter#getRevisions()to fetch revisions during editor initialization. You should add revisions data in your integration plugin. Please refer to the migration guide and the documentation to learn how to update your revision history integration. - revision-history:
RevisionTracker#updateRevision()has been removed while#update()and#saveRevision()have been introduced instead. This, among others, may have an impact on your autosave integration. Please refer to the migration guide and the documentation to learn how to update your revision history integration. - typing:
Input#isInput()has been removed. UseBatch#isTypinginstead. - Upgraded the minimal versions of Node.js to
14.0.0due to the end of LTS.
MINOR BREAKING CHANGES ℹ️
- engine: The string value for the
Batchtype andModel#enqueueChange()is now deprecated. Using a string value will log a warning in the console. Use an object value instead. For more information, refer to the API documentation. - revision-history:
RevisionTracker#isLockedhas been removed. - revision-history: The flow for creating and updating a revision has changed. See documentation to learn what it looks like after the changes.
- The previously named
#_getTemplate()methods inCommentThreadView,CommentView, andSuggestionThreadViewwere renamed to#getTemplate(). These methods are used in annotations customization, when changing the default templates.
Features
- autosave:
Autosave#save()will now return a promise that is resolved when the autosave callback has finished. (commit) - comments: Introduced
Annotation#refreshVisibility()andAnnotations#refreshVisibility()that refresh the visibility of the annotations based on the visibility of their target elements. - comments: Introduced the
Annotation#isVisibleobservable property, that allows controlling the visibility of the annotation. - html-support: Added support for the
<script>elements. Closes #10891. (commit) - list: Implemented the numbered list properties UI. Closes #10877. (commit)
- list: Added support for reversed lists and list start index (
reversedandstartHTML attributes). Closes #10673. (commit) - paste-from-office: Added support for start index in ordered lists. Closes #11043. (commit)
- revision-history: Introduced
Revision#fromVersionandRevision#toVersion. - revision-history: Introduced new methods in
RevisionHistoryplugin:#addRevisionData(),#getRevision(),#getRevisions(). - ui: Introduced the
InputNumberViewclass and thecreateLabeledInputNumber()helper for creating number inputs (see #10877). (commit) - ui: Introduced the
InputViewclass for other inputs such asInputTextViewto inherit from (see #10877). (commit) - utils: Introduced the
isVisible()helper to detect whether DOM elements are visible to the user in DOM (see #10877). (commit) - Replaced
Batch#typewith a set of flags:Batch#isUndoable,Batch#isLocal,Batch#isUndo,Batch#isTypingwhich better represent the batch type. TheBatchconstructor andModel#enqueueChange()now expect an object. Closes #10967. (commit)
Bug fixes
- comments: DOM listeners will be detached when destroying annotation collections which prevents memory leaks.
- engine:
HTMLDataProcessor#toView()should preserve leading non-layout elements while loading partial HTML. Closes #11110. (commit) - list: The list properties feature will no longer crash when removing content from the last list item which is next to a non-list element. Closes #8642. (commit)
- mention: The mention plugin now allows searching mentions that include space characters. Closes #9741. (commit)
- pagination: The page number input view should not stretch. Used
InputNumberViewto render the page number input inPageNavigatorView. - revision-history: Fixed a crash when a revision contained overlapping suggestions.
- revision-history: Fixed a crash when content selected by triple-click was copy-pasted into the editor.
- track-changes: Fixed a crash that was happening during real-time editing when one of the users used enter inside a suggestion.
- typing: Fixed editor crash when an unrecognized transformation was given in configuration (as a string). (commit)
- watchdog: Prevented
EditorWatchdogfrom crashing during the editor destruction process when one of the plugins tries to change data at that moment. Closes #10643. (commit)
Other changes
- autosave: The
Autosaveplugin will now ignore changes coming from remote clients during real-time collaboration. Closes #9233. (commit) - build-decoupled-document: Enabled the
startIndexandreversedlist properties in document build. Closes #11037. (commit) - comments: Renamed
CommentThreadView#_getTemplate()to#getTemplate(). RenamedCommentView#_getTemplate()to#getTemplate(). - list: Renamed the
ListStyleplugin toListProperties. Closes #10964. (commit) - real-time-collaboration: Collaboration updates will now be sent with shorter delays after they are rejected. This should allow for a better user experience when multiple users are typing at the same time.
- real-time-collaboration: The
RealTimeCollaborationClient#offsetproperty is now private. - real-time-collaboration: Real-time collaboration feature will now create batches with
#isLocalflag set tofalse. - revision-history: Renamed
Revision#datatoRevision#diffData. TheRevision#isLockedproperty was removed. - revision-history: The
RevisionHistoryAdapterinterface has changed. Removed#getRevisions(),#updateRevision()and#addRevision(). Added#updateRevisions(). - revision-history: The revision history UI now will be blocked if the editor is in read only mode.
- revision-history: Added the
indexparameter inRevisionRepository#addRevision(). - revision-history: Removed
RevisionTracker#isLocked. - revision-history: Removed
RevisionTracker#updateRevision()and added#update()and#saveRevision()instead. - revision-history:
RevisionTrackerno longer usesRevisionHistoryAdapter#getRevisions()to fetch revisions during editor initialization. - revision-history: An error is now thrown when the revision history plugin configuration is missing.
- revision-history:
RevisionHistoryAdapter#getRevision()and#updateRevisions()now receive the#channelIdparameter. - track-changes: Renamed
SuggestionThreadView#_getTemplate()to#getTemplate(). - typing: The typing feature will now create batches with the
#isTypingproperty set totrue. (commit) - ui:
FocusCyclershould skip elements that are invisible to the user (see #10877). (commit) - undo: The undo feature will now create batches with the
#isUndoproperty set totrue. (commit) - users: The anonymous user will now be added to the
Usersplugin automatically when the editor initializes. - Updated translations. (commit, commit)
- Updated the required version of Node.js to 14. Closes #10972. (commit)
- Project migration to webpack 5. Closes #10668. (commit)
Released packages
Check out the Versioning policy guide for more information.
Major releases (contain major breaking changes):
Releases containing new features:
Other releases:
Released packages (summary)