Drupal 8 ships with a custom CKEditor build. This build is configured with a build-config.js
file. We recently ran into a situation in which we wanted to override this configuration in order to disable a plugin. There is some information in this build-config.js
file about replacing it with a non-minified build for development purposes, but nothing about overriding it. Here is how we did it.
The plugin we wanted to disable was the <a href="https://ckeditor.com/cke4/addon/showborders" target="_blank">Show Table Borders</a> plugin. This is the feature that provides default dotted borders around all table cells while you're editing a table in CKEditor. We wanted to disable that and, instead, just show the table borders as they would be styled on the front-end. Upon inspection of the build-config.js
file that Drupal uses, which is located at core/assets/vendor/ckeditor
, we found that the plugins
key contained showborders: 1
. To disable it, we needed to rebuild CKEditor with this line removed.
To do that, we saved a copy of build-config.js
to our theme in a similar location: assets/vendor/ckeditor
. We removed the line which enables showborders
. Then, we went to CKEditor's online <a href="https://ckeditor.com/cke4/builder" target="_blank">Builder</a> and used the Upload build-config.js feature to download a newly generated copy of CKEditor that would exclude the Show Table Borders plugin. We placed the downloaded files in our theme's assets/vendor/ckeditor
directory.
The last step is to override Drupal's core CKEditor build from within the theme's info.yml file. Add the following lines (modified for your theme):
libraries-override: core/ckeditor: js: assets/vendor/ckeditor/ckeditor.js: /themes/custom/YOUR_THEME_NAME/assets/vendor/ckeditor/ckeditor.js
Flush the caches and the plugin should be gone!