.. _breaking-ckeditor-configuration-is-a-module: ================================================== Breaking: The editor configuration is an ES module ================================================== Description =========== The script configuring the CKEditor instances of the frontend form is now compiled from a TypeScript source and is an **ES module**: .. code-block:: text EXT:academic_persons_edit/Resources/Public/JavaScript/CKEditor.js -> EXT:academic_persons_edit/Resources/Public/JavaScript/frontend/ckeditor.js It is registered in :file:`Configuration/JavaScriptModules.php` and addressed by the bare specifier :code:`@fgtclb/academic-persons-edit/frontend/ckeditor.js`. CKEditor itself is still loaded from a content delivery network by the same template, unchanged. Impact ====== An installation that uses the shipped template needs to do nothing. An installation that references the old path loads a file that no longer exists, and the rich text fields fall back to plain textareas. Affected installations ====================== Installations that override :file:`Templates/Profile/Edit.html` or reference :file:`CKEditor.js` from their own site package. Migration ========= In an overridden template, replace the reference: .. code-block:: html :html:`` cannot be used any more, because a classic script tag does not execute an ES module. The :code:`ckeditor-config` identifier and the :html:`async`/:html:`defer` attributes are gone with it: a module is deferred by definition.