Drupal 9.3 Released with Experimental Support for CKEditor 5

CKEditor5 is a good markdown editor too

Drupal 9.3.0, the third feature release of Drupal 9 is here. 

Drupal.org announced the release of Drupal 9.3.0 on November 08, 2021. The major attraction in this release is the experimental inclusion of support for CKEditor5. 

This bleeding-edge WYSIWYG editor may not be stable enough for enterprise customers to use directly in production environments. But those enthusiasts having time to play with the latest technology could rejoice. 

CKEditor5 Rewritten in ES6

The new CKEditor is completely rewritten in ES6, a standardised scripting language for JavaScript. It brings Operational Transformation and real-time collaboration to the table. With the collaboration services provided by the CKEditor Collaboration Server, it is now effortless to get real-time collaboration features inside any application. 

It also supports intuitive image inserting with automated uploading, resizing and creating different image sizes for responsive design. 

Other features include simple linking without complex dialogues, auto-formatting enabling to start lists, headings and apply some inline styles, like bold, just by typing, the new toolbar in the classic editor is always visible when scrolling down the page, effortless styling with the contents of the editor placed inline in the page and more. 

A new data model and a model-view-controller architecture (MVC) have been introduced, making conversation between model and view extremely customisable with complete control over changes applied to the model. MVC allows achieving results that previously were very hard or impossible to achieve. 

While building the integration, the team worked hard with CKSource to implement functionality crucial for Drupal sites, such as General HTML Support and ways to load CKEditor plugins dynamically. Also, special care was given to providing a fluid upgrade path from CKEditor 4 configurations.

Drupal extensions that integrate with CKEditor 4 still need to be updated for CKEditor 5. However, the plan is to remove CKEditor 4 support in Drupal 10. 

CKEditor 5 outputs the content as a rich HTML, but the dedicated Markdown plugin makes the editor output Markdown instead. Since there is little in terms of an official MD specification, a decision was made to use GitHub Flavored Markdown for this output.

The plugin is not included in the official builds so you need to create a custom build or use the online builder to add it. Once enabled, it makes CKEditor 5 treat Markdown as its source and offers fully functional Markdown output while working in a WYSIWYG editor.

Olivero, a Modern and Clear Theme

Another attraction that Drupal 9.3.0 draws is the new Olivero frontend theme. Olivero will later become the new default Drupal theme (replacing Bartik). Subtheming Olivero is currently not supported, but formal support may be included in the future. The theme is named after Rachel Olivero (1982-2019). She was the head of the organisational technology group at the National Federation of the Blind, a well-known accessibility expert, a Drupal community contributor, and a friend to many.

New Content Editor Role

A new dedicated Content Editor role was added to the standard profile with content editing, media management, translation, content workflow and revision handling permissions enabled by default.

Various Developer Improvements

Entity bundles can now declare their own class, encapsulating the required business logic. A bundle class must be a subclass of the base entity class, such as \Drupal\node\Entity\Node. Encapsulating all the required logic for each bundle into its own subclass opens up many possibilities for making more clear, simple, maintainable, and testable code.

Each user role now depends on the modules that provide the role's permissions, which means that permissions will be automatically cleaned up when a module is uninstalled.

PHP 8.1.0 was recently released and Drupal 9.3.0 comes with full support for the new version. The recommended PHP version to install Drupal 9.3.0 is PHP 8, but PHP 7.3+ support is kept.

Read the 9.3.0 release notes for more information on developer improvements and changes.

Sources:

Advertisement Here