Skip to content

Latest commit

 

History

History
781 lines (673 loc) · 103 KB

CHANGELOG.md

File metadata and controls

781 lines (673 loc) · 103 KB

Changelog

42.0.1 (July 11, 2024)

We are happy to announce the release of CKEditor 5 v42.0.1.

Release highlights

This is a patch release that fixes issues with ckeditor5-editor.css and other editor-only stylesheets that contained extra newline characters causing incorrect syntax reported in ckeditor/ckeditor5#16670.

Additionally, if you maintain custom CKEditor 5 plugins and migrated them to the new package generator, you should update @ckeditor/ckeditor5-dev-build-tools to the latest version to avoid this problem in your plugin.

Released packages

Check out the Versioning policy guide for more information.

Released packages (summary)

Other releases:

42.0.0 (June 26, 2024)

We are happy to announce the release of CKEditor 5 v42.0.0

Release highlights

New installation methods

We are excited to announce the latest release of CKEditor 5, bringing major improvements to simplify the installation and setup process. After extensive research and gathering feedback, we have improved the setup methods to enhance the developer experience and align with modern standards.

The most prominent changes:

  • All plugins and core features are now available from the unified ckeditor5 and ckeditor5-premium-features packages, reducing dependency management complexity.
  • Our packages became bundler-agnostic. You can use whatever bundler you want (such as Vite or esbuild), to integrate CKEditor 5.
  • CSS files are now distributed separately from JavaScript, allowing for parallel downloading, easier customization, and improved performance.
  • All the new distribution methods (available via npm, CDN, and ZIP downloads) allow dynamic plugin registration making it easy to add or remove plugins dynamically.

The old installation methods are still supported, but we put them on the deprecation path. Read more about this in our migration guides.

New Builder

Along with the new release, we present you the brand new CKEditor 5 Builder.

The new Builder allows you to start with one of the predefined presets, customize it by adding and removing features, and observe the changes live in an editor preview (and play with the editor!). Once you are happy with your custom setup, you get ready-to-use code snippets for React, Angular, Vue, and VanillaJS setups for both npm and CDN distributions.

Updated documentation

We rewrote large parts of the documentation to complete the picture and ensure consistency across the ecosystem. The entire Getting started section was redesigned to focus on the new installation methods and to better guide the integrator through the ecosystem.

If you need clarification or a more in-depth explanation, please let us know.

Migration paths

Finally, detailed migration guides can be found in our documentation. These guides provide step-by-step instructions and examples to help you seamlessly transition to the new installation methods:

We value your input, so please share your experiences, ask questions, and provide feedback to help us refine these changes. Join us in this exciting new chapter for CKEditor 5 and let’s make the developer experience as smooth and enjoyable as possible.

Removal of superbuild and predefined builds from the CDN

We have stopped publishing the superbuild and predefined builds to our CDN. Predefined builds can still be accessed as an npm package. If you want to keep using our CDN with new versions of the editor, we recommend migrating to the new installation methods.

Other updates

We are excited to announce a major update to our premium Export to Word feature, delivering significantly improved quality with multiple enhancements and bug fixes. This release also brings a substantial reduction in the conversion time. Export to Word v2 is an opt-in feature right now, and to use it you need to slightly change the editor’s configuration. Detailed information can be found in the documentation.

MINOR BREAKING CHANGES ℹ️

  • image: The Insert image via URL UI component form has been moved to a modal dialog instead of being available directly in the insert image dropdown.
  • image: Increased specificity of the .image-style-block-align-[right/left], .image-style-align-[right/left], and .image-style-side CSS classes by adding the .image class. See #16317.
  • media-embed: The media embed feature now uses a modal dialog (instead of a toolbar dropdown) for inserting media.
  • pagination: If you have custom CSS styles that override the default styling of the Pagination elements, they might stop working after this change. The reason is that a stricter CSS selector with ck-pagination-loaded is now used to hide or show these elements.

