Фильтруем нежелательные теги из WORD в CKEditor

Хоть CKEditor и позволяет редактировать тексты, но редакторов сложно приучить готовить их сразу на сайте. Потому первая ревизия текста обычно появляется на сайте как результат копирования из редактора MS WORD.

Вот как может выглядеть HTML код после такого копирования:

Совершенно недопустимые прямые стили и указание на семейство шрифтов, куча не нужных тегов <span> и т.п.

CKEditor имеет мощный инструмент фильтрации тегов и их атрибутов. Требуется правильно задать правила. Указанные правила будут действовать не только при сохранении данных, но и при импорте (вставке CTRL+V) из любимого редакторами MS WORD.

Где настроить разрешенные теги и атрибуты для CKEditor

Задаётся настройка изменением параметра конфигурации allowedContent. Это можно сделать через кастомный js файл настроек модуля, или задать прямо в форме конфигурации профиля (/admin/config/content/ckeditor):

Найдите секцию с дополнительными настройками:

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

Правила фильтрации

Чтобы быстро ввести вас в курс дела, я расскажу немного правилах. Более подробно о них вы можете почитать на сайте ckeditor.com в разделе документации.

Формат следующий:

Сначала вы перечисляете теги, а потом то, что вы разрешаете для этих тегов — а именно, какие атрибуты, стили, классы.

Например, следующее правило разрешает картинки с обязательным атрибутом srс (используется восклицательный знак), необязательным alt и возможно использование стилей width и height:

Все остальные атрибуты и стили будут убраны.

Правила перечисляются через «;», потому вы можете перечислить нужные вам теги и их правила.

Я обычно использую следующее правило:

Как видите, никаких <span> и <div>.

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

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

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

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

Читать

Добавляем настройки к js плагину CKEditor 5 в Drupal

Март 19, 2024 г.

Когда вы настраиваете форматы текстов, то кроме добавления иконок в toolbar wysiwyg, вы можете видеть набор настроек для разных плагинов CKEditor. Посмотрим ...

Читать

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

Апрель 9, 2025 г.

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

Читать

CKEditor5: удаление элемента при удалении в нем текста (элементов)

Февраль 3, 2025 г.

Пример работы в экосистеме CKE5. Реализуем в нашем плагине обработку изменения данных в модели редактора. При удалении всего текста в инлайновом элементе, удалим сам inline контейнер. Зацепку поместим в init секцию плагина. [crayon-6975df43e0bca129160408/] ...

Читать
 

Комментарии к «Фильтруем нежелательные теги из WORD в CKEditor»

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



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