Important Notes:
- Marked the
editor.beforePaste
event as deprecated. - The default class of captioned images has changed to
image
(was:caption
). Please note that once edited in CKEditor 4.4+, all existing images of thecaption
class (<figure class="caption">
) will be filtered out unless theconfig.image2_captionedClass
option is set tocaption
. For backward compatibility (i.e. when upgrading), it is highly recommended to use this setting, which also helps prevent CSS conflicts, etc. This does not apply to new CKEditor integrations. - Widgets without defined buttons are no longer registered automatically to the Advanced Content Filter. Before CKEditor 4.4 widgets were registered to the ACF which was an incorrect behavior (#11567). This change should not have any impact on standard scenarios, but if your button does not execute the widget command, you need to set
allowedContent
andrequiredContent
properties for it manually, because the editor will not be able to find them. - The Show Borders plugin was added to the Standard installation package in order to ensure that unstyled tables are still visible for the user (#11665).
- Since CKEditor 4.4 the editor instance should be passed to
CKEDITOR.style
methods to ensure full compatibility with other features (e.g. applying styles to widgets requires that). We ensured backward compatibility though, so theCKEDITOR.style
will work even when the editor instance is not provided.
New Features:
-
#11297: Styles can now be applied to widgets. The definition of a style which can be applied to a specific widget must contain two additional properties —
type
andwidget
. Read more in the Widget Styles section of the "Syles Drop-down" guide. Note that by default, widgets support only classes and no other attributes or styles. Related changes and features:- Introduced the
CKEDITOR.style.addCustomHandler()
method for registering custom style handlers. - The
CKEDITOR.style.apply()
andCKEDITOR.style.remove()
methods are now called with an editor instance instead of the document so they can be reused by theCKEDITOR.editor.applyStyle()
andCKEDITOR.editor.removeStyle()
methods. Backward compatibility was preserved, but from CKEditor 4.4 it is highly recommended to pass an editor instead of a document to these methods. - Many new methods and properties were introduced in the Widget API to make the handling of styles by widgets fully customizable. See:
widget.definition.styleableElements
,widget.definition.styleToAllowedContentRule
,widget.addClass()
,widget.removeClass()
,widget.getClasses()
,widget.hasClass()
,widget.applyStyle()
,widget.removeStyle()
,widget.checkStyleActive()
. - Integration with the Allowed Content Filter required an introduction of the
CKEDITOR.style.toAllowedContent()
method which can be implemented by the custom style handler and if exists, it is used by theCKEDITOR.filter
to translate a style to allowed content rules.
- Introduced the
-
#11300: Various changes in the Enhanced Image plugin:
- Introduced the
config.image2_captionedClass
option to configure the class of captioned images. - Introduced the
config.image2_alignClasses
option to configure the way images are aligned with CSS classes. If this setting is defined, the editor produces classes instead of inline styles for aligned images. - Default image caption can be translated (customized) with the
editor.lang.image2.captionPlaceholder
string.
- Introduced the
- #11341: Enhanced Image plugin: It is now possible to add a link to any image type.
- #10202: Introduced wildcard support in the Allowed Content Rules format.
- #10276: Introduced blacklisting in the Allowed Content Filter.
- #10480: Introduced code snippets with code highlighting. There are two versions available so far — the default Code Snippetwhich uses the highlight.js library and the Code Snippet GeSHi which uses the GeSHi library.
-
#11737: Introduced an option to prevent filtering of an element that matches custom criteria (see
filter.addElementCallback()
). -
#11532: Introduced the
editor.addContentsCss()
method that can be used for adding custom CSS files. -
#11536: Added the
CKEDITOR.tools.htmlDecode()
method for decoding HTML entities. -
#11225: Introduced the
CKEDITOR.tools.transparentImageData
property which contains transparent image data to be used in CSS or as image source.
Other changes:
- #11377: Unified internal representation of empty anchors using the fake objects.
- #11422: Removed Firefox 3.x, Internet Explorer 6 and Opera 12.x leftovers in code.
-
#5217: Setting data (including switching between modes) creates a new undo snapshot. Besides that:
- Introduced the
editable.status
property. - Introduced a new
forceUpdate
option for theeditor.lockSnapshot
event. - Fixed: Selection not being unlocked in inline editor after setting data (#11500).
- Introduced the
- The WebSpellChecker plugin was updated to the latest version.
Fixed Issues:
-
#10190: Fixed: Removing block style with
editor.removeStyle()
should result in a paragraph and not a div. - #11727: Fixed: The editor tries to select a non-editable image which was clicked.