Features

  • engine: Schema now supports disallowing items. Introduced the SchemaItemDefinition#disallowIn, SchemaItemDefinition#disallowChildren and SchemaItemDefinition#disallowAttributes properties. Closes #15835. (commit)
  • engine: Introduced the DiffItemInsert#action, DiffItemInsert#before and DiffItemRemove#action properties which give more information about the change that happened in the model. Refer to the API documentation to learn more. Closes #15800. (commit)
  • export-word: Added support for Export to Word API v2.
  • image: Added menu bar integration for the insert image component. The menuBar:insertImage component is by default added to the "Insert" menu and replaces current buttons related to image insertion. Closes #16445. (commit)
  • list-multi-level: Added the menu bar integration for multi-level lists. The menuBar:multiLevelList component is by default added in the "Format" menu.
  • media-embed: Added menu bar integration to media embed. The "Media" button is now available in the "Insert" menu. (commit)
  • watchdog: Export the EditorCreatorFunction and WatchdogConfig types from the main index file. (commit)

Bug fixes

  • ai: The h1 tags will no longer be normalized to h2 tags in the AI Assistant response if the editor has h1 tags enabled in its content.
  • ckbox: The image toolbar stays attached to the image after closing CKBox. Closes #16153. (commit)
  • ckeditor5-premium-features: Use the new @ckeditor/ckeditor-cloud-services-collaboration build targeting es2022 when creating a browser build of ckeditor5-premium-features.
  • comments: Prevent crashes in narrow and wide sidebars when the EditorAnnotations plugin is not loaded.
  • engine: Preserve repeated spaces in text that is contained within an element that renders (repeated) white space. Closes #16124. (commit)
  • export-word: Collaboration features should work with Export Word v2 API.
  • image: Buttons inside the insertImage dropdown will no longer have an unnecessary tooltip. (commit)
  • image: Increased specificity of the .image-style-block-align-[right/left], .image-style-align-[right/left], and .image-style-side CSS classes by adding the .image class. Closes #16317. (commit)
  • link: Set inputmode=url to a link balloon form input. Closes #16389. (commit)
  • list-multi-level: The toolbar button should be on when the multi-level list is selected. This refers to the single button, not the split button. See #16345.
  • pagination: The PageBreak and Pagination plugin styles no longer conflict. Closes #16506.
  • real-time-collaboration: Long user names should render correctly in the collapsed presence list when the config.presenceList.onClick configuration is set.
  • track-changes: Fixed the commentsrepository-duplicated-comment-thread-id error thrown after calling TrackChangesData#getDataWithAcceptedSuggestions() and TrackChangesData#getDataWithDiscardedSuggestions().
  • track-changes: Fixed the editor crash in a scenario involving real-time collaboration and undo, when a suggestion was created twice on the same row.
  • ui: Fixed incorrect position of the block toolbar tooltip handle. Closes #16365. (commit)
  • ui: Prevented an editor error in a situation where tooltip was unpinned after it was already removed. This happened when the "Unlink" button was pressed while the tooltip was shown. (commit)
  • ui: The TooltipManager tooltips should immediately show up when triggered by user focus for better responsiveness and accessibility. (commit)
  • Add declare to dynamically populated class fields. Closes #16386. (commit)

