Я использую quill.formatText()
, чтобы добавить пользовательский формат «выделить» в текстовый редактор. Я протянул блоттинга, как так:quill.formatText() не допускает вложенных форматов
let Inline = Quill.import('blots/inline');
class highlight extends Inline {
static create() {
return super.create();
}
static formats() {
return true;
}
}
highlight.blotName = 'highlight';
highlight.className = 'highlight';
highlight.tagName = 'span';
Quill.register(highlight);
Я тогда называть quill.formatText(start, selectionLength, 'highlight', true);
, который оборачивает мой выбор в <span class="highlight">
теге. Все идет нормально.
Проблема в том, что я хочу, чтобы каждый выбор был обернут в свой собственный тег span
. Когда я делаю два выбора текста, один внутри другого, остается только внешний span
.
Например, с текстом test inside text
. Если я выделить всю строку в дополнение к только слова inside
, я бы ожидать, чтобы получить:
<span class="highlight">Test <span class="highlight">inside</span> text</span>
В то время как я на самом деле получить:
<span class="highlight">Test inside text</span>
Похоже, это оптимизация, которую QuillJS делает за кулисами - есть ли все-таки я могу отключить ее, чтобы я мог хранить как вложенные span
?
Кроме того, для записи, что делает два непересекающихся представлены самые консервирования оба из «пролета» просто прекрасны. Только когда они пересекаются или гнездятся, Quill решает оптимизировать. – Pete