feat: the editor records, shows and applies tracked changes

Two marks carry a revision with its author and date: an insertion is
marked text, a deletion is text kept and struck through. Consecutive
typing joins one change; accept/reject work at the cursor or on all.

ODF splits the pair — text:change-start/-end around an insertion, a
text:change where a deletion was, its text in the tracked-changes
registry. DOCX uses w:ins/w:del with w:delText. Both round-trip, and
accepting every change gives the document an unrecorded edit would.
This commit is contained in:
Steffen Becker committed 2026-08-14 07:48:10 +02:00
1 parent da438a7655
commit 5ee4eec5d7
18 files changed
+646 -16

No files matched your search

+13
View File
@@ -1007,6 +1007,19 @@
border-bottom-color: rgba(140, 140, 140, 0.6);
}
/* Recorded revisions (trackChanges.ts). Both word processors underline an insertion
and strike a deletion, in the reviewer's colour; one colour here, since the editor
has a single author. */
.tiptap .pm-insertion {
color: #b5179e;
text-decoration: underline;
}
.tiptap .pm-deletion {
color: #b5179e;
text-decoration: line-through;
}
/* Print styles: proper A4 pagination */
@media print {
.editor {