Socalled "Tracked changes" using ProseMirror


“Tracked changes” can mean many things to many people. There is the kind of scientific understanding that one actually tracks every single change and presents to the user what has actually changed in the document over time.

Another thing is what users have become used to from popular word processors with that name: a mechanism which hinders the user in deleting any content (content is only added) and which adds marks throughout the document, documenting what has been added by whom and what the user attempted to remove or merge.

The title “tracked changes” seems technically incorrect for this second type, because accepting and reject any of these changes can be done independently and in a different order than what the changes were attempted to be done in initially, thereby creating entirely versions of the document.

Anyway, this second type is what many end users expect and here is a first version that tracks block creation/deletion, inline additions/deletions, format changes and block type changes (feature complete but likely not bugfree) built using ProseMirror to be released with the next version of Fidus Writer.

To try it out, go to (id/pw: testtest/testtest). I’d be interested in feedback!




This looks really interesting - great work! I see you’re having the same issue here as I am, using appendTransaction all of the undo / redo events get closed after every input so that undoing ends up being undo one character at a time. Have you found a fix for this?