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
start
andreversed
attributes, 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#type
has been deprecated. It will always return'default'
value and reading it will log a warning in the console. UseBatch#isUndoable
,Batch#isLocal
,Batch#isUndo
andBatch#isTyping
instead. - revision-history: Multiple changes to
Revision
properties has been introduced that impact revision history integrations. Introduced#fromRevision
and#toRevision
properties. Renamed#data
to#diffData
. The#isLocked
property 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
RevisionHistoryAdapter
interface has changed. Also,RevisionTracker
no 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#isTyping
instead. - Upgraded the minimal versions of Node.js to
14.0.0
due to the end of LTS.
MINOR BREAKING CHANGES ℹ️
- engine: The string value for the
Batch
type 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#isLocked
has 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
, andSuggestionThreadView
were 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#isVisible
observable 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 (
reversed
andstart
HTML attributes). Closes #10673. (commit) - paste-from-office: Added support for start index in ordered lists. Closes #11043. (commit)
- revision-history: Introduced
Revision#fromVersion
andRevision#toVersion
. - revision-history: Introduced new methods in
RevisionHistory
plugin:#addRevisionData()
,#getRevision()
,#getRevisions()
. - ui: Introduced the
InputNumberView
class and thecreateLabeledInputNumber()
helper for creating number inputs (see #10877). (commit) - ui: Introduced the
InputView
class for other inputs such asInputTextView
to 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#type
with a set of flags:Batch#isUndoable
,Batch#isLocal
,Batch#isUndo
,Batch#isTyping
which better represent the batch type. TheBatch
constructor 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
InputNumberView
to 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
EditorWatchdog
from 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
Autosave
plugin will now ignore changes coming from remote clients during real-time collaboration. Closes #9233. (commit) - build-decoupled-document: Enabled the
startIndex
andreversed
list properties in document build. Closes #11037. (commit) - comments: Renamed
CommentThreadView#_getTemplate()
to#getTemplate()
. RenamedCommentView#_getTemplate()
to#getTemplate()
. - list: Renamed the
ListStyle
plugin 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#offset
property is now private. - real-time-collaboration: Real-time collaboration feature will now create batches with
#isLocal
flag set tofalse
. - revision-history: Renamed
Revision#data
toRevision#diffData
. TheRevision#isLocked
property was removed. - revision-history: The
RevisionHistoryAdapter
interface 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
index
parameter inRevisionRepository#addRevision()
. - revision-history: Removed
RevisionTracker#isLocked
. - revision-history: Removed
RevisionTracker#updateRevision()
and added#update()
and#saveRevision()
instead. - revision-history:
RevisionTracker
no 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#channelId
parameter. - track-changes: Renamed
SuggestionThreadView#_getTemplate()
to#getTemplate()
. - typing: The typing feature will now create batches with the
#isTyping
property set totrue
. (commit) - ui:
FocusCycler
should skip elements that are invisible to the user (see #10877). (commit) - undo: The undo feature will now create batches with the
#isUndo
property set totrue
. (commit) - users: The anonymous user will now be added to the
Users
plugin 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)