Releases: CoreMedia/ckeditor-plugins
v8.0.0
What's Changed
Features
-
Differencing Plugin: (#77)
Other than possibly suggested by the plugin-name, this plugin does not take
care of calculating differences by itself. It is meant to ensure, that
differencing data as generated in CoreMedia Studio are forwarded to editing
view, so that CSS rules can be applied to it, to highlight changes, additions
and deletions.
Fixes
- Bogus-Paragraph Issue in Lists resolved (#77)
There was an issue that created unwanted empty bogus paragraphs inside list elements. This has been fixed.
Changes
-
CKEditor updated to 34.2.0 (#76)
-
Update Jest-Playwright to 2.0.0 et al. (#81)
-
Internal Package "@coremedia-internal/ckeditor5-coremedia-example-data" introduced
Build/CI
- Adding GitHub Action for Pre-Release Garbage Collection (#80)
Full Changelog: 7.1.0...8.0.0
v7.1.0
What's Changed
Features
-
Enable Image Alignment with the CKEditor 5 ImageStyle Plugin (#73)
Enables the ImageStyle plugin for the example app and configures the alignment.
Fixes
-
Enable Image Alignment with the CKEditor 5 ImageStyle Plugin (#75)
-
Switching between external and internal links now works properly.
Before, there was an issue while opening a link balloon containing content links and external links.
The balloon would not update correctly if an external link was displayed after showing a content link. -
Clicking on a content link now closes the contextual balloon.
The previous behavior caused an issue in CoreMedia Studio. The balloon would not lose focus, but clicking on the
link triggers another content tab to open. Since the balloon is not part of the editor's DOM tree, it would then still be visible.
-
Maintenance
- CKEditor updated to 34.2.0 (#76)
Build/CI
- Typedoc generation fixed and added to the github actions
Pre-Release
andRelease
(#74)
v7.0.0
What's Changed
Features
-
Font Mapper Plugin: (#70)
While a proof-of-concept existed before (named Symbol Font Mapper), we now finished implementation of the Font Mapper Plugin as it is called now. It provides the feature of mapping characters rendered in a given font to any alternative representation in HTML. The default mapping comes with mappings from Microsoft's Symbol TrueType font to corresponding Unicode characters.
-
Data Normalization: (#71)
When changes in RichText may trigger expensive follow-up processes, such as publication, translation, ... it is important to prevent irrelevant changes to be forwarded like by CKEditor's Autosave plugin.
Example: CKEditor's Markdown DataProcessor understands ATX-Style as well as Setext-Style Headings for data input. But on data output it has to decide for one representation, and it chooses the ATX-Style:
-
setData
in Setext Style:Heading 1 =========
-
Subsequent
getData
prefers ATX-Style:# Heading 1
Data Normalizers can be bound as mix-in to any data processor. They will normalize such difference, which then can be used to check, if changes should be forwarded to the backend or not. As the normalized data are not meant to be a valid data representation, the
RichTextDataProcessor
even applies a hash-calculation as last step of normalization to reduce the memory footprint. -
Changes
-
Switch to Types from DefinitelyTyped: (#72)
We switched to types from DefinitelyTypedt to reduce overhead on implementing new features, and to ease using CKEditor plugins in projects, which are based on typings from DefinitelyTyped. Kudos to all contributors to DefinitelyTyped.
Build/CI
- Adding GitHub Action for CodeQL scanning (#63)
Full Changelog: 6.1.0...7.0.0
v6.1.0
What's Changed
Fixes
-
Image Blobs Don't Render when Loaded From Data (#65)
Fixed along with CKEditor 34.1.0 update (#67): Update to 34.0.0 (actually, 33.0.0) in v6.0.0 broke workaround for a CKEditor 5 issue about correctly handling "consumed"
src
attributes of an<img>
element. The workaround for the still existing issue has been adapted, so that images are displayed again as they should.
Maintenance
-
CKEditor updated to 34.1.0 (#67):
- CKEditor Developer Dependencies updated accordingly (like dev-utils and inspector)
- For details, see CKEditor 5 34.1.0 Release Notes.
-
PNPM Updated to 7.1.5 (#66):
PNPM tooling has been updated from 6.x to 7.x.
-
Dependency Updates (#68)
A bunch of dependencies got updated to their latest versions with some exceptions, which had to be reverted as part of #67, afterwards:
Dependency Prev New Reverted @babel/cli
7.16.0 7.17.10 @babel/core
7.16.0 7.18.2 @babel/plugin-proposal-class-properties
7.16.0 7.17.12 @babel/plugin-transform-arrow-functions
7.16.0 7.17.12 @babel/plugin-transform-computed-properties
7.16.0 7.17.12 @babel/plugin-transform-for-of
7.16.0 7.18.1 @babel/plugin-transform-parameters
7.16.3 7.17.12 @babel/plugin-transform-shorthand-properties
7.16.0 7.16.7 @babel/preset-env
7.16.0 7.18.2 @babel/preset-typescript
7.16.0 7.17.12 @coremedia/service-agent
1.0.0 1.1.0 @types/jest
27.0.2 27.5.1 @types/node
16.11.35 17.0.38 @typescript-eslint/eslint-plugin
5.10.2 5.27.0 @typescript-eslint/eslint-plugin
5.3.1 5.27.0 @typescript-eslint/parser
5.10.2 5.27.0 @typescript-eslint/parser
5.3.1 5.27.0 babel-loader
8.2.3 8.2.5 css-loader
6.5.1 6.7.1 eslint
8.2.0 8.16.0 eslint
8.8.0 8.16.0 eslint-config-prettier
8.3.0 8.5.0 eslint-plugin-tsdoc
0.2.14 0.2.16 jest-playwright-preset
1.7.0 1.7.2 1.7.0 – Jest Playwright tests had issues with configuration after update. Details not analyzed yet. playwright
1.22.0 1.22.2 playwright-core
1.22.0 1.22.2 postcss
8.3.11 8.4.14 postcss-loader
6.2.0 7.0.0 prettier
2.4.1 2.6.2 rxjs
6.5.4 7.5.5 terser-webpack-plugin
5.2.5 5.3.1 webpack
5.63.0 5.72.1 webpack
5.69.1 5.72.1 webpack-cli
4.9.1 4.9.2 typescript
4.4.4 4.7.2 ts-loader
9.2.6 9.3.0 tslib
2.3.1 2.4.0 typedoc
0.22.11 0.22.17 xml-formatter
2.5.1 2.6.1 In addition to that, a previous update to Jest 28.x (as part of #66) had to be reverted to 27.5.1 (as part of #67) as we experienced dependency issues with Jest Playwright Tests, which are currently bound to 27.5.1. The issues especially got observed on Windows machines, where 28.x Jest dependencies suddenly had 27.x dependencies in their transitive dependencies and vice versa.
Testing
-
Integration Tests introduced based on Jest Playwright (#62)
To test integration into CKEditor 5 and cope with providing QA for frequent CKEditor 5 releases, we introduced first integration tests based on Jest Playwright. As part of #67, they also include a test for #65 (image blob display issue), which was caused by such failed integration after update.
Full Changelog: 6.0.0...6.1.0
v6.0.0
⚠ Please see Known Issues below. Use v6.1.0 instead.
What's Changed
-
Workspace: Optimize Tooling Setup (#60)
-
Upgrade Jest to 28.0.2
- Removed Workaround for jestjs/jest#9771
-
Common Babel-configuration moved to internal package:
@coremedia-internal/ckeditor5-babel-config
-
-
CKEditor updated to 34.0.0 (#64)
-
CKEditor Developer Dependencies updated accordingly (like dev-utils and inspector)
-
Switched from List to DocumentList in example application.
It is strongly recommended, to update your CKEditor plugins configuration as well, as only DocumentList is able of handling nested list structures as supported by CoreMedia RichText 1.0.
-
For details on CKEditor release see corresponding migration notes:
-
Known Issues
Unfortunately, short after release, we detected that with CKEditor Update we introduced a bug in image blob processing:
Thus, it is recommended not using this version of ckeditor-plugins.
Full Changelog: 5.0.0...6.0.0
v5.0.0
What's Changed
Main Feature
-
Drag and Drop Support for Media References (also known as Image Drag and Drop) (#57)
In contrast to normal CoreMedia CMS Contents dragged into CKEditor, which shall be represented as anchor elements
<a>
, it is typical, that contents of given types, which hold media objects such as especially images, are represented in CoreMedia RichText as image<img>
elements. These will refer to a fixed property of a content rather than the content itself.Displaying such media objects has been introduced with v3.1.0. With v5.0.0 we add drag and drop support, for example from library in CoreMedia Studio to CKEditor.
Breaking Changes
-
RichtextConfigurationService
with new methodresolveBlobPropertyReference
(#57)RichtextConfigurationService
has been extended by a new methodresolveBlobPropertyReference
which must be implemented by all clients. -
Contract of
CoreMediaStudioEssentials
changed (#57)We decided on a new paradigm for
CoreMediaStudioEssentials
:CoreMediaStudioEssentials
provides all plugins necessary to load any CoreMedia RichText into CKEditor 5 without breaking its data structures.For this, it now only contains
CoreMediaRichText
, the data-processor extension, andGeneralRichTextSupport
which registers any valid RichText elements to CKEditor, so that they are not removed on load from CMS server.Note, that these plugins are not enough to edit corresponding RichText. If you rely only on the Essentials, you should also add CKEditor's Source Editing plugin, so that there is at least some chance to modify the content.
New Features
-
New Plugin
ContentImageClipboardPlugin
(#57)The plugin introduces the capability to drop so-called embeddable contents (aka Image documents, for example) into CKEditor. It is an addition to dropping CMS contents as links into CoreMedia RichText. Contents dropped and identified as embeddable will be represented as
<img>
elements in RichText. -
New Module
ckeditor5-common
(#57)Contains some convenience for developing CKEditor Plugins. In its initial release, contains
Commands
andPlugins
to provide convenience API to react on the existence or absence of commands or plugins.
Changes
-
ContentImagePlugin
extended (#57)The aggregator plugin now also includes
ContentImageClipboardPlugin
. -
Refactored to new
ContentLinkClipboardPlugin
(#57)To clearly separate dropping embeddable contents to be referenced as
<img>
and other contents to be referenced as<a>
in CoreMedia RichText, the behavior now moved into dedicated plugins.ContentLinkClipboardPlugin
just as the newContentImageClipboardPlugin
now provide two strategies how to deal with dropped content items. -
CKEditor Typings Aligned (#57)
Typings have been straightened to match the version at
DefinitelyTyped
better, to provide no conflicts, when these are used for typings. -
First Code Style published (#9)
A first version for documenting our code style got introduced in
STYLE.md
-
Release Process Documentation (#56)
Release/Pre-Release Processes are described now.
-
Simplified Content Mocking (#51)
Content Mocks and Image Blob Mocks (used for testing in the example application) have been refactored to explicitly configured behavior rather than some "Content-ID number" magic, e.g., to express a content which is continuously being edited.
Fixes
-
Prevent drop for forbidden CMS contents (#52)
It was possible dropping "undroppable" content items to CKEditor. This has been fixed.
-
Disabling Undo Command May Clash with other Plugins (#57)
On paste or drop of CMS contents, loading them may take a while. In this phase, we have to disable undo/redo. Previous attempt ignored the API
forceDisabled
andclearForceDisabled
. As a consequence, other plugins may have collided with the implementation.
Full Changelog: 4.0.0...5.0.0
v4.0.0
What's Changed
-
CKEditor updated to 32.0.0: #53
- Node Version enforced to be >= 14.0.0
- CKEditor Developer Dependencies updated accordingly (like dev-utils and inspector)
- Adapted calls to
Model.enqueueChange
to recent API changes - Adapted typings for
model.Batch
andmodel.Model
-
Webpack updated to 5.69.1 as part of #53
Full Changelog: 3.1.0...4.0.0
v3.1.0
What's Changed
- New plugin ContentImagePlugin: Show images from RichText: #50
Full Changelog: 3.0.0...3.1.0
v3.0.0
What's Changed
-
Loading Spinner/Throbber for Drag and Drop Operations #45
-
Enhancements to GRS – General RichText Support #44
-
Package renamed:
- from
@coremedia/ckeditor5-coremedia-general-richtext-support
- to
@coremedia/ckeditor5-coremedia-richtext-support
- from
-
Enhancements in data-driven tests having a common base now.
-
-
Introducing TSDoc generated by TypeDoc (included in #44)
-
Generated Documentation located in:
docs/api/
-
To generate, run
pnpm run doc
-
Full Changelog: 2.0.0...3.0.0
v2.0.0 – including Update to CKEditor 31.0.0
What's Changed
-
Release Process Enhancements #37
-
CKEditor Updated to 31.0.0 #38 replacing previous update to 30.0.0 in #36
-
Introducing GRS – General RichText Support based on CKEditor's General HTML Support #35, #42
Bug Fixes and Enhancements
- #39: Fixes Corrupted XML Entities in CoreMedia RichText Data #41
- Accept
setData("")
to clear CoreMedia RichText editing in CKEditor #43
Full Changelog: 1.0.1...2.0.0