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
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!