Revision History

A time machine for the document. Snapshots are stored in localStorage (or your server via revisionHistoryUrl). Open the browser, preview any past version in a sandboxed iframe, compare two revisions with an LCS line-diff, restore with one click, name snapshots (“Draft sent to legal”), or rename later.

Revision history demo

Edit freely, then click the History toolbar button. Press Ctrl+Shift+H to open the browser.

Example code

<link rel="stylesheet" href="/richtexteditor/rte_theme_default.css" />
<script type="text/javascript" src="/richtexteditor/rte.js"></script>
<script type="text/javascript" src='/richtexteditor/plugins/all_plugins.js'></script>

<div id="rh_editor">
    <h3>Revision history demo</h3>
    <p>Edit freely, then click the <strong>History</strong> toolbar button. Press <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>H</kbd> to open the browser.</p>
</div>

<button type="button" onclick="takeNamed()" style="margin-top:.5rem; padding:6px 12px; border-radius:999px; background:#0f172a; color:#fff; border:0; cursor:pointer;">
    Take named snapshot
</button>

<script>
    var rhcfg = {
        revisionHistoryEnabled: true,
        revisionHistoryMaxEntries: 50,
        revisionHistoryAutoSnapshotMs: 10000,   // auto-snapshot after 10s idle
        toolbar: "default"
    };
    var rhEditor = new RichTextEditor("#rh_editor", rhcfg);

    function takeNamed() {
        if (rhEditor.revisionHistory) {
            rhEditor.revisionHistory.promptAndSnapshot("Draft sent to legal");
        }
    }
</script>