Снимаем обертки в модели CKE5

Продолжаю публиковать сниппеты, связанные с экосистемой CKEditor 5. Сегодня покажу как удалять контейнер с сохранением его содержимого.

Api предоставляет функцию writer.unwrap(element). Но беда в том, что функция не заботится о валидности дочерних элементов, когда те оказываются в родительском контейнере.

К примеру, у нас есть элемент mainContainer, в котором могут быть childElem1 и childElem2. Когда мы выполняем unwrap на mainContainer, childElem1 и childElem2 проваливаются ниже. Тут они могут быть даже валидными с т.з. модели, к примеру, если childElem1 транслируется в DOM как <span class=child1>. И span тег разрешен другим плагином.

А желательно бы и их найти и выполнить им unwrap, чтобы остался, к примеру, только текст, который был внутри дочерних контейнеров.

Организуем рекурсию:

Функция unwrap_content ожидает элемент, который нужно удалить, а также список имен других элементов, которые будут также подчищены.

В нашем случае нужно вызвать:

Мало букафф? Читайте есчо !

Подключение своих стилей для CKEditor 5 в Drupal

Февраль 20, 2024 г.

Чтобы добавить в редактор свои стили, обычно следуют гайду, который реализует hook mymodule_library_info_alter. При создании своих модулей для CKE5/D10, я так же пользовался данной статьей из документации. Но проблема была в том, что тот модуль, ...

Читать

Создание плагина CKEditor 5 в экосистеме Drupal 10

Февраль 8, 2024 г.

Drupal 10 добавил в ядро модуль wysiwyg CKEditor 5. Т.е. уже из "коробки" у вас есть редактор html кода. API CKEditor 4 и 5 версий значительно отличаются, ...

Читать

Убираем вставку &nbsp; в пустые div контейнеры в CKEditor 5

Апрель 9, 2025 г.

Неприятная особенность CKEditor - добавляет в пустые контейнера (в <div>,<p> и т.п.) html код неразрывного пробела. Покажу как можно от этого избавиться через код в кастомном плагине для CKEditor 5 в экосистеме Drupal 8+. Нам понадобится ...

Читать

CKEditor не включается в при загрузке страницы

Август 30, 2018 г.

Редактор подключен и настроен, но почему то не включается при загрузке страницы. Как быть? Если вы уверены, что все настроено верно, а именно: ...

Читать
 

Комментарии к «Снимаем обертки в модели CKE5»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: