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

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

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

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

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

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

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

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

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

Подключаем wysiwyg CKeditor к нашим формам в Drupal 7

Декабрь 20, 2014 г.

Как подключить CKeditor к Drupal 7 я рассказывал ранее. После настройки модуль подключит редактор CKeditor к полям редактирования публикаций. А как подключить wysiwyg к собственным формам? В 6-й версии Drupal редактор с помощью модуля CKeditor подключался ...

Читать

SpecialCharacters плагин в CKE5. Добавляем символы.

Апрель 11, 2025 г.

В CKEditor 5 есть родной плагин, который отображает список спец. символов для вставки в редактор. Он удобен и прост, проблема лишь в том, что он содержит ...

Читать

Фильтрация тегов на уровне плагина в CKEditor 5

Апрель 7, 2025 г.

Плагин DataFilter позволяет управлять фильтрацией HTML тегов. Он является "родным" для CKE плагином, так что ничего дополнительно устанавливать не нужно. Рассмотрим как им можно управлять на уровне кастомного плагина. Допустим, вы хотите разрешить ...

Читать

Установить фокус ввода в CKE5

Март 23, 2025 г.

При написании плагина столкнулся с тем, что в момент нажатия кнопки в тулзах, редактор терял фокус ввода. Поведение верное, но пользователю не удобно - нужно курсор возвращать на место "вручную". Вернуть фокус можно так: [crayon-6934271ecf820592461162/] ...

Читать
 

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

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



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