CKEditor plugins

The core of CKEditor can be extended with many plugins. Each plugin has a unique all-lowercase name that is used to reference the plugin in the CKEditor configuration.

Available plugins

The following CKEditor plugins are included with Bloomreach:

PluginDescriptionUsed by default in Formatted Text Fields inUsed by default in Rich Text Fields in
ContentChannelsContentChannels
a11yhelpAccessibility HelpNoNoYesYes
aboutAbout CKEditorNoNoNoNo
autogrowAuto GrowNoYes [2]NoYes [2]
autolinkAuto LinkNoNoYesYes
balloonpanelBalloon PanelNoNoNoNo
balloontoolbarBalloon ToolbarNoNoNoNo
basicstylesBasic StylesYesYesYesYes
bidiBiDi (Text Direction)NoNoNoNo
blockquoteBlockquoteNoNoNoNo
buttonUI ButtonYesYesYesYes
clipboardClipboardYesYesYesYes
codemirrorCodeMirror (Source) Syntax HighlightingNoNoYesYes
codesnippetCode SnippetNoNoNoNo
colorbuttonColor ButtonNoNoNoNo
colordialogColor DialogNoNoNoNo
copyformattingCopy FormattingYesYesYesYes
contextmenuContext MenuYesYesYesYes
dialogDialogYesYesYesYes
dialogadvtabAdvanced Tab for DialogsNoNoYesYes
dialoguiDialog User InterfaceYesYesYesYes
divDiv Container ManagerNoNoNoNo
divareaDiv Editing AreaYesYesYesYes
elementspathElements PathNoNoYesYes
emojiEmojiNoNoNoNo
enterkeyEnter KeyYesYesYesYes
entitiesEscape HTML EntitiesYesYesYesYes
fakeobjectsFake ObjectsNoNoNoNo
filebrowserFile BrowserNoNoNoNo
findFind / ReplaceNoNoNoNo
floatingspaceFloating SpaceYesYesYesYes
floatpanelFloating PanelYesYesYesYes
fontFont Size and FamilyNoNoNoNo
formatFormatNoNoNoNo
forms [1]Form ElementsNoNoNoNo
hippoautosaveBloomreach Experience Manager auto saveYesYesYesYes
hippopickerBloomreach Experience Manager pickers for images and internal linksNoNoYesYes
horizontalruleHorizontal RuleNoNoNoNo
htmlwriterHTML Output WriterYesYesYesYes
iframeIFrame DialogNoNoNoNo
iframedialogIframe Dialog FieldNoNoNoNo
imageImageNoNoNoNo
image2Enhanced ImageNoNoNoNo
indentIndent / OutdentNoNoYesYes
indentblockIndent BlockNoNoYesYes
indentlistIndent ListNoNoYesYes
justifyJustifyNoNoYesYes
languageLanguageNoNoNoNo
linkLinkNoNoYesYes
listListNoNoYesYes
listblockList BlockYesYesYesYes
liststyleList StyleNoNoYesYes
magiclineMagic LineYesYesYesYes
mathjaxMathematical FormulasNoNoNoNo
maximizeMaximizeNoNo [3]YesNo [3]
mentionsMentionsNoNoNoNo
menuMenuYesYesYesYes
menubuttonMenu ButtonYesYesYesYes
notificationNotificationNoNoNoNo
pagebreakPage BreakNoNoNoNo
panelPanelYesYesYesYes
panelbuttonPanel ButtonYesYesYesYes
pastefromwordPaste from WordNoNoYesYes
pastetextPaste as Plain TextNoNoYesYes
placeholderPlaceholderNoNoNoNo
popupPopupNoNoYesYes
removeformatRemove FormatYesYesYesYes
resizeEditor ResizeNoNo [3]YesNo [3]
richcomboRich ComboYesYesYesYes
selectallSelect AllNoNoNoNo
sharedspaceShared SpaceNoYes [2]NoYes [2]
showblocksShow BlocksNoNoYesYes
showbordersShow Table BordersNoNoYesYes
smileyInsert SmileyNoNoNoNo
sourceareaSource Editing AreaNoNo [3]NoNo [3]
sourcedialogSource DialogNoYes [2]NoYes [2]
specialcharSpecial CharactersNoNoYesYes
stylescomboStyles ComboYesYesYesYes
tabTab Key HandlingYesYesYesYes
tableTableNoNoYesYes
tableresizeTable ResizeNoNoYesYes
tableselectionTable SelectionNoNoYesYes
tabletoolsTable ToolsNoNoYesYes
templatesContent TemplatesNoNoNoNo
textselectionKeep TextSelectionNoNoYesYes
toolbarEditor ToolbarYesYesYesYes
undoUndoYesYesYesYes
widgetWidgetNoNoNoNo
wordcountWord Count and Character CountNoNoNoNo
wysiwygareaIFrame Editing AreaNoNoNoNo
youtubeYouTube PluginNoNoYesYes

[1] The 'forms' plugin requires the CKEditor instance to run in an iframe instead of a div, please see the example configuration on how to set this up correctly.

[2] Explicitly enabled by the system

[3] Explicitly disabled by the system

To summarize: all plugins work in both the platform and the Experience manager apps, except for a few plugins that are explicitly disabled in the Experience manager:

  • The maximize plugin is replaced by the "full width toggle" in the right side-panel.
  • The sourcearea plugin does not work with the inline version of CKEditor, so the Experience manager uses the sourcedialog plugin instead.
  • The resize plugin does not work with the inline version of CKEditor, so the Experience manager uses the autogrow plugin instead.

Runtime debugging

The names of all available plugins can also be retrieved at runtime:

  1. Login to Bloomreach using Chrome or Firefox

  2. Edit a document type that contains an HTML field

  3. Open the Chrome dev tools or Firebug

  4. Execute the following JavaScript one-liner:

    Object.keys(CKEDITOR.plugins.registered).sort()

Similarly, it is possible to retrieve the list of plugins used by a specific editor instance:

  1. Print the map of all CKEditor instances to find the name of the editor instance to inspect:

    CKEDITOR.instances
  2. List all plugins in a specific instance, for example 'editor123':

    Object.keys(CKEDITOR.instances.editor123.plugins).sort()

Add a CKEditor plugin

To add a CKEditor plugin that is already available in Bloomreach Experience Manager, use the CKEditor configuration property 'extraPlugins'. For example, to add the 'About' plugin:

ckeditor.config.overlayed.json:

{
  extraPlugins: 'about'
}

A plugin may add one or more buttons to toolbar groups that are not shown by default. In that case, also add these toolbar groups. For example, to show the 'About' button in rich text fields, also add the following configuration:

ckeditor.config.appended.json:

{
  toolbarGroups: [
    { name: 'about' }
  ]
}

Remove a CKEditor plugin

To remove a CKEditor plugin that is included by default, use the CKEditor configuration property ' removePlugins'. For example, to remove the 'styles' combo box, add the following configuration:

ckeditor.config.overlayed.json:

{
  removePlugins: 'stylescombo'
}

© Bloomreach, Inc. All rights reserved.