Problem/Motivation
When Drupal integrated CKEditor 4 into Core it was the best available solution at that moment in time.
Since then the editor landscape has shifted dramatically.
Therefore we - as a Community - need to select a new editor for Drupal 9, so that we can deprecate CKEditor 4.
We (at Tag1) recently did a larger survey of available editors in the space and there is more than just CKEditor 5.
As there is no upgrade path for CKEditor 4 to 5, there is no reason that we need to just update to the next version.
We (at Tag1) published a blog post about our detailed findings soon, which could become a starting document for this issue:
https://tag1consulting.com/blog/modern-rich-text-editors-how-evaluate-ev...
For now we talked about the editors and challenges in integrating them with Drupal 8 here:
https://tag1consulting.com/blog/deep-dive-rich-text-editors-tagteamtalk-002
The list of editors we evaluated are:
- CKEditor 5 (https://ckeditor.com/ckeditor-5/)
- Prosemirror (https://prosemirror.net/) (used by New York Times, Evernote, Atlassian (JIRA, Confluence))
- QuillJS (https://quilljs.com/) (LinkedIn, Slack)
- DraftJS (https://draftjs.org/) (Facebook)
- SlateJS (https://www.slatejs.org/)
- Gutenberg editor (https://www.drupal.org/project/gutenberg)
All of those are using an internal JSON based model (some tree based, some differential based).
All of those support real-time collaborative editing ala Google Docs / Etherpad (except Draft?) in general, which could become more and more important in the future.
Proposed resolution
- Create list of criteria: e.g.
- Audit the DX and UX of the editors (How easy is it to write a plugin? How easy are complex plugins?)
- Audit the Community and Support of the editors (Is it maintained well? Is it a good OSS project?)
- Audit Accessibility
- ...
and find the best solution for what Drupal 9 needs.
Remaining tasks
- Discuss
- Create child issues
- Start implementing and testing