我想在Quill文档中实现瞬态突出显示。
例如,设想一个SEARCH按钮,用户可以通过设置匹配文本范围的文本颜色来突出显示当前文档中关键字的所有实例。
今天我能做到这一点,有这样的事情:
var keyword = "hello";
var text = quill.getText();
var matchIndex = text.indexOf(keyword);
while (matchIndex >= 0) {
quill.formatText(matchIndex, keyword.length, { "color" : "#f00" });
matchIndex = text.indexOf(keyword, matchIndex + keyword.length);
}
但我不希望将得到的增量纳入本文档的官方更改历史记录中。这些只是短暂的亮点,我希望能够用这样的东西清除它们......
quill.clearTransientFormats();
我甚至想让用户选择启用瞬态高亮显示,同时他们继续使用自己的破坏性更改来编辑和修改文档。
基本上,我想要两种不同的格式:
实现这样的事情的最佳方法是什么?
答案 0 :(得分:1)
我建议在保存之前对delta进行后期处理。使用compose
:
var length = aboutToBeStored.length();
var toStore = aboutToBeStored.compose(new Delta().retain(0, length, { color: null }));