Releases: ckeditor/ckeditor5
v23.1.0
Release highlights
We are happy to announce the release of CKEditor 5 v23.1.0.
This release introduces a new HTML embed feature.
It also comes with new API features:
- The
data-cke-ignore-events
attribute in view element that prevents CKEditor from handling events fired in this element. - The
triggerBy
option that triggers element re-render.
Other than that, this release brings several bug fixes, to name a few:
- Unsupported element causes a JavaScript error instead of being filtered out.
- Backspace does not remove all blocks in rare cases.
- List conversion throws an error if the list element is surrounded by raw text nodes.
- Opening the upload panel should focus the URL input.
- Validation for empty URL in the "Insert image via URL" dropdown.
- URLs with a
%
character are not transformed into media embeds.
Please note that there are some minor breaking changes. Be sure to review them before upgrading.
Collaboration features
The CKEditor 5 Collaboration features changelog can be found here: https://ckeditor.com/collaboration/changelog.
MINOR BREAKING CHANGES ℹ️
- table: Removed the
ensureParagraphInTableCell()
converter that corrected the model state after the conversion process. Now the model will be fixed (if needed) by the post-fixer (injectTableCellParagraphPostFixer()
). - utils: The
attachLinkToDocumentation()
helper was removed. To log errors with an attached documentation link to the console, uselogWarning()
andlogError()
.
Features
- engine: Elements with the
data-cke-ignore-events
attribute will not propagate their events to the CKEditor 5 API. Closes #4600. (commit) - engine: Introduced an automatic model-to-view reconversion by defining the
triggerBy
option for theelementToElement()
conversion helper. Closes #7956. (commit) - html-embed: Introduced the HTML embed feature. Closes #8204. (commit)
Bug fixes
- engine:
Model#deleteContent()
should properly remove content with multiple blocks selected. Closes #8145. (commit) - image: Removed focus outline in the "insert image via URL" form. Closes #7973. (commit)
- image: The insert button in the insert image dropdown is now disabled when the URL input is empty. Closes #7917. (commit)
- image: The URL input field is now focused when the image dropdown is opened. Closes #7896. (commit)
- link: Improved the look of link balloon button separators on mobiles. Closes #7704. (commit)
- link: Pressing Ctrl/Cmd+K when
LinkCommand
is disabled no longer shows the link UI. Closes #7919. (commit) - link: The autolink feature now uses
link.defaultProtocol
if set. Closes #8079. (commit) - list: List conversion does not throw an error if the list element is being surrounded by raw text nodes. Closes #8262. (commit)
- media-embed: Disabled the save button in the insert media dropdown when the input is empty. See #7917. (commit)
- media-embed: URLs with the
%
character are now allowed for embedding media. Closes #7488. (commit) - media-embed: Enabled the media embed command when the selected media is in a table cell. Closes #7604. (commit)
- table: Pasting nested tables with content unsupported by the editor elements no longer throws an exception. Closes #8098. (commit)
Other changes
- table: Table cell's content refreshing for the editing view now makes fewer view updates. (commit)
- utils: Improved the readability of custom errors in the console. Closes #8140. (commit)
- Optimized icons. (commit)
- Updated translations. (commit, commit)
Released packages
Check out the Versioning policy guide for more information.
Released packages (summary)
New packages:
- @ckeditor/ckeditor5-html-embed: v23.1.0
Minor releases (contain minor breaking changes):
- @ckeditor/ckeditor5-table: v23.0.0 => v23.1.0
- @ckeditor/ckeditor5-utils: v23.0.0 => v23.1.0
Releases containing new features:
- @ckeditor/ckeditor5-engine: v23.0.0 => v23.1.0
- @ckeditor/ckeditor5-image: v23.0.0 => v23.1.0
- @ckeditor/ckeditor5-theme-lark: v23.0.0 => v23.1.0
- @ckeditor/ckeditor5-widget: v23.0.0 => v23.1.0
Other releases:
- @ckeditor/ckeditor-cloud-services-core: v23.0.0 => v23.1.0
- @ckeditor/ckeditor5-adapter-ckfinder: v23.0.0 => v23.1.0
- @ckeditor/ckeditor5-alignment: v23.0.0 => v23.1.0
- @ckeditor/ckeditor5-autoformat: v23.0.0 => v23.1.0
- @ckeditor/ckeditor5-autosave: v23.0.0 => v23.1.0
- @ckeditor/ckeditor5-basic-styles: v23.0.0 => v23.1.0
- @ckeditor/ckeditor5-block-quote: v23.0.0 => v23.1.0
- [@ckeditor/ckeditor5-build-balloo...
v23.0.0
Release highlights
We are happy to announce the release of CKEditor 5 v23.0.0.
This release was focused on bug fixes and stability improvements. Some highlights are listed below:
- Five bug fixes for list and list style plugins.
- Extracted the "Image upload via URL" feature to a separate image insert plugin.
- Improvements for pasting as plain text using ctrl/cmd + shift + v.
- Fixed a case where the link balloon toolbar would be mispositioned in some rare cases.
Please note that there are some major breaking changes. Be sure to review them before upgrading.
Collaboration features
The CKEditor 5 Collaboration features changelog can be found here: https://ckeditor.com/collaboration/changelog.
MAJOR BREAKING CHANGES ℹ️
- image: In order to use the "insert image via URL" feature you now need to load the
ImageInsert
plugin and use theimageInsert
button instead of theimageUpload
button that implemented that functionality previously.
MINOR BREAKING CHANGES ℹ️
- clipboard: When pasting plain text each double line break is now treated as a paragraph separator, while a single line break is converted into a soft break. Formerly every single line break was treated as paragraph separation.
Features
- clipboard: Improved line to paragraph/soft break retention when pasting as plain text. Closes #7884. (commit)
- utils: Added a user-agent check for the Blink engine to the
env
module. (commit) - Introduced the
PastePlainText
feature that detects pasting with ctrl/cmd + shift + v keystroke. Closes #7799. (commit)
Bug fixes
- clipboard: Soft breaks are now properly placed in the plain text clipboard data representation by the editor. Closes #8045. (commit)
- engine:
model.History#getOperations
was returning incorrect values if history had operations with negative version numbers or version numbers differing by more than one. Closes #8143. (commit) - image: Aligned and fixed the styling for the split button in the
ImageInsert
dropdown. Closes #7986, #7927. (commit) - link: Manual decorators will no longer be corrupted by the link image plugin. Closes #7975. (commit)
- link: Prevented throwing an error when creating a link from a multi-block selection. Closes #7907. (commit)
- link: Pressing the Enter key should not throw an error when a non-collapsed selection ends with a valid URL. Closes #7983. (commit)
- link: The link balloon positioning should be correct when the selection is collapsed in some rare cases. Closes #7926. (commit)
- list: List styles plugin will no longer cause the editor to crash when indenting a list item that is the last element in the editor. Closes #8072. (commit)
- list: Undo will restore a proper value of the
list-style-type
attribute in the view element after undoing list merge. Closes #7930. (commit) - list: Fixed a bug that prevented using the same list style for nested lists. Closes #8081. (commit)
- list: The
listStyle
attribute should be inherited when inserting or replacing alistItem
with the same kind of the list (thelistType
attribute for the inserted/modified item is equal to next/previous sibling list). Closes #7932. (commit) - list: When removing the content between two lists items, the lists will be merged into a single list. The second list should adjust its
listStyle
attribute to the first list. Closes #7879. (commit) - paste-from-office: Fixed pasting a list with an empty item from Google Docs. Closes #7958. (commit)
Other changes
- cloud-services-core: Change tokens refreshing mechanism to depend on the token expiration time. (commit)
- image: The
config.image.upload.panel.items
does not need to be set anymore in order to show the "insert image via URL form". It is enough to load the newImageInsert
plugin and use the newimageInsert
button. See #8034. (commit) - image: Introduced
ImageInsert
as a standalone plugin that containsImageUpload
functionality. Closes #7890. (commit) - image: The
ImageUploadPanelView
form label should change depending on whether the image is selected or not. Closes #7878. (commit) - link: The link plugin now comes with the autolink feature enabled by default. Closes #7682. (commit)
- theme-lark: Balloon panel arrows pointing south should have realistic shadows. Closes #7928. (commit)
- Updated translations. (commit, commit)
Released packages
Check out the Versioning policy guide for more information.
...
v22.0.0
Release highlights
We are happy to announce the release of CKEditor 5 v22.0.0.
This release brings a few new features:
Please note that there are some major breaking changes. Be sure to review them before upgrading.
Collaboration features
The CKEditor 5 Collaboration features changelog can be found here: https://ckeditor.com/collaboration/changelog.
MAJOR BREAKING CHANGES ℹ️
- engine: The
config.view
callback ofDowncastHelpers
takes aDowncastConversionApi
instance instead of aDowncastWriter
. An example migration snippet can be found in a GitHub comment. See #7334. - engine: The
config.model
callback ofUpcastHelpers
takes aUpcastConversionApi
instance instead of aModelWriter
. An example migration snippet can be found in a GitHub comment. See #7334. - engine: The
config.view
parameter for upcast element-to-element conversion helpers configurations is now mandatory. You can retain previous "catch-all" behavior for upcast converter usingconfig.view = /[\s\S]+/
value.
MINOR BREAKING CHANGES ℹ️
- table: The
tableCell
model element brought by theTableEditing
plugin is no longer an object (SchemaItemDefinition#isObject
) in theSchema
but a selectable (SchemaItemDefinition#isSelectable
). Please update your integration code accordingly. See #6432. - ui: It is now possible to override existing components when adding new ones to the component factory (previously an error was thrown). See #7803.
Features
- clipboard: Pasting a plain text will inherit selection attributes. Closes #1006. (commit)
- engine: Options passed to
Editor#getData()
andDataController#get()
are now available in downcast conversion underconversionApi.options
object. Closes #7628. (commit) - engine: Added conversion API to upcast and downcast helpers. Closes #7334. (commit)
- engine: Introduced
SchemaItemDefinition#isSelectable
andSchemaItemDefinition#isContent
properties. Closes #6432. (commit) - engine: Introduced new upcast
ConversionApi
helper methods -conversionApi.safeInsert()
andconversionApi.updateConversionResult()
. New methods are intended to simplify writing event based element-to-element converters. Closes #7336. (commit) - image: Introduced the insert image via URL feature. Closes #7794. (commit)
- indent: Block indentation is now recognized as a formatting attribute. Closes #2358. (commit)
- list: Introduced the list styles feature that allows customizing the list marker. Closes #7801. (commit)
- markdown-gfm: Introduced the
Markdown
plugin. Closes #6007. (commit) - markdown-gfm: The markdown data processor has been revamped and got the dependencies updated. Closes #5988. (commit)
- utils: Introduced the
Rect#getBoundingRect()
method that returns aRect
instance containing all the rectangles passed as argument. Closes #7858. (commit) - utils: Introduced the
passive
option support in theDomEmitterMixin#listenTo()
method. Closes #7828. (commit) - widget: Keyboard vertical navigation in the text lines next to objects should move the caret to the position closest to the object. Closes #7630. (commit)
Bug fixes
- engine: Upcast conversion will now try to wrap text or inline elements in a paragraph in a place where is not allowed but a paragraph is allowed. Closes #7753, #6698. (commit)
- engine: The selection will no longer inherit attributes from an empty inline element. Closes #7459. (commit)
- link: Fixed a case where the link balloon would point invalid place after browser scroll or resize. Closes #7705. (commit)
- ui: Dropdown panels from the editor's main toolbar should always float above the contextual balloons from the editor's content. Closes #7874. (commit)
- ui: Balloon toolbar should reposition and ungroup items correctly when the window resizes. Closes #6444. (commit)
- utils:
Rect
utility returns wrong sizes in case of a sequenced range. Closes #7838. (commit)
Other changes
v21.0.0
Release highlights
We are happy to announce the release of CKEditor 5 v21.0.0.
This release packs quite a few all around improvements, including:
- A convenient UI for changing the image's width to a predefined size.
- Autolinking URLs and emails in editor content.
- Distinguishing between inside and outside
<code>
. - Better experience when replacing (typing over) a link text.
We fixed also a handful of bug fixes, for example:
- Calling the
editor.setData()
will now also clear the undo stack. - Linking to a part of to-do list item.
- Automatic link decorators in case of a linked image.
Finally, we also took care of some developer experience-oriented improvements:
- We changed marker conversion, so that it doesn't break HTML structure in some cases.
- Introduced a new
RawElement
class to make it simpler to implement features like "embedding raw HTML".
Please note that there are some major breaking changes, be sure to review them before upgrading.
Blog post link coming soon…
Collaboration features
The CKEditor 5 Collaboration features changelog can be found here: https://ckeditor.com/collaboration/changelog.
MAJOR BREAKING CHANGES ℹ️
- The
editor.setData()
method now clears the undo and redo stacks. - engine: The
Text#is()
andTextProxy#is()
methods (in the model and view) now expect to be called with'$text'
instead of'text'
and'$textProxy'
instead of'textProxy'
. - engine: The
is()
method (e.g.Element#is()
,Text#is()
,AttributeElement#is()
orContainerElement#is()
) in both, the model and the view, no longer treats the first argument as an element name. To check the element's name use the second argument instead (node.is( 'element', 'paragraph' )
instead ofnode.is( 'paragraph' )
). - engine: Marker conversion to data has been revamped. The data format changed, the new conversion helpers were introduced and a new rule has been implemented that a comma (
,
) is not allowed in a marker name. See the GitHub issue for a walkthrough and example migration path. - engine: The
DomConverter#getParentUIElement()
method was renamed toDomConverter#getHostViewElement()
because now it supports bothUIElement
andRawElement
(see #4469).
MINOR BREAKING CHANGES ℹ️
- engine: The
bindTwoStepCaretToAttribute()
utility function has been removed. Useeditor.plugins.get( TwoStepCaretMovement ).registerAttribute()
instead. - table: The
findAncestor()
utility function was removed. - table: The parameters of
TableUtils#createTable()
has changed. Useoptions
object to pass number ofrows
andcolumns
. - table: The
removeEmptyRows()
andremoveEmptyRowsColumns()
utility functions does not require thebatch
parameter any more. - table: The
downcastTableHeadingRowsChange()
downcast converter has been removed. It is no longer possible to overrideheadingRows
attribute change in a single converter. This behavior can be customized using a table downcast converter. See #7601.
Features
- autoformat: Block autoformat can also be triggered in blocks other than a paragraph. Closes #6170. (commit)
- autoformat: Enabled autoformat feature also for blocks that are not empty. (commit)
- engine: Implemented the view
RawElement
. Added theDowncastWriter#createRawElement()
method. Closes #4469. (commit) - engine: The method
DataController#set()
is now decorated so plugins can listen toeditor.setData()
calls. (commit) - engine: Introduced a new marker conversion helpers that produce semantic HTML data output. See
DowncastHelpers#markerToData()
andUpcastHelpers#dataToMarker()
. Closes #7556. (commit) - engine: Added model
Position#findAncestor()
andElement#findAncestor()
methods. Closes #3233. (commit) - engine: Changed the visibility scope of
Mapper#findPositionIn()
fromprivate
topublic
. (commit) - engine: Added
Range#getJoined()
method for joining ranges. (commit) - image: Introduced the UI for a manual image resizing via a dropdown or standalone buttons. Closes #5201. (commit)
- image: Introduced the UI for restoring original image size. Closes #5197. (commit)
- link: Added an icon indicating in the top-right corner of an image that informs the image is linked. Closes #7457. (commit)
- link: Typing over the selected link will not remove the link itself. Instead, the typed text will replace the link text. Closes #4762. (commit)
- link: Added the
AutoLink
feature which replaces a plain text with a link if typed or pasted content is the link. Closes #4715. (commit) - page-break: Added support for pasting page breaks from MS Word. Closes #2508. (commit)
- table: Added option to set heading rows and columns for
insertTable
command andTableUtils#createTable()
. Closes #6768. (commit) - typing: Introduced the
TwoStepCaretMovement
plugin. See [#74...
v20.0.0
Release highlights
We are happy to announce the release of CKEditor 5 v20.0.0.
This release brings some highly anticipated features:
- Support for linking images.
- Typing around widgets.
- An option to automatically set link protocol.
- Improved selection handling when working with links.
New features were also accompanied by a set of bug fixes, to name a few:
- Autoformatting will no longer change formatting when typing in an inline code.
- Editor will no longer crash if there's a HTML comment in the source data.
TODO: Add a link to the blog post.
Collaboration features
The CKEditor 5 Collaboration features changelog can be found here: https://ckeditor.com/collaboration/changelog.
MAJOR BREAKING CHANGES ℹ️
- ckeditor5: Node
>=12.0.0
is required now.
MINOR BREAKING CHANGES ℹ️
- table: The
TableNavigation
plugin was renamed toTableKeyboard
. - table: The values returned by the
TableWalker
iterator have changed. See #6785. - widget: Removed the
getWidgetTypeAroundPositions()
helper since the "Insert new paragraph" buttons are now visible regardless of the widget location in the document - The
isTableWidget()
andtoTableWidget()
utility functions were removed. - The functions
getSelectedTableWidget()
andgetTableWidgetAncestor()
fromtable/utils
module were moved to thetable/utils/widget
module. - The functions
getSelectedTableCells()
,getTableCellsContainingSelection()
,getSelectionAffectedTableCells()
,getRowIndexes()
,getColumnIndexes()
, andisSelectionRectangular()
fromtable/utils
module were moved totable/utils/selection
module. - The functions
getVerticallyOverlappingCells()
,splitHorizontally()
,getHorizontallyOverlappingCells()
, andsplitVertically()
fromtable/utils
module were moved totable/utils/structure
module. - The functions
findAncestor()
,updateNumericAttribute()
,createEmptyTableCell()
, andisHeadingColumnCell()
fromtable/commands/utils
module were moved totable/utils/common
module. - The functions
getSingleValue()
andaddDefaultUnitToNumericValue()
fromtable/commands/utils
module were moved totable/utils/table-properties
module. - The functions
cropTableToDimensions()
andtrimTableCellIfNeeded()
fromtable/tableselection/croptable
module were moved totable/utils/structure
module. - The functions
repositionContextualBalloon()
,getBalloonTablePositionData()
, andgetBalloonCellPositionData()
fromtable/ui/utils
module were moved totable/utils/ui/contextualballoon
module. - The functions
getBorderStyleLabels()
,getLocalizedColorErrorText()
,getLocalizedLengthErrorText()
,colorFieldValidator()
,lengthFieldValidator()
,lineWidthFieldValidator()
,getBorderStyleDefinitions()
,fillToolbar()
, andgetLabeledColorInputCreator()
fromtable/ui/utils
module were moved totable/utils/ui/table-properties
module. - The
defaultColors
constant fromtable/ui/utils
module was moved totable/utils/ui/table-properties
module.
Features
- link: Introduced the linking images feature. Closes #7330. (commit)
- link: Introduced the
LinkImageUI
plugin that brings a UI to wrap images in links. Closes #7331. (commit) - link: A fake caret (selection) should be displayed in the content when the link input has focus and the browser does not render the native caret (selection). Closes #4721. (commit)
- link: Introduced the
config.link.defaultProtocol
option for adding it automatically to the links when it's not provided by the user in the link form. Closes #4858. (commit) - theme-lark: Added styles for the fake link caret (selection) (see #4721). (commit)
- theme-lark: Added styles for a "fake caret" brought by the
WidgetTypeAround
plugin (see #6693). (commit) - typing: Created a public
isNonTypingKeystroke()
helper (see #6693). (commit) - upload: Introduced the
config.simpleUpload.withCredentials
request configuration. Closes #7282. (commit) - utils: Created
isArrowKeyCode()
,getLocalizedArrowKeyCodeDirection()
, andisForwardArrowKeyCode()
helpers (see #6693). (commit) - widget: Implemented keyboard support for inserting paragraphs around block widgets using a "fake horizontal caret" (
WidgetTypeAround
). Both "Insert new paragraph" buttons are now always displayed for all block widgets regardless of their location in the document. Closes #6693, #6825, #6694. (commit)
Bug fixes
- autoformat: Autoformatting should not occur inside an existing text with a model
code
attribute. Closes #1239. (commit) - engine: The editor should not crash when the initial data includes HTML comments. Closes #5734. (commit)
- engine: The model selection post-fixer should not set a new selection if the ranges before and after post-fixing are the same (see #6693). (commit)
- engine: Backspace will no longer change the type of the trailing block. Closes #6680. (commit)
- font: The Font Family feature should apply the complete family value from the configuration when
config.fontFamily.supportAllValues
istrue
. Closes #7285. (commit) - image: The widget toolbar won't be shown if an empty collection of items was provided in the editor's configuration. Closes #5857. (commit)
- image: The
src
andalt
attributes for the image element will be always added to the editor's data. Even if they are empty. Closes #5033. (commit) - table: Table multi-cell selection shoul...
v19.1.1
Bug fixes
- paste-from-office: The paste from Office feature should retain background and font styles when pasting tables. Closes #7275. (commit)
Released packages
Check out the Versioning policy guide for more information.
Released packages (summary)
Other releases:
- @ckeditor/ckeditor5-build-balloon: v19.0.1 => v19.0.2
- @ckeditor/ckeditor5-build-balloon-block: v19.0.1 => v19.0.2
- @ckeditor/ckeditor5-build-classic: v19.0.1 => v19.0.2
- @ckeditor/ckeditor5-build-decoupled-document: v19.0.1 => v19.0.2
- @ckeditor/ckeditor5-build-inline: v19.0.1 => v19.0.2
- @ckeditor/ckeditor5-paste-from-office: v19.0.1 => v19.0.2
- @ckeditor/ckeditor5-utils: v19.0.1 => v19.0.2
v19.1.0
Release highlights
We are happy to announce the release of CKEditor 5 v19.1.0.
This release further refines the table plugin, brings a helper for convenient typing in tight places before or after widgets and brings a major change in our code infrastructure. Most notable enhancements are:
- Pasting within a table, with different table selection — which marks an end of our Table selection stage III task.
- New widget feature, allowing to type before or after a widget in case there's no space around it.
- Project migration to a monorepo architecture.
But we did not stop there, as the release comes with several bug fixes too:
- Entities handling in code blocks.
- Potential editor crash when removing a column.
- Editor crash when inserting a table row/column with another widget selected in a cell.
Read more in the blog post: https://ckeditor.com/blog/CKEditor-5-v19.1.1-with-table-enhancements-typing-around-widgets-and-print-to-PDF-feature/
Collaboration features
The CKEditor 5 Collaboration features changelog can be found here: https://ckeditor.com/collaboration/changelog.
MINOR BREAKING CHANGES ℹ️
- media-embed: The
MediaEmbedUI#form
property was removed from the API. - table: The
cropTable()
utility method was removed. Use thecropTableToDimensions()
instead. - theme-lark: A new
--ck-color-focus-border-coordinates
CSS custom property has been added and the existing--ck-color-focus-border
property now uses it internally. If your integration overrides the latter, we recommend you update the former to avoid compatibility issues with various editor UI features.
Features
- paragraph: Implemented the
InsertParagraphCommand
registered as'insertParagraph'
in the editor. Closes #6823, #7229. (commit) - table: Introduced support for pasting tables into a selected table fragment. Closes #6120. (commit)
- table: Introduced table cells selection using keyboard. Closes #6115, #3203. (commit)
- theme-lark: Brought styles for the feature allowing users to type in tight spots around block widgets (see #407). (commit)
- widget: Brought the feature allowing users to type in tight spots around block widgets where web browsers do not allow the caret to be placed (see #407). Closes #6740, #6688, #6689, #6695. (commit)
Bug fixes
- cloud-services: A
Token
instance will be destroyed by theCloudServices
context plugin. Closes #7248. (commit) - code-block: Fixed conversion of some entities (like
,&
) in a code block. Closes #5901. (commit) - media-embed: Made it possible to use the
mediaEmbed
button more than once (in more than one toolbar. Closes #6333. (commit) - media-mebed: The media widget conversion will no longer discard widget internals (drag or resize handlers, buttons to insert paragraphs, etc.) injected by other features when converting the URL (see #407). (commit)
- table: Setting the column as a header will now properly split col-spanned cells. Closes #6658. (commit)
- table: The table properties balloon should always be visible if the table is bigger than a visible viewport. Closes #6190. (commit)
- table: When the state is restored or the user enters color value manually, the color input will now properly match color label (if any is available). Closes #6791. (commit)
- table: The editor will not crash when removing columns next to row-spanned cells. Closes #6789. (commit)
- table: The table properties button should not be enabled if all the property commands are disabled. Closes #6679. (commit)
- table: Table heading rows should be properly updated after removing rows as a side effect of merging cells. Closes #6667. (commit)
- table: Empty table rows are properly handled during conversion and layout post-fixing. Closes #3274. (commit)
- table: Shift+click will now use an anchor cell if there is any. Closes #6453. (commit)
- table: Fixed insert table row/column commands when a widget is selected inside of a table cell. Closes #6607. (commit)
- table: Table keyboard navigation should not alter the native Shift+Arrow behavior inside of a table cell. Closes #6641. (commit)
- table: Merging cells no longer wraps the text in a
<span>
element rather than paragraph in a certain scenario. Closes #6260. (commit) - widget: The widget toolbar should always be visible even if the widget is bigger than a visible viewport (see #6190). (commit)
Other changes
- mention: Renamed the
MentionAttribute._uid
to aMentionAttribute.uid
as it needs to be used by integrators when implementing custom converters. Closes ...
v19.0.0
We are happy to announce the release of CKEditor 5 v19.0.0.
This release is focused on further improving the table selection plugin and includes following the enhancements:
- An option to select an entire row or column.
- Custom keyboard handling in tables, allowing for consistent and more convenient navigation using the keyboard.
- Improved removing rows or columns from complex tables.
- Fixed a few cases where an editor could be crashed.
We also introduced support for plural forms in our translation API, added the select all feature and created the supportAllValues
option to preserve any font family or size value.
We also did several performance tweaks to improve CKEditor 5 data processing and rendering time.
A few bugs have been fixed, most notably:
- Font retention when pasting from Microsoft Word.
- Support for special characters in mention matching.
- Artifact characters produced when typing after an emoji with text transformation enabled.
Finally, this release comes with some important breaking changes. The most notable ones are:
- Make sure the latest version of the
Essentials
plugin or theSelectAll
plugin is installed in your integration. Either is required for proper keystroke handling in editor widgets. - The format of stored editor translations changed. If you use
window.CKEDITOR_TRANSLATIONS
, see #334. - The
translate()
function from thetranslation-service
was marked as protected. See #334. - The
getPositionedAncestor()
helper will no longer return the passed element when it is positioned. - The
ViewCollection
no longer has thelocale
property. - The
ViewCollection#constructor()
no longer accepts thelocale
parameter. - The
LabeledView
component was renamed toLabeledFieldView
. Also, its instance of a labeled component's view is available throughLabeledFieldView#fieldView
. It replacedLabeledView#view
. - The
DropdownView#focusTracker
property was removed as it served no purpose. - From now on, the
SpecialCharactersNavigationView
is an instance of theFormHeaderView
and unnecessarySpecialCharactersNavigationView#labelView
was removed. - The
env.isEdge
property was removed. See ckeditor/ckeditor5#6202.
Check the list of packages below to learn more about these and other minor breaking changes.
Blog post coming soon...
Collaboration features
The CKEditor 5 Collaboration features changelog can be found here: https://ckeditor.com/collaboration/changelog.
Dependencies
New packages:
Major releases (contain major breaking changes):
- @ckeditor/ckeditor5-special-characters: v18.0.0 => v19.0.0
- @ckeditor/ckeditor5-ui: v18.0.0 => v19.0.0
- @ckeditor/ckeditor5-utils: v18.0.0 => v19.0.0
Major releases (contain minor breaking changes):
- @ckeditor/ckeditor5-ui: v18.0.0 => v19.0.0
- @ckeditor/ckeditor5-utils: v18.0.0 => v19.0.0
- @ckeditor/ckeditor5-widget: v18.0.0 => v19.0.0
Major releases (dependencies of those packages have breaking changes):
- @ckeditor/ckeditor-cloud-services-core: v18.0.0 => v19.0.0
- @ckeditor/ckeditor5-adapter-ckfinder: v18.0.0 => v19.0.0
- @ckeditor/ckeditor5-alignment: v18.0.0 => v19.0.0
- @ckeditor/ckeditor5-autoformat: v18.0.0 => v19.0.0
- @ckeditor/ckeditor5-autosave: v18.0.0 => v19.0.0
- @ckeditor/ckeditor5-basic-styles: v18.0.0 => v19.0.0
- @ckeditor/ckeditor5-block-quote: v18.0.0 => v19.0.0
- @ckeditor/ckeditor5-build-balloon: v18.0.0 => v19.0.0
- @ckeditor/ckeditor5-build-balloon-block: v18.0.0 => v19.0.0
- @ckeditor/ckeditor5-build-classic: v18.0.0 => v19.0.0
- @ckeditor/ckeditor5-build-decoupled-document: v18.0.0 => v19.0.0
- @ckeditor/ckeditor5-build-inline: v18.0.0 => v19.0.0
- @ckeditor/ckeditor5-ckfinder: v18.0.0 => v19.0.0
- @ckeditor/ckeditor5-clipboard: v18.0.0 => v19.0.0
- @ckeditor/ckeditor5-cloud-services: v18.0.0 => v19.0.0
- @ckeditor/ckeditor5-code-block: v18.0.0 => v19.0.0
- @ckeditor/ckeditor5-core: v18.0.0 => v19.0.0
- @ckeditor/ckeditor5-easy-image: v18.0.0 => v19.0.0
- @ckeditor/ckeditor5-editor-balloon: v18.0.0 => v19.0.0
- @ckeditor/ckeditor5-editor-classic: v18.0.0 => v19.0.0
- @ckeditor/ckeditor5-editor-decoupled: v18.0.0 => v19.0.0
- @ckeditor/ckeditor5-editor-inline: v18.0.0 => v19.0.0
- @ckeditor/ckeditor5-engine: v18.0.0 => v19.0.0
- @ckeditor/ckeditor5-enter: v18.0.0 => v19.0.0
- @ckeditor/ckeditor5-essentials: v18.0.0 => v19.0.0
- @ckeditor/ckeditor5-font: v18.0.0 => v19.0.0
- @ckeditor/ckeditor5-heading: v18.0.0 => v19.0.0
- [@ckeditor/...
v18.0.0
We are happy to announce the release of CKEditor 5 v18.0.0. This release introduces support for selecting multiple table cells, rows or columns and it improves structure retention for lists pasted from Microsoft Word.
We also modified our builds to include the text transformation plugin and enabled toolbar item grouping for the inline editor and balloon editor builds.
As usual, we also fixed a couple of bugs and improved existing features, mostly in the table plugin.
Finally, this release comes with a couple of important breaking changes. The most notable ones are:
- Constructor for
EditingController
,DataController
andView
classes now require aStylesProcessor
instance. - Constructor for
DomConverter
,HtmlDataProcessor
andXmlDataProcessor
classes and thecreateViewElementFromHighlightDescriptor()
function now require an instance of view document. - The
#document
getter was removed from model nodes. - The
GFMDataProcessor()
requires the view document instance as its first parameter. - The
BalloonToolbar
plugin now groups the overflowing items by default.
Check the list of packages below to learn more about above and other minor breaking changes.
Blog post coming soon...
Collaboration features
The CKEditor 5 Collaboration features changelog can be found here: https://ckeditor.com/collaboration/changelog.
Dependencies
Major releases (contain major breaking changes):
- @ckeditor/ckeditor5-editor-inline: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-engine: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-markdown-gfm: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-ui: v17.0.0 => v18.0.0
Major releases (contain minor breaking changes):
- @ckeditor/ckeditor5-engine: v17.0.0 => v18.0.0
Major releases (dependencies of those packages have breaking changes):
- @ckeditor/ckeditor-cloud-services-core: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-adapter-ckfinder: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-alignment: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-autoformat: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-autosave: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-basic-styles: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-block-quote: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-build-balloon: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-build-balloon-block: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-build-classic: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-build-decoupled-document: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-build-inline: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-ckfinder: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-clipboard: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-cloud-services: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-code-block: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-core: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-easy-image: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-editor-balloon: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-editor-classic: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-editor-decoupled: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-enter: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-essentials: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-font: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-heading: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-highlight: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-horizontal-line: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-image: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-indent: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-link: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-list: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-media-embed: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-mention: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-page-break: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-paragraph: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-paste-from-office: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-remove-format: v17.0.0 => v18.0.0
- @ckeditor/ckeditor5-restricted-editing: v17.0.0 => [v18.0.0](https://github.com/ckeditor/ckeditor5-restricted-editin...
v17.0.0
We are happy to announce the release of CKEditor 5 v17.0.0.
From the end user perspective, this release introduces support for styling tables and table cells as well as a new special characters picker feature. We also worked on improving the editor initialization and data processing performance.
From the developer perspective, we added support for editor contexts, adjusted the watchdog to work with editor contexts (which introduced breaking changes in that package) and introduced an extensible system for parsing and normalizing CSS properties which main goal was to make the editor better pick up certain style names in pasted/loaded content.
As usual, we also fixed a couple of bugs and improved existing features. The two features which got most improvements are image resizing and the restricted editing feature.
Finally, this release comes with a couple of important breaking changes. The most notable ones are:
- The decoupled document build: the highlight plugin was replaced with font color and font background color features. The upgrade path requires performing data migration or customizing the build to use the highlight feature. Refer to https://github.com/ckeditor/ckeditor5-build-decoupled-document/releases/tag/v17.0.0 for more information.
- The watchdog package: the
Watchdog
class was renamed and moved to a new module. See https://github.com/ckeditor/ckeditor5-watchdog/releases/tag/v17.0.0 for more information. - The restricted editing package: the class used by this feature to mark exceptions was changed from
ck-restricted-editing-exception
torestricted-editing-exception
. The upgrade path requires performing data migration. Refer to https://github.com/ckeditor/ckeditor5-restricted-editing/releases/tag/v17.0.0 for more information.
Check the list of packages below to learn more about other breaking changes.
Read more in the blog post: https://ckeditor.com/blog/CKEditor-5-v17.0.0-with-table-styles-special-characters-and-performance-improvements/.
Collaboration features
The CKEditor 5 Collaboration features changelog can be found here: https://ckeditor.com/collaboration/changelog.
Dependencies
New packages:
Major releases (contain major breaking changes):
- @ckeditor/ckeditor5-alignment: v16.0.0 => v17.0.0
- @ckeditor/ckeditor5-restricted-editing: v16.0.0 => v17.0.0
- @ckeditor/ckeditor5-theme-lark: v16.0.0 => v17.0.0
- @ckeditor/ckeditor5-watchdog: v16.0.0 => v17.0.0
Major releases (contain minor breaking changes):
- @ckeditor/ckeditor5-font: v16.0.0 => v17.0.0
- @ckeditor/ckeditor5-image: v16.0.0 => v17.0.0
- @ckeditor/ckeditor5-utils: v16.0.0 => v17.0.0
- @ckeditor/ckeditor5-widget: v16.0.0 => v17.0.0
Releases containing new features:
- @ckeditor/ckeditor5-engine: v16.0.0 => v17.0.0
- @ckeditor/ckeditor5-mention: v16.0.0 => v17.0.0
- @ckeditor/ckeditor5-table: v16.0.0 => v17.0.0
- @ckeditor/ckeditor5-typing: v16.0.0 => v17.0.0
- @ckeditor/ckeditor5-ui: v16.0.0 => v17.0.0
Other releases:
- @ckeditor/ckeditor-cloud-services-core: v16.0.0 => v17.0.0
- @ckeditor/ckeditor5-adapter-ckfinder: v16.0.0 => v17.0.0
- @ckeditor/ckeditor5-autoformat: v16.0.0 => v17.0.0
- @ckeditor/ckeditor5-autosave: v16.0.0 => v17.0.0
- @ckeditor/ckeditor5-basic-styles: v16.0.0 => v17.0.0
- @ckeditor/ckeditor5-block-quote: v16.0.0 => v17.0.0
- @ckeditor/ckeditor5-build-balloon: v16.0.0 => v17.0.0
- @ckeditor/ckeditor5-build-balloon-block: v16.0.0 => v17.0.0
- @ckeditor/ckeditor5-build-classic: v16.0.0 => v17.0.0
- @ckeditor/ckeditor5-build-decoupled-document: v16.0.0 => v17.0.0
- @ckeditor/ckeditor5-build-inline: v16.0.0 => v17.0.0
- @ckeditor/ckeditor5-ckfinder: v16.0.0 => v17.0.0
- @ckeditor/ckeditor5-clipboard: v16.0.0 => v17.0.0
- @ckeditor/ckeditor5-cloud-services: v16.0.0 => v17.0.0
- @ckeditor/ckeditor5-code-block: v16.0.0 => v17.0.0
- @ckeditor/ckeditor5-core: v16.0.0 => v17.0.0
- @ckeditor/ckeditor5-easy-image: v16.0.0 => v17.0.0
- @ckeditor/ckeditor5-editor-balloon: v16.0.0 => v17.0.0
- @ckeditor/ckeditor5-editor-classic: v16.0.0 => v17.0.0
- @ckeditor/ckeditor5-editor-decoupled: v16.0.0 => v17.0.0
- @ckeditor/ckeditor5-editor-inline: v16.0.0 => v17.0.0
- @ckeditor/ckeditor5-enter: v16.0.0 => v17.0.0
- @ckeditor/ckeditor5-essentials: v16.0.0 => v17.0.0
- @ckeditor/ckeditor5-heading: v16.0.0 => [v17.0.0](https://github.com/ckeditor/ckeditor5-he...