Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

CKEditor 5 Missing Available Toolbar Items

I've listed all the available toolbar items for the CKEditor 5 Inline editor, and I'm wondering why some of the basic items are missing. I'm using the build at https://cdn.ckeditor.com/ckeditor5/1.0.0-beta.1/inline/ckeditor.js, which the documentation says should include the entire set of features.

editor.ui.componentFactory.names() output:

  • undo
  • redo
  • bold
  • italic
  • blockQuote
  • imageTextAlternative
  • imageUpload
  • heading
  • imageStyle:full
  • imageStyle:side
  • link
  • numberedList
  • bulletedList

As you can see, some of the core items that were included in CKEditor 4 are missing such as:

  • copy
  • paste
  • underline
  • fontSize
  • textColor
  • justifyLeft
  • justifyRight
  • justifyCenter

Why are these items missing? Is it because CKEditor 5 is still in beta?

like image 266
Dane Iracleous Avatar asked Mar 22 '18 23:03

Dane Iracleous


People also ask

How do I add items to CKEditor toolbar?

The simplest way to configure the toolbar is to use the dedicated toolbar configurator that is available in each editor installation package starting from CKEditor 4.5. The editor instance below was configured by using the accessible "toolbar groups" approach, with some unwanted buttons removed by setting the config.

How do I edit CKEditor toolbar?

Basic Toolbar Configurator You can modify the order of the toolbar groups by clicking the Up and Down arrows and toggle button visibility by selecting and deselecting the checkboxes. Use the “Add row separator” button to create a new toolbar row.


1 Answers

Oopsie! The docs are incorrect. This guide says this:

As CKEditor builds come with all features enabled, the only way to add more features to them is to create a custom build.

While it should say this:

As CKEditor builds does not include all possible features, the only way to add more features to them is to create a custom build.

Also, you were unlucky to find that mistake, because, e.g. in the Builds – Overview guide the documentation says:

If a build does not provide all the necessary features or you want to create a highly optimized build of the editor which will contain only the features that you require, you need to customize the build or create a brand new one. Check Custom builds for details on how to change the default builds to match your preferences.

Why not including all features in all builds?

Most builds (classic, inline, balloon) contain only the features listed in Editor Recommendations (with one small exception and one missing features – tables). We call this kind of setup the "article preset".

There's also the document editor build which is actually the decoupled editor creator + document preset. The document preset is much wider than the article preset.

So, why not including all features in all builds? Because such builds would be huge. This affects not only the performance (loading time, execution time) but also the UX. Every editor integration should be adjusted to the specific environment in which it will be used. The set of features and their configuration need to be adjusted to what the user should be able to edit, how and what should be produced. Enabling too many features just because they are available, which the majority of developers unfortunately do, leads to awful integrations, awful UX and awful content produced by such integrations.

Therefore, we propose setups which we find reasonable and slightly force developers to think what they really need.

Where to find all features?

In the examples and on the features list. Some features are not available in any of the builds, so they may only be found in the features list and some features are too common to be listed on the features list because they are available in the examples.

If you can't find some feature in any of these places, then there's a chance that it wasn't implemented yet. You can search for it in the existing issues or report a new one.

like image 85
Reinmar Avatar answered Oct 28 '22 02:10

Reinmar