Tracking changes

Changes are first-class values in ProseMirror. You can hold on to them, and do things with them. Such as rebasing them across other changes, inverting them, or inspecting them to see what they did.

This demo uses those properties to allow you to “commit” your changes, to revert individual commits, and to find out which commit a piece of text originates from.

Note that, due to the implicit conflict resolution when moving changes across each other, outcomes of complicated reverts aren't always optimal.

Demo

The full source code for this demo is here.

Commit message:

Hover over commits to highlight the text they introduced.

Next demo: collaborative editing.