Как применить форматирование при вставке? - PullRequest
0 голосов
/ 14 января 2020

Я нашел, как убрать любое существующее форматирование из вставленного содержимого, но я не нашел изящного способа применить к нему формат.

Я использую текущий хак:

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
});

Хотя это работает, как правильно установить формат перед добавлением текста путем вставки? Я подозреваю, что мне нужно зарегистрировать обработчик событий или перехватить где-нибудь.

1 Ответ

0 голосов
/ 14 января 2020

Ответ проще, чем я думал:

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.

...