[我发现了如何从粘贴的内容中strip any existing formatting,但是我没有找到一种对它强制执行格式的优美方法。
我使用当前的技巧:
quill.clipboard.addMatcher (Node.ELEMENT_NODE, (node, delta) => {
quill.format('header', 1); // <-- hacky sneaky set format in quill
return new Delta().insert(node.innerText); // <-- returns stripped text
});
尽管这可行,但是在通过粘贴添加文本之前设置格式的适当方法是什么?我怀疑我需要注册一个事件处理程序或挂在某个地方。
答案比我想象的要简单:
quill.clipboard.addMatcher (Node.ELEMENT_NODE, (node, delta) => {
// return stripped and reformatted text
return new Delta().insert(node.innerText).insert('\n', { header: 1 });
});
诀窍是正确使用Delta DSL。起初并没有意识到标头格式如何使用这种奇怪的换行符方法,但是似乎正是Quill的工作原理。