CKEditor 5 - Как вставить некоторый HTML (он же где режим источника)?

1

Я хочу иметь возможность переключаться с WYSIWYG на обычный HTML, например, вставлять IFrame с видео Youtube. Пока что со стандартными сборками CKEditor 5 нет документации о том, как это сделать.

Есть ли эквивалент плагина редактирования области редактирования, но для CKEditor 5?

  • 0
    Этот вопрос хорош и, безусловно, понятен для разработчиков CKEditor 5 и людей, которые используют редакторы WYSIWYG. Пожалуйста, не закрывайте его (я видел отрицательные голоса).
  • 0
    С Ckeditor первоначально это было хорошо задокументировано. Попробуйте это: docs.ckeditor.com/ckeditor5/latest/builds/guides/integration/…, в частности, раздел. You can use the following snippet to retrieve all toolbar items available in your editor: Array.from( editor.ui.componentFactory.names );
Показать ещё 1 комментарий
Теги:
ckeditor
ckeditor5

1 ответ

1

Ваш вопрос затрагивает две сложные темы:

  • Независимо от того, имеет ли источник режим вообще.
  • Можно ли разрешить ввод (и редактирование) любого HTML в CKEditor 5.

Они уже обсуждались в режиме "Просмотр источника" и "Как сохранить разметку и не удалять" билеты на CKEditor 5 GitHub, но я попытаюсь их быстро объяснить.

Имеет ли смысл режим источника?

На самом деле, нет. Это имеет смысл для небольшой группы людей, которые знают HTML, и которые могут достоверно редактировать его вручную, но потом зачем использовать полнотекстовый редактор?

Вы можете сказать, что это не проблема? Редактор HTML будет редактировать только опытные пользователи. Остальные будут использовать режим WYSIWYG. Но здесь возникает еще один набор проблем. Вы просто ввели произвольный HTML в редактор, и теперь другие пользователи пытаются отредактировать его в режиме WYSIWYG. Но так как это HTML-код, который редактор не понимает (потому что нет никаких функций, которые его обрабатывают) существует огромный шанс, что он будет уничтожен со временем. Чтобы те капли HTML были разделены, выделены полужирным шрифтом, скопированы, неправильно скопированы и вставлены и т.д. Вы можете сказать, что исходный режим оказывается полезным снова, потому что из-за отсутствия надлежащего пользовательского интерфейса для редактирования этого блоба вам понадобится вручную исправить. Но подождите - не все ли это беспорядок, почему люди ненавидят редакторов с богатым текстом?

Давайте посмотрим на это с помощью аналогии. Редактор с богатым текстом - это просто интерфейс для редактирования некоторых данных (в этом случае в формате HTML). Аналогично, CMS - это интерфейс для редактирования базы данных. Итак, вы даете прямой доступ к вашей базе данных пользователям, работающим с нормой? Вы добавляете продукты в свою базу данных вручную через mysqladamin? Я так не думаю. Это не удобно и небезопасно для обычных пользователей.

Поэтому не пытайтесь редактировать HTML вручную. Если ваша CMS пропускает функцию, вы просто добавляете ее. Сделайте то же самое с редакторами с расширенным текстом. И не обвиняйте их в том, что они разрушают ваш ручной HTML, если вы не научили их тому, что означает этот HTML, и как его обрабатывать.

Я действительно рекомендую вам прочитать режим "Просмотр источника", потому что мы затронули множество интересных тем (например, что такое структурированный контент).

Можно ли вводить любой HTML-код в CKEditor 5?

Нет. Я процитирую себя здесь:

CKEditor 5 реализует пользовательскую модель данных. Чтобы загрузить данные в эту модель, вам необходимо иметь конвертеры model → model для каждой части содержимого, которую вы хотите, чтобы ваш редактор поддерживал. Затем вам нужны модели → просмотр конвертеров, чтобы сделать этот контент доступным для редактирования (его нужно отображать в редакторе для редактирования). Наконец, вам нужно настроить схему и иногда настраивать определенные функции, такие как Enter, чтобы они знали смысл этого контента, который вы загрузили в редактор, и как его изменить.

Другими словами, из-за модели данных функция должна реализовывать полный жизненный цикл определенного фрагмента контента (тега, атрибута и т.д.), Который он обрабатывает, - от загрузки данных, рендеринга для редактирования, редактирования самого и данных поиск.

Источник: https://github.com/ckeditor/ckeditor5/issues/705

Новая эра

Время изменилось. В течение многих лет мы пытались обучить разработчиков тому, как использовать богатые текстовые редакторы, но темный возраст WYSIWYG, используемых для редактирования целых сайтов, оставался сильным среди людей.

С CKEditor 5 больше нет возможности редактировать произвольный HTML из-за модели данных и чрезмерной архитектуры, которая заставляет разработчиков переосмысливать их интеграцию. В то же время, наличие модели данных и совершенно новой архитектуры значительно упрощают реализацию функций редактирования, которые в конечном итоге станут доступными для этой работы. Конечно, это не будет бесплатным, но окончательный эффект будет намного лучше.

  • 5
    Спасибо за информацию. Мне немного грустно, что они решили пойти по этому пути. Я надеюсь, что они будут продолжать поддерживать версию 4, так как это блокирует многие проекты от возможности обновления. Иногда клиентам требуются функции, которые не имеют смысла, и разработчики на местах все еще должны предоставить.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню