Last updated November 17, 2015. Created on January 14, 2010.
Edited by Wim Leers, ashish_nirmohi, kenisha.lehari, davidneedham. Log in to edit this page.

The CKEditor module is included in Drupal 8 core.

It is inspired by the Drupal 7 Wysiwyg module, and is the spiritual successor to the Drupal 7 CKEditor module. Think of it as the best of both, and then much better still!


The CKEditor module builds on Drupal 8's Text Editor module to provide a deeply integrated CKEditor text editor out of the box. Unlike the contributed module in Drupal 7, the CKEditor module in Drupal 8 core:

  • still ensures structured content and clean markup (and works with rather than around the filter system)
  • significantly improved support from pasting from Microsoft Word/Google Docs/…
  • has an easy-to-use drag-and-drop-based UI to configure CKEditor's toolbar (and automatically updates your filter settings, so you don't have to worry about it: just dragging-and-dropping the buttons you want is enough 99% of the time) — also: no more need to modify JavaScript files to change certain things
  • has strong safety guarantees that protect content editors

Noteworthy technical background information

In order to achieve this, Drupal contributors have closely collaborated with the CKEditor team (and continue to do so: it is maintained by both members of the Drupal community and the CKEditor team!). The CKEditor team has developed significant new features especially for Drupal 8, here are the two most important ones:

  1. ACF, or Advanced Content Filter (in CKEditor 4.1), which allows Drupal to guarantee CKEditor generates clean markup, and only markup that is allowed by Drupal's filters, which means CKEditor's markup preview matches the output exactly
  2. the CKEditor Widget system (in CKEditor 4.3), which allows Drupal to provide a great UX for filters that apply transformations. For example, Drupal 8 allows you to align and caption images via filters (using the data-align and data-caption attributes). By implementing that as data- attributes that filters can process on output, we continue to store semantic, structured content that can easily be transformed in different ways on output (and even uses a themable template!). To not burden content authors with that, Drupal 8 uses the CKEditor Widget API to to provide an intuitive way to add a caption to an image.

Using CKEditor Widgets for a better, tailored authoring experience

The two aforementioned features are essential to use a text editor with Drupal for a better UX, while still supporting the same robust structured content/data modeling. Drupal 8 sites can implement custom filters (like before) to fulfill their content authoring needs, but now can provide a much better experience by writing a CKEditor plugin that hugely improves the authoring experience for those site-specific needs, by using both the Widget and ACF APIs.

Think callouts, footnotes, e-commerce product references, code snippets, mathematical formulas, and more.

Issue queue

See also

Drupal 7

The contributed CKEditor module replaces plain textarea fields with CKEditor, a visual HTML editor, sometimes called WYSIWYG editor.

It's a very fast HTML editor that runs in a browser and doesn't require any kind of installation on the client computer. CKEditor is a core module as of Drupal 8

To see CKEditor in action, visit CKEditor web site or Drupal + CKEditor demo.


Some features of the CKEditor module:

  • ready to use plugins and buttons for <!--break-->and <!--pagebreak--> tags
  • support for external file browsers, like CKFinder, IMCE (See instructions for CKfinder/CKEditor integration)
  • linktocontent and linktonode plugins and buttons for easy linking to nodes or menu items.
  • each user may have it's own configuration (choose skin, toolbar, language, default state of CKEditor, etc.)
  • and much more!

Browser compatibility

CKEditor is compatible with most of the internet browsers, including

  • Internet Explorer 6.0+
  • Firefox 2.0+
  • Safari 3.0+
  • Opera 9.5+
  • Google Chrome
  • Camino 1.0+

Useful links

Looking for support? Visit the forums, or join #drupal-support in IRC.