Есть ли способ создать собственный плагин для CK Editor для поддержки встроенных SVG? - PullRequest
1 голос
/ 26 апреля 2019

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

schema.register('actionIcon', {
      allowWhere: '$text',
      isInline: true
      allowAttributes: ['name', 'class']
    })

schema.register('actionCircle', {
      allowWhere: '$text',
      isInline: true,
      allowAttributes: ['name', 'class', 'cx', 'cy', 'r', 'stroke', 'fill']
    })

// ...

conversion.elementToElement({
      model: 'actionIcon',
      view: {
        name: 'svg',
        classes: 'action-icon'
      }
})

conversion.elementToElement({
      model: 'actionCircle',
      view: {
        name: 'circle',
        classes: 'action-circle',
        ['cx']: '50',
        ['cy']: '50',
        ['r']: '40',
        ['stroke']: 'green',
        ['fill']: 'yellow'
      }
})


Result:

<p>
    <svg class="action-icon">
        <circle class="action-circle">&nbsp;</circle>
    </svg>
    <span class="placeholder ck-widget" contenteditable="false">
        Item
    </span>
</p>

Я ожидал создать схему и конвертер для SVG и вставить его в виджет, но редактор CK удаляет все атрибуты, которые я подробно описал.

...