Quill 文档中的瞬态格式?
Transient formatting in a Quill document?
我想在 Quill 文档中实现瞬态突出显示。
例如,假设有一个“搜索”按钮,用户可以在其中突出显示当前文档中关键字的所有实例,方法是为匹配的文本范围设置文本颜色。
我今天可以做到这一点,就像这样:
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();
我什至想让用户选择启用瞬态高亮,同时他们继续使用自己的破坏性更改来编辑和修改文档。
基本上,我想要两种不同的格式:
- 破坏性格式始终记录在文档历史记录中保留的增量序列中。
- 文档历史记录中会忽略瞬态格式,因为它仅适用于当前视图。
实现类似功能的最佳方式是什么?
我建议只 post- 在保存之前处理增量。使用 compose
:
可以很容易地实现
var length = aboutToBeStored.length();
var toStore = aboutToBeStored.compose(new Delta().retain(0, length, { color: null }));
我想在 Quill 文档中实现瞬态突出显示。
例如,假设有一个“搜索”按钮,用户可以在其中突出显示当前文档中关键字的所有实例,方法是为匹配的文本范围设置文本颜色。
我今天可以做到这一点,就像这样:
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();
我什至想让用户选择启用瞬态高亮,同时他们继续使用自己的破坏性更改来编辑和修改文档。
基本上,我想要两种不同的格式:
- 破坏性格式始终记录在文档历史记录中保留的增量序列中。
- 文档历史记录中会忽略瞬态格式,因为它仅适用于当前视图。
实现类似功能的最佳方式是什么?
我建议只 post- 在保存之前处理增量。使用 compose
:
var length = aboutToBeStored.length();
var toStore = aboutToBeStored.compose(new Delta().retain(0, length, { color: null }));