Other changes

  • ai: Slightly improved the quality of the AI Assistant responses when the editor selection is empty.
  • ckeditor5: Moved the @ckeditor/ckeditor5-build-* packages to devDependencies to reduce the installation size of the ckeditor5 package. Related to #16360. (commit)
  • ckeditor5: Renamed index.js to ckeditor5.js in the new installation method builds. (commit)
  • ckeditor5: Added the main, module, types and exports fields to the package.json file. Closes #16257. (commit)
  • ckeditor5: Renamed files in the browser build to ckeditor5. (commit)
  • ckeditor5-premium-features: Renamed the index.js file to ckeditor5-premium-features.js in new installation method builds.
  • core: The EditorWatchdog, ContextWatchdog, and Context classes are now exposed as static fields of the Editor class. Closes #13852. (commit)
  • engine: Export XmlDataProcessor from the main index. (commit)
  • engine: Export the ViewDocumentBlurEvent and ViewDocumentFocusEvent types from the main index. (commit)
  • image: The following new components are now available: the insertImageViaUrl toolbar button and the menuBar:insertImageViaUrl menu bar button. (commit)
  • image: The Insert image via URL form has been moved to a modal dialog instead of being available directly in the insert image dropdown. (commit)
  • markdown-gfm: Rewrote html2markdown and markdown2html to classes to improve tree-shaking. Related to #16292. (commit)
  • markdown-gfm: Upgraded turndown to version 7.2.0. Closes #16371. (commit)
  • media-embed: The media embed feature now uses a modal dialog (instead of toolbar dropdown) for inserting media. (commit)
  • operations-compressor: Improved the build size by making the compiledmessages.js file tree-shakeable.
  • theme-lark: Added a separator (border) between the menu bar and the toolbar for the classic editor. (commit)
  • theme-lark: Toolbar separators are now shorter. (commit)
  • track-changes: Removed the deprecated TrackChangesEditing#_descriptionFactory property. Use descriptionFactory instead. The old property was deprecated in the v41.4.0 release.
  • widget: Added information to the accessibility help dialog about a keyboard shortcut that moves focus from a nested editable back to the widget. (commit)
  • Improved tree-shaking by prefixing mixin calls with a /* #__PURE__ */ magic comment. See #16292. (commit)
  • Updated translations. (commit, commit, commit)

Released packages

Check out the Versioning policy guide for more information.

Released packages (summary)

Minor releases (contain minor breaking changes):

Releases containing new features:

Other releases:

41.4.2 (May 17, 2024)

We are excited to announce the release of CKEditor 5 v41.4.2. This patch release addresses an important issue and ensures compatibility with the Jest environment.

Bug fixes

  • utils: Prevented error thrown when editor files are imported in an environment without the window global object. Closes #16368. (commit)

Released packages

Check out the Versioning policy guide for more information.

Released packages (summary)

Other releases:

41.4.1 (May 16, 2024)

Note

This release (v41.4.1) addresses a critical issue found in v41.4.0. Below is the changelog, which includes the changes originally introduced in v41.4.0

We are happy to announce the release of CKEditor 5 v41.4.1.

Release highlights

We have enhanced CKEditor 5 to improve accessibility and user experience further. Screen reader announcements have been expanded to include code blocks, images, and lists, enhancing navigability for visually impaired users. Additionally, the editor now better adheres to accessibility standards by respecting user preferences for reduced motion, and we have improved handling of color settings in high contrast modes.

We have also added menu bar support for the multi-root editor.

MINOR BREAKING CHANGES ℹ️

  • ui: The region name argument of the AriaLiveAnnouncer#announce() method has been dropped. Please check out the latest API documentation for more information.
  • The ckeditor5 package now lists all other official open-source @ckeditor/ckeditor5-* packages as dependencies. This is a preparatory step for the upcoming new installation methods. These changes will transform the ckeditor5 package into an aggregate for all official packages, simplifying module imports.

Features

  • code-block: Introduced screen reader announcements for entering or exiting code blocks in the editor content. Closes #16053. (commit)
  • editor-multi-root: Added the menu bar support for multi-root editor. (commit)
  • format-painter: Introduced the keyboard shortcuts for copying formatting in the document editor (Ctrl+Shift+C) and paste (Ctrl+Shift+V). Added the ability to cancel copying formatting using the Esc key.
  • image: Introduced screen reader announcements for various actions and events in the editor. (commit)
  • image: Added the custom image width input option to the image toolbar as an alternative to drag-and-drop resizing. (commit)
  • link: An error message should appear in the link editing form when submitting an empty link. (commit)
  • list: Introduced screen reader announcements for various actions and events in the editor. (commit)
  • media-embed: An error message should appear when submitting an empty URL in the media embed form. (commit)
  • ui: Implemented the ck-media-forced-colors and ck-media-default-colors mixins for detecting forced colors (for example high contrast mode on Windows). See #14907. (commit)
  • ui: Introduced screen reader announcements for various actions and events in the editor. (commit)
  • utils: Implemented the env#isMediaForcedColors property for forced colors detection (for example high contrast mode on Windows). See #14907. (commit)
  • utils: Implemented the env#isMotionReduced property to discover reduced motion preferences. (commit)
  • Editor UI should now respect the user's preferences for reduced motion (WCAG 2.1, Success Criterion 2.3.3). (commit)
  • Added bundles for new installation methods. See #15502. (commit)
  • Introduced accessible screen reader announcements for various actions and events in the editor, including text case change, AI Assistant interactions, template list filtering, and document exports to Word and PDF.

