CKEditor 5 v19.0.0 with table enhancements, improved performance and select all feature

CKEditor 5 v19.0.0 with table enhancements and select all feature

We are happy to announce the release of CKEditor 5 v19.0.0 that introduces further enhancements for the table feature, improved font family and size support as well as the new select all feature. In addition to that, we focused on improving the editor performance. Last but not least, we moved from multirepo to monorepo infrastructure. Read on for more details about these and other improvements!

# New rich text editor features

In this iteration, we continued our work on the table feature, including some further improvements for table selection. In addition to this, we are happy to also deliver the new select all feature.

As always, we are looking forward to your feedback and are thankful for any comments, recommendations, and bug reports that you are sharing with us.

Go through the list below to learn more about the new rich text editor features and make sure to check out the demos and documentation that accompany them.

# Table improvements

Support for tabular data is a crucial feature for any advanced rich text editor. We have recently put a lot of effort into refining this feature and this release contains many improvements for working with tables in CKEditor 5 WYSIWYG editor.

First of all, the improved keyboard handling with support for up and down arrows as well as the Tab and Shift+Tab keystroke will allow you to navigate the table cells more easily.

Since in this iteration we focused on extending selection support in CKEditor 5, we have decided to introduce the possibility to select an entire table row or column. You can now choose the “Select row” or “Select column” option directly in the table row and column dropdowns.

Thanks to these and other changes around aspects such as merging and splitting cells, handling of cells spanning to multiple rows or columns and UI enhancements, creating and editing complex tables in CKEditor 5 should be much better than before.

Improved table support in CKEditor 5 WYSIWYG editor.
Improved table support in CKEditor 5 WYSIWYG editor.

You can test it and learn how to install this feature in the Table feature guide. All table improvements discussed, including the custom table selection, are enabled by default in all builds containing the table feature.

# Select all feature

The select all feature allows you to select the entire content of the WYSIWYG editor using the dedicated toolbar button or the Ctrl/⌘+A keyboard shortcut.

Note that when editing an image caption, the selection will only expand to the boundaries of the caption.

Select all feature in CKEditor 5 WYSIWYG editor
Select all feature in CKEditor 5 WYSIWYG editor

You can test it and learn how to install this feature in the Select all feature guide. It is enabled by default in all builds.

# Improvements

Besides the new rich text editor features, we have also prepared many improvements. Here are the most important ones.

# Improved font family and size support

By default, all font-family and font-size values that are not explicitly specified in the feature configuration are stripped. While this setup is helpful when you want to keep your content clean and consistent even if it originates from a third-party application or website, in some cases keeping the original font family or size could be intended.

Starting from this release you can enable support for all font names or sizes by using the config.fontFamily.supportAllValues and config.fontSize.supportAllValues values, respectively.

Note that thanks to these settings, font retention when pasting from Microsoft Word or Google Docs can be improved. If you want to preserve the original font family and size that comes from third-party applications, you can enable these configurations.

Preserving font family and size when pasting from Google Docs in CKEditor 5 WYSIWYG editor.
Preserving font family and size when pasting from Google Docs in CKEditor 5 WYSIWYG editor.

You can test it and learn how to install this feature in the Font feature guide. You can also see it working in the Paste from Word or Paste from Google Docs demos.

# Improved localization possibilities

The user interface of CKEditor 5 and its features, just like all our products, can be localized. In general, we base the localization process around Transifex, a great service where translators can contribute their localizations and help make CKEditor 5 accessible to users all around the world in their native language. However, this also meant that up till now, we provided little support for the localization of third-party plugins. It was also not easy to fix incorrect or missing translations in an existing editor build.

Starting from this release, we have introduced the following improvements:

  • We have opened the translation API for third-party plugins.
  • It is now possible to provide missing translations and correct existing ones locally without worrying about future releases and rebuilding the editor.
  • Last but not least, we introduced support for translating plural forms.

# Performance improvements

In the last two releases we shipped multiple improvements to the performance of the editor initialization. In this iteration we worked mostly on improving the data processing time. All the changes together reduced the time it takes to load content into the WYSIWYG editor and render it to the user by up to 50% in standard scenarios and 90% in some edge cases. The improvements also affect the undo and redo feature.

You can find the complete list of changes on GitHub.

# Documentation updates

Besides the documentation that accompanies the newly introduced features, we have also worked on some guides for developers integrating CKEditor 5 WYSIWYG editor with their projects:

  • The Code style guide explains the configuration that we use when writing CKEditor 5 code.
  • Deep dive into focus tracking is an advanced guide that explains how the CKEditor 5 engine manages focus and how the user interface tracks it. It also includes a practical analysis of a common focus navigation scenario in the editor.

# Other improvements

# Migration to monorepo infrastructure

CKEditor 5 was initially bootstrapped in a multi-repo infrastructure. Every package was developed in its own repository, ensuring stronger separation and hence less monolithic tendencies. In addition to this, we wanted to use a similar setup to developers of third-party plugins, that, for obvious reasons, are developed in separate repositories. You can read more about the rationale in Why We Chose a Multirepo Architecture for CKEditor 5 and To multi-repo or not.

Over the years we developed a setup and tools like Mr. Git that allowed us to manage over 60 repositories. However, they were not able to mitigate some of the cost. Creating a new package, making pull requests to a couple of packages at once (which happens from time to time) was still a struggle. While solvable, we decided to focus on simplicity as our goals changed over time.

Right after the current release, we merged all repositories into one: (the packages landed in the packages/ directory). It is a typical monorepo architecture now. We are currently updating the documentation and some tooling. We should be done within a week or two.

Goodbye multi-repo 👋

# Breaking changes

This release introduces some breaking changes. Make sure to check the changelog when upgrading to CKEditor 5 v19.0.0.

# What’s next?

We will continue working on new rich text editing features and improving the existing ones along the way. The next features on our radar are:

Follow the iteration 32 roadmap for the news and to learn more.

# 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.

Would you like to take advantage of all the new CKEditor 5 features and start using it on a daily basis? If your workflow is based around GitHub, you now can! Install the GitHub Writer browser extension for Chrome or Firefox — it will replace the default plain-text Markdown editor of GitHub with a WYSIWYG editor with Markdown support powered by CKEditor 5!

If you have enjoyed reading this, be sure to check out our other blog posts

Subscribe to our newsletter

Keep your CKEditor fresh! Receive updates about releases, new features and security fixes.

We use cookies and other technologies to provide you with a better user experience.

Learn more

Hi there, any questions about products or pricing?

Any questions about our products or pricing?

Send us a quick message and one of our Sales Representatives will be in touch with you as soon as possible.

We are happy to
hear from you!

Thank you for reaching out to the CKEditor Sales Team. We have received your message and we will contact you shortly.