我使用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