Bug fixes

  • ai: Improved accessibility of the UI by setting correct ARIA roles on menus and lists.
  • autoformat: Pressing the Backspace key after autoformat should retain the typed content after undoing the block format change. Closes #16240. (commit)
  • collaboration-core: Fixed editor crashing due to a missing plugin when the revision history was opened. This happened in some integrations that use custom plugins and specific code minifiers.
  • comments: The container element for comments received the .ck-content CSS class to have consistent styles in both edit and preview modes.
  • comments: Restoring revision with comment threads that were removed should no longer crash the editor in the asynchronous load and save integration type.
  • engine: The HTML <template> elements are now properly handled in downcast and upcast conversion. (commit)
  • engine: An inline filler should be rendered after the <br> element just before a block filler so that scrolling to selection could properly find the client rect. Closes #14028. (commit)
  • export-pdf: Improved accessibility of the feature button while an action is performed in the background and the UI is marked as busy.
  • export-word: Improved accessibility of the feature button while an action is performed in the background and the UI is marked as busy.
  • format-painter: Improved accessibility of the UI by setting correct ARIA roles on menus and lists.
  • image: An image should not jump upon resizing in a container with padding. Closes #14698. (commit)
  • import-word: Improved accessibility of the feature button while an action is performed in the background and the UI is marked as busy.
  • List: Order of the List and ListProperties plugins should not affect the appearance of the icon in the toolbar. Closes #16192. (commit)
  • minimap: The minimap <iframe> element should not be unnecessarily exposed to assistive technologies. (commit)
  • pagination: The pagination pages container should not get focused during the Tab key navigation across the website.
  • restricted-editing: Improved accessibility of the restricted editing dropdown by setting the correct ARIA role on the toolbar menu. (commit)
  • restricted-editing: Fixed removing an inline image inside an editable region. Closes #16218. (commit)
  • restricted-editing: In the restricted-editing mode, it should be possible to escape from a table by pressing the Tab key. Closes #15506. (commit)
  • revision-history: Improved accessibility of the UI by setting correct ARIA roles on menus and lists.
  • revision-history: Opening the revision history viewer will close any open dialog or modal in the editor.
  • template: Improved accessibility of the UI by setting correct ARIA roles on menus and lists.
  • theme-lark: The caret should be visible in a placeholder while in forced colors mode (for example high contrast mode on Windows). Improved the look of the placeholders in the forced colors mode. Closes #14907. (commit)
  • theme-lark: The color grid component should render as a grid of labels in the forced colors mode (for example high contrast mode on Windows). Closes #14907. (commit)
  • track-changes: Improved accessibility of the UI by setting correct ARIA roles on menus and lists.
  • track-changes: The ignoreResolvedComments flag will now be correctly handled by the TrackChangesData#getDataWithAcceptedSuggestions and TrackChangesData#getDataWithDiscardedSuggestions methods.
  • track-changes: Suggestion to change list style to default when using legacy lists plugin will no longer cause the editor to throw an error.
  • ui: The color picker should not allow for saving incorrect HEX color values. Added an error message when the color is invalid. (commit)
  • ui: Prevented the editor error in a situation when a tooltip was unpinned after it was already removed. This happened when "Unlink" button was pressed while the tooltip was shown. (commit)
  • utils: Allow the Translations.getPluralForm type to be null. (commit)
  • widget: An image should not jump upon resizing in a container with padding. Closes #14698. (commit)
  • Change various exports of types and interfaces to type-only exports. (commit)

