User:Polygnotus/Scripts/DiffCompare.js

This is an old revision of this page, as edited by Polygnotus (talk | contribs) at 21:48, 8 September 2024. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
$.ajax('https://raw.githubusercontent.com/google/diff-match-patch/master/javascript/diff_match_patch.js', {
    dataType: 'script',
    cache: true
}).then(function () {

    function showDiff(text1, text2) {
        const dmp = new diff_match_patch();
        const diffs = dmp.diff_main(text1, text2);
        dmp.diff_cleanupSemantic(diffs);

        let html = '';
        for (let i = 0; i < diffs.length; i++) {
            const [op, data] = diffs[i];
            switch (op) {
                case DIFF_INSERT:
                    html += '<ins style="background-color: #e6ffe6;">' + data + '</ins>';
                    break;
                case DIFF_DELETE:
                    html += '<del style="background-color: #ffe6e6;">' + data + '</del>';
                    break;
                case DIFF_EQUAL:
                    html += '<span>' + data + '</span>';
                    break;
            }
        }
        return html;
    }

    const oldText = "The quick brown fox jumps over the lazy dog.";
    const newText = "The fast brown fox leaps over the lazy cat.";

    const diffHtml = showDiff(oldText, newText);
    
    // You can use the diffHtml as needed, for example:
    // $('#diff-output').html(diffHtml);
    
    console.log('Diff result:', diffHtml);


});