Feature: #79216 - Add YAML configuration for CKEditor RTE

See forge#79216


The CKEditor-flavored RTE can now be configured via YAML files, defined as presets.

A preset contains both the RTE configuration and the HTML processing when storing the content in the database.

A YAML file for RTE configurations can be registered by any extension in ext_localconf.php:

$GLOBALS['TYPO3_CONF_VARS']['RTE']['Presets']['default'] = 'EXT:rte_ckeditor/Configuration/RTE/Default.yaml';

The TYPO3 Core ships with three flavors for the RTE configuration which can also be overridden via PageTSconfig on a per-field/type level:

RTE.default.preset = minimal
RTE.config.tt_content.bodytext.types.textmedia.preset = full

The PageTSconfig allows to use the minimal configuration everywhere, but to use the full configuration on the tt_content.bodytext field (but only for textmedia content types).

With the YAML configuration files, an "imports" functionality allows to import other configuration and just override the necessary values for a custom configuration for a specific site. This way, the processing part of EXT:rte_ckeditor can be used directly (which acts as best practice) but the editor part can be completely customized.

The YAML format thus states three important parts considered by the RTE configuration preset:

  1. "imports" Allows to import other files via the "resource" sub-property
  2. "processing" uses the former "proc" options to hand over to RteHtmlParser to sanitize the content - the option are the same as for RTEHtmlArea
  3. "editor" A configuration for CKEditor, where all CKEditor-related options can be set which are available from the ckeditor configuration specifications (see http://docs.ckeditor.com/#!/api/CKEDITOR.config for all options).