Powerful rich text editor framework with a modular architecture, modern integrations, and features like collaborative editing.
We are happy to announce the release of CKEditor 5 v41.1.0.
value
of the "class"
and "style"
attribute conversion is handled in the attributeToAttribute()
upcast helper. Now while not providing the attribute's value
to conversion the helper accepts and consumes all values. Previously those values were not consumed and left for other converters to convert. Note that you should use the classes
, and the styles
fields for the fine-tuned conversion of those attributes instead of a catch-all "style"
and "class"
specified in the key
field.colorSelectorView
property will no longer be accessible from the ColorUI
plugin in the @ckeditor/ckeditor5-font/src/ui/colorui.ts
.sourceEditing.allowCollaborationFeatures
configuration flag to true
. If you want to use both these features, please read a new guide discussing the risks and add the flag to your configuration..ck-user_me
CSS class to customize or remove the highlight.presenceList.displayMe
configuration flag. When set to false
, the local user ("me" user) will not be displayed in the presence list. Defaults to true
.style
and class
attributes conversion should work with attributeToAttribute()
. Closes #4517. (commit)sourceEditing.allowCollaborationFeatures
configuration flag that suppresses the error and allows to use both features together. Closes #15764. (commit)Check out the Versioning policy guide for more information.
Minor releases (contain minor breaking changes):
Other releases:
We are happy to announce the release of CKEditor 5 v41.0.0.
We continue to improve the way the editor displays the formatting suggestions.
This release includes integration of the list features with the new suggestions behavior. All list-related suggestions are now visible in the editor content.
The dialogs finally come to the CKEditor 5 UI!
Some users found using the find and replace feature through a dropdown inconvenient as it might have covered the content, including the searched text. We listened to these voices and the find and replace UI will now be using a dialog.
If you liked the earlier user interface of this feature, you can still display it inside a dropdown by setting the config.findAndReplace.uiType
configuration option.
We have also introduced a dialog in the AI Assistant feature. Displaying the AI Assistant inside a balloon came with many UX hiccups, especially when you selected large content. It works great now.
The dialogs are now a part of the CKEditor 5 UI library so you can use them, too! Read the documentation to learn how to display your custom features inside dialogs and modals.
No more selecting, deleting, retyping with Caps Lock for long legal preambles. The case change plugin enables users to easily change text cases, applying UPPERCASE, lowercase, and Title Case. This feature simplifies text formatting by allowing quick alterations with a single click or a keyboard shortcut.
As a key component of CKEditor 5's Productivity Pack, this plugin complements and enhances the suite's editing capabilities, offering a practical tool for efficient text manipulation.
We start the new year with improvements in the new installation methods project. This includes an upgrade to the latest TypeScript version, ensuring enhanced type safety.
A key part of this release is the resolution of ECMAScript Module (ESM) compliance issues. We updated all packages and their definitions to be fully ESM-compliant. This ensures smoother integration and compatibility across various development environments.
We have also renamed exports of several classes, interfaces, and helpers to eliminate naming conflicts in the code for the new bundle that will appear later this year.
Take a look at the RFC to see what is coming: https://github.com/ckeditor/ckeditor5/issues/15502.
This release marks a significant change in the list feature. As announced before, we are phasing out the older implementation of the List
plugin, originally designed for plain lists. We are directing the development efforts towards the more advanced list v2 feature (formerly named DocumentList
). This change aims to eliminate confusion for integrators and optimize the number of list functionalities.
The DocumentList
plugins, which represent the advanced lists v2 feature, will now be available under the standard name List
. This change enables document lists across all integrations, with the new version ensuring no loss of features from the older one.
We renamed the previous List
plugins to LegacyList
, providing a fallback option for integrators after the update. We will keep the LegacyList
available for a couple of releases to lower the migration impact.
The existing DocumentList
plugins were replaced with aliases. Integrations using the older DocumentList
will continue to function without any need for configuration changes for a couple of releases. Users will be notified via console warnings to consider updating their configurations.
Additionally, we completely removed the ListStyle
plugin, which has been deprecated for a while. This change aligns with our goal to simplify the list features.
Refer to the update guide to learn more about these changes.
config.findAndReplace.uiType
configuration option. See #14973.AdjacentListsSupport
plugin is moved from the documentlist
directory to the list
directory. See #14942.UploadAdapter
class to CKFinderUploadAdapter
. See #15511.browseFiles
icon to the core
package and added it to the icons
object exported from it. See #15511.browseFiles
icon to the core
package and added it to the icons
object exported from it. See #15511.codeBlock
icon to the core
package and added it to the icons
object exported from it. See #15511.View
class to EditingView
. See #15511.findOptimalInsertionRange
function to the Schema
class as a new method. See #15511.heading1
, heading2
, heading3
, heading4
, heading5
, and heading6
icons to the core
package and added them to the icons
object exported from it. See #15511.horizontalLine
icon to the core
package and added it to the icons
object exported from it. See #15511.html
icon to the core
package and added it to the icons
object exported from it. See #15511.indent
and outdent
icons to the core
package and added them to the icons
object exported from it. See #15511.Legacy
(including directory names): List
-> LegacyList
, ListProperties
-> LegacyListProperties
, TodoList
-> LegacyTodoList
, ListEditing
-> LegacyListEditing
, ListUtils
-> LegacyListUtils
, ListPropertiesEditing
-> LegacyListPropertiesEditing
, TodoListEditing
-> LegacyTodoListEditing
. See #14942.Document
(including directory names): DocumentList
-> List
, DocumentListProperties
-> ListProperties
, TodoDocumentList
-> TodoList
, DocumentListEditing
-> ListEditing
, DocumentListUtils
-> ListUtils
, DocumentListPropertiesEditing
-> ListPropertiesEditing
, DocumentListPropertiesUtils
-> ListPropertiesUtils
, TodoDocumentListEditing
-> TodoListEditing
. See #14942.ListStyle
plugin was removed since it had been deprecated for a while. Use the ListProperties
plugin instead. See #14942.bulletedList
, numberedList
, and todoList
icons to the core
package and added them to the icons
object exported from it. See #15511.table
icon to the core
package and added it to the icons
object exported from it. See #15511.colorPalette
, previousArrow
, and nextArrow
icons to the core
package and added them to the icons
object exported from it. See #15511.--ck-z-modal
CSS custom property was renamed to --ck-z-panel
. We recommend updating custom CSS and integrations that use this custom property to avoid presentation issues. See #14973.focusables
) required by FocusCycler#constructor()
must only contain views implementing the FocusableView
interface. Failing to do so will result in a TypeScript error. If your custom code creates FocusCycler
instances, make sure that all views passed in focusables
implement the focus()
method. See #14973.FormHeaderView
component was increased. This change affects the look of the find and replace and table styling features as well as custom user interfaces that use this component. See #14973.AriaLiveAnnouncerPoliteness
changed (previously enum
, now a constant object
). See #14973.#next
and #previous
properties of a FocusCycler
will now point to the same view if there is only one focusable view (previously null
). This change may affect integrations that use this helper to manage advanced focus navigation in dynamic UIs. See #14973.undo
and redo
icons to the core
package and added them to the icons
object exported from it. See #15511.Position
interface to DomPoint
. See #15511.Dialog
plugin that allows for displaying dialog windows in the UI of the editor. Learn more about using dialogs. Closes #14973. (commit)AWSTextAdapter
should be able to handle many data objects returned in one update (chunk).AWSTextAdapter
should be able to handle data objects that were split between many updates (chunks).LinkImage
plugin loaded before Image
, which ends with extending the schema definitions before they registering them. Closes #15617. (commit)TextareaView
component should correctly update its size if its value changes while it is invisible. See #14973. (commit)Schema.addChildCheck
and Schema.addAttributeCheck
callbacks more specific. See #15290. (commit)Document
prefix was removed. The old list implementation was prefixed with the Legacy
keyword. Aliases were introduced (DocumentList
, DocumentListProperties
, TodoDocumentList
) for backward compatibility but those are marked as deprecated and log a warning in the browser console. Closes #14942. (commit)FocusCycler#focusables
collection should only contain FocusableView
instances. See #14973. (commit)#next
and #previous
properties of a FocusCycler
instance should point to the same view if there is only one focusable view registered in the focusables
collection. See #14973. (commit)Check out the Versioning policy guide for more information.
New packages:
Major releases (contain major breaking changes):
Minor releases (contain minor breaking changes):
Releases containing new features:
Other releases:
We are happy to announce the release of CKEditor 5 v40.2.0.
Enabling multiple AI model service was one of our priorities for the AI Assistant, as we wanted everyone to be able to use a platform that they find the most convenient.
We are happy to inform that as of this release, you can use the AI Assistant together with the AWS Bedrock service.
What is more, you can now extend existing adapters to enable more advanced customizations, such as decorating the AI Assistant requests.
Finally, you can even provide your own custom adapter to connect to your own model, or any model that does not have an official adapter yet.
Visit our new integration guide to learn more about integrating and customizing the AI Assistant feature.
Note that these improvements come with minor breaking changes in the editor configuration, so make sure to visit the breaking changes section and the update guide.
CKBox’s image editing capabilities, introduced in CKBox v1.6.0, are now accessible straight from the CKEditor image toolbar. CKBox users can resize, crop or rotate images right within CKEditor.
Additionally, you can also edit images which are not yet added to CKBox (for example hotlinked images). CKBox will automatically download the images in the background, to allow users to edit them without having to leave CKEditor to manually add the image into CKBox. This dual functionality, combined with server-side processing, ensures ease of use and maintains high image quality and file integrity, providing a more efficient and reliable image editing experience within CKEditor.
Please refer to the update guide to learn more about these changes.
This release introduces the new Paste Markdown feature. It will automatically format any raw Markdown source or output copied and pasted directly into the editor – without having to switch to source editing. This feature is in its experimental phase, and its behavior may change in the future. Experience this functionality firsthand by pasting Markdown content into the demo editor. We welcome your feedback and observations for ongoing improvements, so please share them in the GitHub issue.
We are excited to announce upcoming improvements to CKEditor 5's installation process, set to release next year. Our goal is to address and resolve the accumulated pain points that you experienced over the years. For a detailed overview of our plans and the background behind them, dive into our comprehensive proposal in the RFC. Your feedback is crucial in refining and perfecting these improvements, and we eagerly await your input!
insertImage
component now supports file managers, and automatically detects if you are using CKBox. We also changed the default icon for upload image from computer to better indicate it’s an upload action, not a generic image button.OpenAIAdapter
, AWSAdapter
, or a custom adapter) must be now explicitly added to the plugin list. See the update guide for details.ImageInsertUI
plugin internals were cleaned up, as it worked a bit magically with hard-coded dependencies. For example, it automatically enabled the behavior of inserting image via URL. As of now, it will not enable any external behaviors. See the update guide for details.CollapsibleView
has been moved from the @ckeditor/ckeditor5-list
package to @ckeditor/ckeditor5-ui
. You can import it like this: import { CollapsibleView } from '@ckeditor/ckeditor5-ui';
ai: Introduced AWS Bedrock support for AI Assistant. See AI Assistant integration guide to learn more.
ckbox: Enabled editing of non-CKBox images in the editor. (commit)
ckbox: Integrated the CKBox Image Editing feature into the editor. (commit)
image: Introduced the image insert dropdown as a consistent UI to insert images through different available integrations such as image upload, insert an image with the asset manager, and insert an image via URL. Closes #15303, #15149. (commit)
link: Links can now be applied by pasting a URL on a selected text. Closes #5656. (commit)
markdown-gfm: Added an experimental support for pasting markdown-formatted content. Closes #2321. (commit)
media-embed: Added support for short Dailymotion URLs (dai.ly
) in media-embed. (commit)
Thanks to @Kocal!
DocumentSelection
should not store the GHS linkA
attribute if the linkHref
attribute was removed by the two-step caret movement feature. Closes #15051. (commit)<template>
element in the content. Closes #14933. (commit)gpt-3.5-turbo-1106
model in AI Assistant.AITextAdapter
abstract class that can be extended to provide custom adapter for AI Assistant.OpenAIAdapter
and AWSAdapter
that can be extended to customize how AI Assistant requests and responses are handled.requestHeaders
configuration parameter. See API docs and migration guide.ImageUploadUI
plugin is loaded by default when the ImageBlock
or ImageInline
plugins are loaded. See #15149. (commit)CollapsibleView
class has been moved from the @ckeditor/ckeditor5-list
package to @ckeditor/ckeditor5-ui
. See #15149. (commit)insertText
command for cases using the DocumentSelection
and Selection
as applied attributes behaved differently in those cases. (commit)CollapsibleView
class has been moved from the @ckeditor/ckeditor5-list
package to @ckeditor/ckeditor5-ui
. See #15149. (commit)SplitButtonView
constructor and createDropdown()
helper accepts an instance of a ButtonView
as an action view customization. See #15149. (commit)FileDialogButtonView
class is now an instance of the ButtonView
, not just a wrapper on it. See #15149. (commit)undo
and redo
toolbar components described in the @ckeditor/ckeditor5-essentials/src/ckeditor5-metadata.json
file are now defined in the package that registers those buttons (@ckeditor/ckeditor5-undo
). Closes #15414. (commit)Check out the Versioning policy guide for more information.
Major releases (contain major breaking changes):
Minor releases (contain minor breaking changes):
Releases containing new features:
Other releases:
We are happy to announce the release of CKEditor 5 v40.1.0.
This release introduces an important user experience improvement for the track changes feature. From now on, styling changes made in the track changes mode will be also reflected in the editor content, instead of just being marked with a blue suggestion highlight.
Below is a summary of the important changes related to this improvement:
'attribute'
was introduced. All integrated features will now create 'attribute'
suggestions.SuggestionData#attributes
property, as it is used by the new suggestions.We will continue further work on this improvement, including integrating the new solution with the list feature.
We have introduced necessary changes to make sure that the AI Assistant can be used with the Azure OpenAI service. Please refer to the AI Assistant documentation for details.
tokenUrl
configuration for more seamless integration.config.aiAssistant.uiCssClass
configuration has been replaced by config.aiAssistant.useTheme
and changed its function. A new complementary .ck-ai-assistant-ui_theme
CSS class has also been introduced to the AI Assistant's UI elements. Please refer to the API documentation and the UI customization guide to learn more.MultiRootEditor#registerRootAttribute()
method to register a custom root attribute.image.insert.type
to 'auto'
.config.importWord.formatting
configuration property which is an object accepting the following properties: resets
, defaults
, styles
, and comments
. The old properties: config.importWord.defaultStyles
and config.importWord.commentsStyles
were removed. Use formatting.defaults
and formatting.comments
instead.order
property. See the AIAssistantConfig
API documentation for details.config.aiAssistant.requestParameters.stream
to configure whether the AI Assistant should use streaming or not.MultiRootEditor#registerRootAttribute()
. All roots attributes used by features should now be registered. Roots attributes passed in editor configuration are now automatically registered. Closes #15246. (commit)config.importWord.formatting
configuration property in place of config.importWord.defaultStyles
and config.importWord.commentsStyles
.'attribute'
which indicates that an attribute on a model node has changed and allows to show the change immediately in the content.AriaLiveAnnouncer
class that allows for using aria-live regions to inform screen readers about changes in editor state. AriaLiveAnnouncer
instance is available under EditorUI#ariaLiveAnnouncer
. (commit)Esc
key.ToolbarConfig
by adding an optional icon
parameter. Closes #15151. (commit)AutocompleteView
should not capture the Esc
key press event if its result pane is hidden. (commit)TextareaView
will no longer update its height (and log warnings) when the element is detached from DOM. (commit)aria-checked
attribute in dropdowns. Closes #14823. (commit)Config#get()
method should be able to return a function. Closes #14804, #12835. (commit)config.removePlugins
should be now properly filtered out when revision history and track changes data plugins are used.Replace
button should be labeled Insert
if the selection is collapsed.lark
. Closes #15096. (commit)PluginInterface.destroy()
method optional. (commit)image.insert.type
configuration to "block"
and added the "auto"
option. Closes #15158. (commit)FormHeaderView
, ButtonView
, and ListItemView
). (commit)'attribute'
suggestions: alignment, basic styles, font, format painter, heading, highlight, html embed, image (except for image styles), indent block, link, remove format, styles, table headings.ListItemGroupView
should allow using a custom label. (commit)FormHeaderView
, ButtonView
, and ListItemView
). (commit)Check out the Versioning policy guide for more information.
Minor releases (contain minor breaking changes):
Releases containing new features:
Other releases:
We are happy to announce the release of CKEditor 5 v40.0.0.
We are tremendously excited to share our AI Assistant plugin with you!
With the AI Assistant, you can boost your editing effectiveness and creativity in a completely new way. This feature gives writers and editors the power to seamlessly interact with artificial intelligence. Users can generate, expand, rewrite, improve, translate, and process the content in many different ways.
The AI Assistant can be used in two ways. You can quickly re-work selected content by choosing one of the predefined AI commands. Or, you can write your own query to generate or process the content in any way you like!
Make sure to visit the documentation and try the demo!
No more layout shifts! We have introduced setting of the image width
and height
attributes automatically during the upload/paste process to ensure the highest-quality content with no text jumping all around. While existing images won't be automatically retroactively altered, any changes to images in the editor (like resizing) will automatically set these attributes.
We've also ensured backward compatibility with CKEditor 4, particularly while maintaining user-changed aspect ratios. More details on the changes can be found in the update guide.
Just drag it!™ We have introduced a more intuitive drag-and-drop functionality for blocks and widgets. This makes content rearrangement and editing faster and easier, offering users better control over their content. Dragging by the balloon block toolbar handle is also possible, and we've updated its default icon to reflect this new drag-and-drop capability better (but it's still changeable).
Document lists — our second-generation list plugin that supports multiple content blocks in list items — have finally landed the support for to-do lists! We also added the configuration that enforces the document list to have only a single block inside the list item (we call it “simple lists”). All this is to start deprecating the Lists v1 implementation and use the document lists as default. Coming soon!
Last but not least, we prepared significant fixes to the way the contextual balloons work. They had the tendency to overflow on other elements, especially in the fixed height editors. We polished their internals, and problems should exist no more!
Please refer to the update guide to learn more about these changes.
resizedWidth
. The width
and height
attributes are now used to preserve the image's natural width and height.srcset
model attribute has been simplified. It is no longer an object { data: "...", width: "..." }
, but a value previously stored in the data
part.Comment#archivedAt
is now the property to check when deciding whether the comment thread is inside the comments archive or not (that property was #resolvedAt
before).CommentsArchive#resolvedThreads
has been renamed to #archivedThreads
. If your custom code used that property, make sure to apply this change.deletedAt
property is no longer passed in AddCommentThreadEvent
as it is not needed anymore. Instead, deleted comment threads should never be handled in addCommentThread
as they should never be added to the repository. If your custom code used that property, make sure to apply this change.CommentsRepository
after re-initializing the editor. Before, the comment thread was removed from CommentsRepository
but was added back when the editor re-connected to Cloud Services. If your custom code expected the old (incorrect) behavior, it might need a change. This change was reflected in the comments outside editor documentation page.width
and height
attributes are now preserved while loading editor content. Closes #14146. (commit)list.multiBlock
configuration option. Closes #14634. (commit)ListItemGroupView
, TextareaView
, SpinnerView
, SearchView
and AutocompleteView
. (commit)HighlightedTextView
component for better search results presentation. (commit)CommentsRepository
and, in case of real-time collaboration, they will not be added back after re-connecting to the document.Mention#toMentionAttribute()
method. Closes #14923. (commit)Comment#unlinkedAt
and Comment#archivedAt
properties and the Comment#setUnlinkedAt()
method.deletedAt
property is no longer passed in AddCommentThreadEvent
as it is not needed anymore.CommentsArchive#resolvedThreads
to #archivedThreads
.ButtonView
label logic open for extension. (commit)BallonEditor
toolbar handle and added the ability to customize it. Closes #14646. (commit)yarn run clean-up-svg-icons
script without arguments to optimize all icons in the entire project. Closes #14912. (commit)Check out the Versioning policy guide for more information.
New packages:
Major releases (contain major breaking changes):
Minor releases (contain minor breaking changes):
Other releases:
We are happy to announce the release of CKEditor 5 v39.0.2.
This is a patch release that resolves over 10 important issues. Check out the list below for more information.
type
keyword to the interface re-export (ExportWordConfig
).global
object only available in Node.js. Fixes ckeditor/vite-plugin-ckeditor5#17 and #14801. (commit)Check out the Versioning policy guide for more information.
Other releases:
The latest patch release of CKEditor 5 addresses a regression found after the last update, along with several smaller bug fixes. These changes aim to enhance stability and ensure a smoother user experience.
enablePlaceholder()
API. In this version (v39.0.1) we decided to make a step back and bring backward compatibility with the previous versions (below v39.0.0). The previous API is still deprecated, though, and the support for it will be removed in the future. Closes #14743. (commit)LinkImage
plugin and full General HTML Support enabled. Closes #12831. (commit)Check out the Versioning policy guide for more information.
Other releases:
We are happy to announce the release of CKEditor 5 v39.0.0.
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.
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.
As the new version of CKBox supports workspaces, the integration with CKEditor was updated to support them. Read more in the update guide.
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!
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:
Note: this is an experimental feature. Its API and details of its behavior may change in the upcoming releases.
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.
ckbox.assetsOrigin
is no longer supported.enablePlaceholder()
helper now uses a placeholder
property of the passed element
. It no longer takes the placeholder text as a text
argument.ColorTableView
class has been moved to the @ckeditor/ckeditor5-ui
package and remains available as a public ColorSelectorView
component..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
.CKBoxUploadAdapter
looks for categories using file extension case-insensitively. Closes #13751. (commit)model.Document#getRoots()
. (commit)placeholder
property of the element
passed to the enablePlaceholder()
helper. Closes #9925. (commit)MultiRootEditor#loadRoot()
and EditorConfig.lazyRoots
which can be used to implement the roots progressive ("lazy") loading. (commit)MultiRootEditor#getRootAttributes()
. (commit)ColorTableView
UI from ckeditor5-font
as a public ColorSelectorView
component (see #14500). (commit)min-height
should be correctly updated after switching between various annotations display modes.NS_ERROR_FAILURE
). Closes #14493. (commit)insertParagraph
command will no longer insert two paragraphs when the position is at the edge of the block. Closes #13866. (commit)CommentThread#deletedAt
property. It can be used to filter out already removed threads (e.g. in comments-outside-editor integrations).cleanSelection
event in DowncastDispatcher
for downcast conversion. The event is fired before selection
events and should be used to do any clean-ups before the model document selection is downcasted. (commit)selection
downcast event will not be fired. (commit)clearAttributes()
converter to cleanSelection()
converter. (commit)Schema#getNearestSelectionRange()
will now return null
for any position inside the graveyard root. (commit)model.DocumentSelection
will not inherit attributes from nodes inside a graveyard. (commit)DomConverter
should allow registering custom matchers to detect inline object elements. See #9888. (commit)<br>
elements in source editing. Whitespaces before a <br>
element should not be added. (commit)DescriptionItem
type.FocusObserver
should be flushed if typing occurred. See #14569. (commit)UndoCommand#event:revert
will now be fired after all changes triggered by undo are applied (including changes in post-fixer). (commit)scrollAncestorsToShowTarget()
helper take a limiter element as an argument in order to stop it from scrolling the entire viewport. Closes #14598. (commit)Check out the Versioning policy guide for more information.
New packages:
Major releases (contain major breaking changes):
Minor releases (contain minor breaking changes):
Releases containing new features:
Other releases:
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.
ColorTableView
class has been moved to the ckeditor5-ui
package and remains available as a public ColorSelectorView
component..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
.CKBoxUploadAdapter
looks for categories using file extension case-insensitively. Closes #13751. (commit)ColorTableView
UI from ckeditor5-font
as a public ColorSelectorView
component (see #14500). (commit)insertParagraph
command won't insert two paragraphs when position is at the edge of the block. Closes #13866. (commit)DomConverter
should allow registering custom matchers to detect inline object elements. See #9888. (commit)<br>
elements in source editing. Whitespaces before <br>
element should not be added. (commit)DescriptionItem
type.Check out the Versioning policy guide for more information.
Minor releases (contain minor breaking changes):
Releases containing new features:
Other releases:
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.
Check out the Versioning policy guide for more information.
Other releases: