#quill
#quill
Вопрос:
Похоже, что Quill представляет выходные данные в виде дельт для постепенного создания документа. Это полезно для отмены или во время редактирования документа. Но после сохранения документа этот дельта-вывод вообще бесполезен, требует больших затрат на хранение и затрудняет структурный переход по документу.
Например, содержимое одного блока кода будет:
while (1) {
i ;
j ;
}
И дельта-выходные данные
ops: Array(8)
0: {insert: "↵while (1) {"}
1: {attributes: {…}, insert: "↵"}
2: {insert: " i ;"}
3: {attributes: {…}, insert: "↵"}
4: {insert: " j ;"}
5: {attributes: {…}, insert: "↵"}
6: {insert: "}"}
7: {attributes: {…}, insert: "↵"}
length: 8
Как мне сгладить дельта-выходные данные до более простого вывода, который представляет документ структурно. В этом случае одна вставка с атрибутом «code block»?
Ответ №1:
Для сглаживания изменений можно использовать метод Delta.compose.
Вот пример из документации:
const a = new Delta().insert('abc');
const b = new Delta().retain(1).delete(1);
const composed = a.compose(b); // composed == new Delta().insert('ac');
Есть еще один пример того, как это использовать в примере с автосохранением на игровой площадке.