Nextrek
@ 795
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
// Generated by CoffeeScript 1.9.2 /* @preserve jQuery.PrettyTextDiff 1.0.4 See https://github.com/arnab/jQuery.PrettyTextDiff/ */ (function() { var $; $ = jQuery; $.fn.extend({ prettyTextDiff: function(options) { var dmp, settings; settings = { originalContainer: ".original", changedContainer: ".changed", diffContainer: ".diff", cleanup: true, debug: false }; settings = $.extend(settings, options); $.fn.prettyTextDiff.debug("Options: ", settings, settings); dmp = new diff_match_patch(); return this.each(function() { var changed, diff_as_html, diffs, original; if (settings.originalContent && settings.changedContent) { original = settings.originalContent;//$('<div />').html(settings.originalContent).text(); changed = settings.changedContent;//$('<div />').html(settings.changedContent).text(); } else { original = $(settings.originalContainer, this).text(); changed = $(settings.changedContainer, this).text(); } $.fn.prettyTextDiff.debug("Original text found: ", original, settings); $.fn.prettyTextDiff.debug("Changed text found: ", changed, settings); diffs = dmp.diff_main(original, changed); if (settings.cleanup) { dmp.diff_cleanupSemantic(diffs); } $.fn.prettyTextDiff.debug("Diffs: ", diffs, settings); diff_as_html = $.map(diffs, function(diff) { return $.fn.prettyTextDiff.createHTML(diff); }); var encodedStr = diff_as_html.join(''); //newdom = $("<div/>").html(encodedStr).text(); encodedStr = encodedStr.replace(/\<br\>\<br\>/g, '<br>'); encodedStr = encodedStr.replace(/\/p\><br\>/g, '/p>'); //encodedStr = encodedStr.replace(/[<]/g,'<').replace(/[>]/g,'>'); //var newdom = $("<div/>").html(encodedStr).text(); $(settings.diffContainer, this).html(encodedStr); return this; }); } }); $.fn.prettyTextDiff.debug = function(message, object, settings) { if (settings.debug) { return console.log(message, object); } }; $.fn.prettyTextDiff.createHTML = function(diff) { var data, html, operation, pattern_amp, pattern_gt, pattern_lt, pattern_para, text; html = []; pattern_amp = /&/g; pattern_lt = /</g; pattern_gt = />/g; pattern_para = /\n/g; operation = diff[0], data = diff[1]; //text = data.replace(pattern_amp, '&').replace(pattern_lt, '<').replace(pattern_gt, '>').replace(pattern_para, '<br>'); text = data.replace(pattern_para, '<br>'); switch (operation) { case DIFF_INSERT: return '<ins>' + text + '</ins>'; case DIFF_DELETE: return '<del>' + text + '</del>'; case DIFF_EQUAL: return text; } }; }).call(this); |