Преобразование данных CKEditor 5 из медиаэлемента в iframe - PullRequest
0 голосов
/ 05 апреля 2020

Я сейчас нахожусь в процессе миграции на CKEditor 5.

CKEditor 5 имеет элемент <media>, который понижается до figure с iframe / oembed в нем , Я хочу, чтобы CKEditor уменьшил его до простого абзаца, содержащего iframe:

<!-- This -->
<media url="https://www.youtube.com"></media>

// Calling editor.getData()

<!-- Converts to: -->
<p><iframe src="https://www.youtube.com"></iframe></p>

К сожалению, я просто не могу заставить его работать. После копания в течение более 3 часов я просто не могу заставить его работать. Я всегда в конечном итоге с некоторыми "загадочными" ошибками. Я просто не могу полностью понять новую модель. Документы тоже не очень хорошо объясняют. Данные слишком разбросаны, и их очень сложно собрать.

Я пробовал что-то вроде:

editor.conversion.for('dataDowncast').elementToElement({
    model: 'media',
    view: (modelElement, viewWriter) => {
      const url = modelElement.getAttribute('url');

      return viewWriter.createUIElement('p', null, function(domDocument) {
        const domElement = this.toDomElement(domDocument);
        domElement.innerHTML = `<iframe src="${url}"></iframe>`;

        return domElement;
      });
    },
    priority: 'highest',
  });
Uncaught CKEditorError: view-writer-cannot-break-ui-element

Я уверен, что просто что-то упустил. Я уверен, что моего понимания новой модели не хватает, поэтому я вынужден вносить все необходимые изменения.

...