Other changes

  • comments: Comment markers without matching comment thread data will now be removed from the content. Previously, in such cases, an error was thrown in the asynchronous load and save integration type.
  • engine: Export the _getModelData, _setModelData, _parseModel, _stringifyModel, _getViewData, _setViewData, _parseView, and _stringifyView helpers. (commit)
  • html-support: The General HTML Support list integration will create proper model structure on upcast and not fire a redundant post-fixer during editor initialization. Closes #16227. (commit)
  • track-changes: TrackChangesEditing#_descriptionFactory is now public and renamed to descriptionFactory. The old _descriptionFactory property was kept as a deprecated alias and will be removed in next major release.
  • ui: Refactored the AriaLiveAnnouncer utility to use the aria-relevant attribute and make concurrent announcements queued by screen readers. (commit)
  • Updated translations. (commit, commit, commit)

Released packages

Check out the Versioning policy guide for more information.

Released packages (summary)

Other releases:

41.4.0 (May 15, 2024)

Caution

This release has known issues, as detected by our end-to-end tests. It will not be automatically installed unless you are using a tag other than latest. We are working on fixes and will update you soon. Stay tuned!

We are happy to announce the release of CKEditor 5 v41.4.0.

We have enhanced CKEditor 5 to improve accessibility and user experience further. Screen reader announcements have been expanded to include code blocks, images, and lists, enhancing navigability for visually impaired users. Additionally, the editor now better adheres to accessibility standards by respecting user preferences for reduced motion, and we have improved handling of color settings in high contrast modes.

We have also added menu bar support for the multi-root editor.

MINOR BREAKING CHANGES ℹ️

  • ui: The region name argument of the AriaLiveAnnouncer#announce() method has been dropped. Please check out the latest API documentation for more information.
  • The ckeditor5 package now lists all other official open-source @ckeditor/ckeditor5-* packages as dependencies. This is a preparatory step for the upcoming new installation methods. These changes will transform the ckeditor5 package into an aggregate for all official packages, simplifying module imports.

Features

  • code-block: Introduced screen reader announcements for entering or exiting code blocks in the editor content. Closes #16053. (commit)
  • editor-multi-root: Added the menu bar support for multi-root editor. (commit)
  • format-painter: Introduced the keyboard shortcuts for copying formatting in the document editor (Ctrl+Shift+C) and paste (Ctrl+Shift+V). Added the ability to cancel copying formatting using the Esc key.
  • image: Introduced screen reader announcements for various actions and events in the editor. (commit)
  • image: Added the custom image width input option to the image toolbar as an alternative to drag-and-drop resizing. (commit)
  • link: An error message should appear in the link editing form when submitting an empty link. (commit)
  • list: Introduced screen reader announcements for various actions and events in the editor. (commit)
  • media-embed: An error message should appear when submitting an empty URL in the media embed form. (commit)
  • ui: Implemented the ck-media-forced-colors and ck-media-default-colors mixins for detecting forced colors (for example high contrast mode on Windows). See #14907. (commit)
  • ui: Introduced screen reader announcements for various actions and events in the editor. (commit)
  • utils: Implemented the env#isMediaForcedColors property for forced colors detection (for example high contrast mode on Windows). See #14907. (commit)
  • utils: Implemented the env#isMotionReduced property to discover reduced motion preferences. (commit)
  • Editor UI should now respect the user's preferences for reduced motion (WCAG 2.1, Success Criterion 2.3.3). (commit)
  • Added bundles for new installation methods. See #15502. (commit)
  • Introduced accessible screen reader announcements for various actions and events in the editor, including text case change, AI Assistant interactions, template list filtering, and document exports to Word and PDF.

Bug fixes

  • ai: Improved accessibility of the UI by setting correct ARIA roles on menus and lists.
  • autoformat: Pressing the Backspace key after autoformat should retain the typed content after undoing the block format change. Closes #16240. (commit)
  • collaboration-core: Fixed editor crashing due to a missing plugin when the revision history was opened. This happened in some integrations that use custom plugins and specific code minifiers.
  • comments: The container element for comments received the .ck-content CSS class to have consistent styles in both edit and preview modes.
  • comments: Restoring revision with comment threads that were removed should no longer crash the editor in the asynchronous load and save integration type.
  • engine: The HTML <template> elements are now properly handled in downcast and upcast conversion. (commit)
  • engine: An inline filler should be rendered after the <br> element just before a block filler so that scrolling to selection could properly find the client rect. Closes #14028. (commit)
  • export-pdf: Improved accessibility of the feature button while an action is performed in the background and the UI is marked as busy.
  • export-word: Improved accessibility of the feature button while an action is performed in the background and the UI is marked as busy.
  • format-painter: Improved accessibility of the UI by setting correct ARIA roles on menus and lists.
  • image: An image should not jump upon resizing in a container with padding. Closes #14698. (commit)
  • import-word: Improved accessibility of the feature button while an action is performed in the background and the UI is marked as busy.
  • List: Order of the List and ListProperties plugins should not affect the appearance of the icon in the toolbar. Closes #16192. (commit)
  • minimap: The minimap <iframe> element should not be unnecessarily exposed to assistive technologies. (commit)
  • pagination: The pagination pages container should not get focused during the Tab key navigation across the website.
  • restricted-editing: Improved accessibility of the restricted editing dropdown by setting the correct ARIA role on the toolbar menu. (commit)
  • restricted-editing: Fixed removing an inline image inside an editable region. Closes #16218. (commit)
  • restricted-editing: In the restricted-editing mode, it should be possible to escape from a table by pressing the Tab key. Closes #15506. (commit)
  • revision-history: Improved accessibility of the UI by setting correct ARIA roles on menus and lists.
  • revision-history: Opening the revision history viewer will close any open dialog or modal in the editor.
  • template: Improved accessibility of the UI by setting correct ARIA roles on menus and lists.
  • theme-lark: The caret should be visible in a placeholder while in forced colors mode (for example high contrast mode on Windows). Improved the look of the placeholders in the forced colors mode. Closes #14907. (commit)
  • theme-lark: The color grid component should render as a grid of labels in the forced colors mode (for example high contrast mode on Windows). Closes #14907. (commit)
  • track-changes: Improved accessibility of the UI by setting correct ARIA roles on menus and lists.
  • track-changes: The ignoreResolvedComments flag will now be correctly handled by the TrackChangesData#getDataWithAcceptedSuggestions and TrackChangesData#getDataWithDiscardedSuggestions methods.
  • track-changes: Suggestion to change list style to default when using legacy lists plugin will no longer cause the editor to throw an error.
  • ui: The color picker should not allow for saving incorrect HEX color values. Added an error message when the color is invalid. (commit)
  • utils: Allow the Translations.getPluralForm type to be null. (commit)
  • widget: An image should not jump upon resizing in a container with padding. Closes #14698. (commit)
  • Change various exports of types and interfaces to type-only exports. (commit)

Other changes

  • comments: Comment markers without matching comment thread data will now be removed from the content. Previously, in such cases, an error was thrown in the asynchronous load and save integration type.
  • engine: Export the _getModelData, _setModelData, _parseModel, _stringifyModel, _getViewData, _setViewData, _parseView, and _stringifyView helpers. (commit)
  • html-support: The General HTML Support list integration will create proper model structure on upcast and not fire a redundant post-fixer during editor initialization. Closes #16227. (commit)
  • track-changes: TrackChangesEditing#_descriptionFactory is now public and renamed to descriptionFactory. The old _descriptionFactory property was kept as a deprecated alias and will be removed in next major release.
  • ui: Refactored the AriaLiveAnnouncer utility to use the aria-relevant attribute and make concurrent announcements queued by screen readers. (commit)
  • Updated translations. (commit, commit, commit)

Released packages

Check out the Versioning policy guide for more information.

Released packages (summary)

New packages:

Minor releases (contain minor breaking changes):

Releases containing new features:

Other releases:


To see all releases, visit the release page.