CKEditor 5 support

Created on 21 September 2022, about 2 years ago
Updated 6 November 2023, about 1 year ago

Research how to add plugins for CKEditor5 and implement it for this module

📌 Task
Status

Fixed

Version

1.0

Component

Code

Created by

🇺🇦Ukraine ozin 🇺🇦Lviv

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

Not all content is available!

It's likely this issue predates Contrib.social: some issue and comment data are missing.

  • 🇺🇸United States emptyvoid

    It's not clear to me how I would generate a patch to the current release or integrate the two very different branches.

  • 🇺🇸United States emptyvoid

    I compared the two branches to 8.x-dev and the 3310866-ckeditor-5-support branch is identical to the current dev branch.
    I then manually merged the ckeditor5-support branch into 8.x-dev.

    Patch attached.

    I'm attempting to test this using Ckeditor5 on Drupal 9.5.5.. we'll see if it loads.

  • 🇺🇸United States emptyvoid

    So, this patch registers the icon into the editor configuration for a given input type in Drupal.
    And when in edit mode for the body of a page it provide dialog inline in the editor to specify a tab set name and the number of tabs to include.

    And that's when it fails.
    It doesn't appear to load the templated structure into the DOM in the editor and simply paces two tab titles in a paragraph tag.

    CSS fails, Javascript fails.

    Though inspecting the code the bootstrapTabs plugin code does appear to be in place for legacy ckeditor4 as well as the new ckeditor5_plugins sub directory with code for a ck5 plugin. I'm not all that up on understanding the SDK and API integration between custom ckeditor5 plugins and the Drupal Plugin SDK and classes for integration.

    Sure wish there was some articles and or example code for us to review.

    So this is maybe 35% complete?

  • 🇺🇦Ukraine ozin 🇺🇦Lviv

    Hi @emptyvoid, thanks for your work.
    We have a new dev branch 2.0.x, in this branch, we plan to implement CKEditor5.
    Your patch is a good starting point, I hope development will move further faster now

  • 🇮🇳India S7434

    Is dev branch 2.0.x inluded ckeditor5 support?

  • 🇨🇦Canada dylan donkersgoed London, Ontario

    Dylan Donkersgoed made their first commit to this issue’s fork.

  • Open on Drupal.org →
    Core: 9.5.x + Environment: PHP 8.1 & MySQL 5.7
    last update about 1 year ago
    Waiting for branch to pass
  • @dylan-donkersgoed opened merge request.
  • 🇨🇦Canada dylan donkersgoed London, Ontario

    I've expanded this patch to handle upcasting/downcasting bootstrap tabs. You can now load an existing page with tabs on it, edit the tabs, and save it and have everything work (at least from some cursory testing).

    There's still a bit of work to do (e.g. the button isn't working correctly to add/expand tables at the moment and you can't change the active tab) but I hope to have that done within the next couple days.

  • Open on Drupal.org →
    Core: 9.5.x + Environment: PHP 8.1 & MySQL 5.7
    last update about 1 year ago
    Waiting for branch to pass
  • Open on Drupal.org →
    Core: 9.5.x + Environment: PHP 8.1 & MySQL 5.7
    last update about 1 year ago
    Waiting for branch to pass
  • Open on Drupal.org →
    Core: 9.5.x + Environment: PHP 8.1 & MySQL 5.7
    last update about 1 year ago
    Waiting for branch to pass
  • 🇨🇦Canada dylan donkersgoed London, Ontario

    MR seems to be in a fully functional state now, attaching a patch.

    There's probably room for some code cleanup, I'm not sure some of the separate upcast/downcast methods are still necessary, though they work fine.

  • Status changed to Needs review about 1 year ago
  • Open on Drupal.org →
    Core: 9.5.x + Environment: PHP 8.1 & MySQL 5.7
    last update about 1 year ago
    Waiting for branch to pass
  • Open on Drupal.org →
    Core: 9.5.x + Environment: PHP 8.1 & MySQL 5.7
    last update about 1 year ago
    Waiting for branch to pass
  • Open on Drupal.org →
    Core: 9.5.x + Environment: PHP 8.1 & MySQL 5.7
    last update about 1 year ago
    Waiting for branch to pass
  • Open on Drupal.org →
    Core: 9.5.x + Environment: PHP 8.1 & MySQL 5.7
    last update about 1 year ago
    Waiting for branch to pass
  • Open on Drupal.org →
    Core: 9.5.x + Environment: PHP 8.1 & MySQL 5.7
    last update about 1 year ago
    Waiting for branch to pass
  • Open on Drupal.org →
    Core: 9.5.x + Environment: PHP 8.1 & MySQL 5.7
    last update about 1 year ago
    Waiting for branch to pass
  • Open on Drupal.org →
    Core: 9.5.x + Environment: PHP 8.1 & MySQL 5.7
    last update about 1 year ago
    Waiting for branch to pass
  • Open on Drupal.org →
    Core: 9.5.x + Environment: PHP 8.1 & MySQL 5.7
    last update about 1 year ago
    Waiting for branch to pass
  • Open on Drupal.org →
    Core: 9.5.x + Environment: PHP 8.1 & MySQL 5.7
    last update about 1 year ago
    Waiting for branch to pass
  • 🇨🇦Canada dylan donkersgoed London, Ontario

    Few more fixes. Notably there was an error when trying to edit source with my last few changes and there was a conflict with the core list plugin.

  • Open on Drupal.org →
    Core: 9.5.x + Environment: PHP 8.1 & MySQL 5.7
    last update about 1 year ago
    Waiting for branch to pass
  • 🇨🇦Canada dylan donkersgoed London, Ontario

    Forgot to actually build the plugin after the last change, new patch.

  • Open on Drupal.org →
    Core: 9.5.x + Environment: PHP 8.1 & MySQL 5.7
    last update about 1 year ago
    Waiting for branch to pass
  • Open on Drupal.org →
    Core: 9.5.x + Environment: PHP 8.1 & MySQL 5.7
    last update about 1 year ago
    Waiting for branch to pass
  • 🇨🇦Canada dylan donkersgoed London, Ontario

    Apparently I forgot to push so that was just the same patch as before. Here's the rebuilt patch for real.

  • Assigned to ozin
  • 🇺🇦Ukraine ozin 🇺🇦Lviv

    Hi Dylan!
    Thanks for the patch, I will take a look as soon as possible.

  • Open on Drupal.org →
    Core: 9.5.x + Environment: PHP 8.1 & MySQL 5.7
    last update about 1 year ago
    Waiting for branch to pass
  • 🇦🇺Australia Jaspreet.gill

    Hi

    I applied #16 patch but it is breaking HTML layout in ckeditor editor side.

  • Open on Drupal.org →
    Core: 9.5.x + Environment: PHP 8.1 & MySQL 5.7
    last update about 1 year ago
    Waiting for branch to pass
  • Open on Drupal.org →
    Core: 9.5.x + Environment: PHP 8.1 & MySQL 5.7
    last update about 1 year ago
    Waiting for branch to pass
  • 🇨🇦Canada RobLoach Earth

    Hi Mykhailo! Been using this on a site, and it has been working well :) ... Thanks so much for pushing this forwards, DylanDonkersgoed.

  • 🇨🇦Canada RobLoach Earth

    @DylanDonkersgoed I see your latest changes! Nice work. Could you add a basic composer.json in there so that existing ? Something like this could be sufficient...

    {
        "name": "drupal/ckeditor_bootstrap_tabs",
        "type": "drupal-module",
        "license": "GPL-2.0-or-later",
        "require": {}
    }
    
  • Open on Drupal.org →
    Core: 9.5.x + Environment: PHP 8.1 & MySQL 5.7
    last update about 1 year ago
    Waiting for branch to pass
  • Open on Drupal.org →
    Core: 9.5.x + Environment: PHP 8.1 & MySQL 5.7
    last update about 1 year ago
    Waiting for branch to pass
  • 🇨🇦Canada dylan donkersgoed London, Ontario

    I pushed up a few more fixes for issues we ran into:

    • When adding a new tab set it adds paragraphs by default. Without it it's quite tricky to select and edit text inside the tab after first adding tabs. Also, with just raw text CKE5 overwrites this with a paragraph when saving anyway (or at least something about Drupal's full html format does), so this keeps things more consistent.
    • I fixed an issue where changing the number of tabs would sometimes add too many new tabs.
    • I fixed an issue where the heading plugin (and maybe others, though that was the only one I could find with the issue) was not usable inside tabs. I don't fully understand why, but splitting the tab content and tab pane into multiple elements seems to have fixed it.

    @RobLoach I also added a rudimentary composer.json. Please feel free to push to the MR if you need to,

  • Open on Drupal.org →
    Core: 9.5.x + Environment: PHP 8.1 & MySQL 5.7
    last update about 1 year ago
    Waiting for branch to pass
  • 🇨🇦Canada dylan donkersgoed London, Ontario

    Also, attaching a new patch file from the latest MR.

  • Open in Jenkins → Open on Drupal.org →
    Core: 10.1.4 + Environment: PHP 8.1 & MySQL 5.7
    last update about 1 year ago
    Build Successful
  • Status changed to Fixed about 1 year ago
  • 🇺🇦Ukraine ozin 🇺🇦Lviv

    New release 2.0.0 with CKEditor 5 support has been released, thanks everyone for the great work!

  • 🇨🇦Canada dimitrihokonmoy

    Thanks for working on this.
    Works for me.Thank You

  • 🇨🇦Canada RobLoach Earth

    This is fantastic. Congrats on the release!

  • 🇺🇸United States emptyvoid

    Awesome work!

    I'm gonna review your work as it's really unclear where to define GUI elements in the Drupal API verses the CkEditor 5 API.
    I burned about a month attempting to help the management team for this module with some success.

    https://www.drupal.org/project/ckeditor_bootstrap_grid

    We'll see if your work can provide some light at the end of the tunnel.

  • Automatically closed - issue fixed for 2 weeks with no activity.

Production build 0.71.5 2024