Report an issue


class since 4.1 abstract

Interface that may be automatically implemented by any instance of any class which has at least the name property and can be meant as an editor feature.

For example:

  • "Bold" command, button, and keystroke – it does not mean exactly <strong> or <b> but just the ability to create bold text.
  • "Format" drop-down list – it also does not imply any HTML tag.
  • "Link" command, button, and keystroke.
  • "Image" command, button, and dialog window.

Thus most often a feature is an instance of one of the following classes:

None of them have a name property explicitly defined, but it is set by CKEDITOR.editor.addCommand and CKEDITOR.ui.add.

During editor initialization all features that the editor should activate should be passed to CKEDITOR.editor.addFeature (shorthand for CKEDITOR.filter.addFeature).

This method checks if a feature can be activated (see requiredContent) and if yes, then it registers allowed content rules required by this feature (see allowedContent) along with two kinds of transformations: contentForms and contentTransformations.

By default all buttons that are included in toolbar layout configuration are checked and registered with CKEDITOR.editor.addFeature, all styles available in the 'Format' and 'Styles' drop-down lists are checked and registered too and so on.