CKEditor 5 v27.1.0 with table and block quote nesting

The newest version of CKEditor 5 is here with both new and extended features. The table nesting functionality makes using tables even more powerful than before. Legacy support has been introduced for the deprecated HTML align
attribute. Nested block quotes are now properly read when loading pre-existing content as well. All of that is aimed at greater backward compatibility and support for older, HTML4 formatted content that may still be generated by some software, like email applications. Together with some minor breaking changes, this version helps bridge the past with modernity.
# New rich text editor features
CKEditor 5 version 27.1.0 has just been released with minor breaking changes, new features and bug fixes. User-awaited support for nesting tables into other tables’ cells is here as well as the ability to nest block quotes into other block quotes.
The newest WYSIWYG editor version also allows for loading content with the deprecated align
attribute originating from the earlier versions of HTML. It will be properly handled and converted into modern formatting upon load.
We are looking forward to your feedback on these changes. Comments, recommendations, and bug reports help us concentrate on the development of functions and features that are the most important for our users.
Find out more about the new rich text editor features and make sure to check out the demos and documentation that accompany them.
# Support for nested tables
As of version 27.1.0 CKEditor 5 supports nesting tables inside other tables’ cells, a feature that has been awaited by the community with considerate anticipation. Nested tables may be used in numerous places to present elaborate data sets. You would expect them in scientific papers, sales reports, hobbyist charts or even email footers in legacy applications, where they would hold images and text together.

Visit the table feature guide to see a working demo of nested tables. If you would like to disable this functionality for whatever reason, there is also a handy guide on doing so.
# Nested block quotes
Just like nested tables would be useful in reports, the nested block quotes functionality is prominently used in email messages to nest and structure multiple answers and quotes. Without it, the mail exchange would turn into a chaotic stream of statements with their authors sometimes impossible to discriminate. The same kind of functionality is used, for example, in online forums or messaging applications, where the users would often refer to some previous post.
Coming with this version, CKEditor 5 will now properly display nested block quotes. Support for nested block quotes is provided as backward compatibility for loading pre-existing content, for example created in CKEditor 4.

There is also basic support for nesting a block quote into another block quote via the drag and drop feature or by pasting. Refer to the block quote feature guide to test it. Same as with the nested tables, if you would like to revert to the previous approach and disallow nesting block quotes, it is possible to achieve via a schema rule.
# Legacy support for the align
attribute
The align
attribute originates from older HTML specifications and was used to set the alignment of an object (an image, text part or other) toward the surrounding content. It is now obsolete and has been dropped with the HTML5 specification, but is often still used and is also present in older content.
CKEditor 5 now supports handling of this attribute properly. If content using align
for formatting is loaded into the editor, the attribute will be properly read and converted into a modern format, using CSS classes to set alignment in the resulting output.
Refer to the text alignment feature guide to learn more about using and customizing alignment options in CKEditor 5 as well as try it out in the demo.
# Other improvements
Besides new features, we have also worked on some important improvements. These include, but are not limited to:
# New block filler modes
As of version 27.1.0, we have introduced a new block filler mode called markedNbsp
in the DOM converter as well as the HTML, XML and Markdown data processors .
If the processor is set to use marked fillers, it will insert non-breaking space fillers wrapped in spans (<span data-cke-filler="true"> </span>
), instead of regular non-breaking spaces. This new filler mode allows for more precise handling of block fillers (so they do not leak into the editor content).
This mode may be required by some features and will be turned on by them automatically. To achieve it, the useFillerType()
method was introduced in all data processors to switch between using marked and regular  
block fillers.
This is a minor breaking change and classes based on this interface should implement useFillerType()
to avoid errors.
# Better upload with additional properties
The newest rich-text editor release has introduced the uploadComplete
event in ImageUploadEditing
that allows customizing the image element based on the data retrieved from the upload adapter. This may, for example, mean setting custom attributes to the image.
Also the upload()
method can now resolve to an object with additional properties along with the urls
hash. This may affect all integrations depending on the SimpleUploadAdapter
uploading mechanism and hence is a minor breaking change.
# Bug fixes
A few bugs were also fixed to improve the user experience while working with CKEditor 5 WYSIWYG editor:
- The empty value in the configuration (
config.initialData
) will have precedence over a non-empty DOM element when creating the editor. - The watchdog feature does not import CKEditor 5 utilities anymore to avoid code duplication in external framework integrations.
- Dragging the entire table cell is no longer possible.
- The selection will no longer get stuck in read-only mode.
- Attributes that have already been set are no longer overridden while setting attributes upon upcast conversion, as this caused text styles to not be properly converted.
- Accepting multiple track changes suggestions from multiple users to turn list items on or off will now have correct results now.
- If the initial websocket connection to the collaboration server cannot be established, the
Editor.create()
method will throw an error now.
Please refer to the changelog for more new features, improvements and bug fixes.
# Breaking changes
This release introduces some minor breaking changes as described above. Make sure you check the changelog for more details.
# What’s next?
# Version History
Coming next release is the next big highlight in CKEditor 5 features - Revision History. This new feature will allow for maintaining document version history as well as comparing and restoring versions. Together with Comments and Track Changes, these will allow for a full-fledged editing and reviewing experience comparable with the flexibility and versatility of Google Docs. For both teams and individuals, it will allow for an organized tracking of content creation progress, providing a useful tool of control for specialized content like medical or legal documents and large documents.
Visit the Revision History webpage to learn more.
We keep on constantly improving and adding new features to our software. We keep on working on the inline images feature that will revolutionize how images are handled in CKEditor 5. Table caption support is coming soon, too. Some bug fixes and other improvements are on the line as well, so follow the iteration 43 roadmap for more news and features we have already started working on.
# Download
CKEditor 5 builds can be downloaded from the CDN, npm or as zip packages. Read more in the Installation guide.
# License
CKEditor 5 is available under Open Source and Commercial licenses. Full details can be found on our license page.
# Reporting issues and contributing
You can report all issues for any of the CKEditor 5 packages in the CKEditor 5 repository. Read more in the Reporting issues guide.
# Support
The CKEditor 5 documentation is growing and always up to date. Community support is available through Stack Overflow. Read more in the Getting support guide.