diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..600d2d3
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+.vscode
\ No newline at end of file
diff --git a/Cakefile b/Cakefile
deleted file mode 100644
index 3f20c50..0000000
--- a/Cakefile
+++ /dev/null
@@ -1,18 +0,0 @@
-{exec} = require 'child_process'
-
-srcFile = 'jquery.pretty-text-diff'
-
-task 'compile', 'Build project from *.coffee to *.js', ->
- exec "coffee --compile #{srcFile}.coffee", (err, stdout, stderr) ->
- throw err if err
- console.log stdout + stderr
-
-task 'minify', 'Minify js into min.js', ->
- exec "uglifyjs #{srcFile}.js --o #{srcFile}.min.js --comments", (err, stdout, stderr) ->
- throw err if err
- console.log stdout + stderr
-
-task 'build', 'compile and minify', ->
- exec "cake compile && cake minify", (err, stdout, stderr) ->
- throw err if err
- console.log stdout + stderr
diff --git a/jquery.pretty-text-diff.coffee b/jquery.pretty-text-diff.coffee
deleted file mode 100644
index 6108610..0000000
--- a/jquery.pretty-text-diff.coffee
+++ /dev/null
@@ -1,61 +0,0 @@
-###
-@preserve jQuery.PrettyTextDiff 1.0.4
-See https://github.com/arnab/jQuery.PrettyTextDiff/
-###
-
-$ = jQuery
-
-$.fn.extend
- prettyTextDiff: (options) ->
- # Defaults
- 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();
- @each ->
- if settings.originalContent and settings.changedContent
- original = $('
').html(settings.originalContent).text()
- changed = $('').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)
-
- dmp.diff_cleanupSemantic(diffs) if settings.cleanup
- $.fn.prettyTextDiff.debug "Diffs: ", diffs, settings
-
- diff_as_html = $.map(diffs, (diff) ->
- $.fn.prettyTextDiff.createHTML(diff))
- $(settings.diffContainer, this).html(diff_as_html.join(''));
-
- @
-
-$.fn.prettyTextDiff.debug = (message, object, settings) ->
- console.log(message, object) if settings.debug
-
-$.fn.prettyTextDiff.createHTML = (diff) ->
- html = [];
- pattern_amp = /&/g
- pattern_lt = //g
- pattern_para = /\n/g
-
- [operation, data] = diff
- text = data.replace(pattern_amp, '&') \
- .replace(pattern_lt, '<') \
- .replace(pattern_gt, '>') \
- .replace(pattern_para, '
')
- switch operation
- when DIFF_INSERT then '' + text + ''
- when DIFF_DELETE then '' + text + ''
- when DIFF_EQUAL then '' + text + ''
diff --git a/jquery.pretty-text-diff.js b/jquery.pretty-text-diff.js
index 8c4d624..78c5c8c 100644
--- a/jquery.pretty-text-diff.js
+++ b/jquery.pretty-text-diff.js
@@ -1,12 +1,12 @@
-// Generated by CoffeeScript 1.9.2
/*
-@preserve jQuery.PrettyTextDiff 1.0.4
-See https://github.com/arnab/jQuery.PrettyTextDiff/
- */
+@preserve jQuery.PrettyTextDiff 2.0.0
+Project forked https://github.com/arnab/jQuery.PrettyTextDiff/
+*/
(function() {
- var $;
+ var $,
+ settings_global;
$ = jQuery;
@@ -18,19 +18,24 @@ See https://github.com/arnab/jQuery.PrettyTextDiff/
changedContainer: ".changed",
diffContainer: ".diff",
cleanup: true,
+ isHtml: false,
debug: false
};
settings = $.extend(settings, options);
+ settings_global = settings;
$.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 = $('').html(settings.originalContent).text();
- changed = $('').html(settings.changedContent).text();
+ original = settings.isHtml ? settings.originalContent : $('').html(settings.originalContent).text();
+ changed = settings.isHtml ? settings.changedContent :$('').html(settings.changedContent).text();
} else {
- original = $(settings.originalContainer, this).text();
- changed = $(settings.changedContainer, this).text();
+ var $originalContainer = $(settings.originalContainer, this);
+ var $changedContainer = $(settings.changedContainer, this);
+
+ original = settings.isHtml ? $originalContainer.html() : $originalContainer.text();
+ changed = settings.isHtml ? $changedContainer.html() : $changedContainer.text();
}
$.fn.prettyTextDiff.debug("Original text found: ", original, settings);
$.fn.prettyTextDiff.debug("Changed text found: ", changed, settings);
@@ -42,6 +47,7 @@ See https://github.com/arnab/jQuery.PrettyTextDiff/
diff_as_html = $.map(diffs, function(diff) {
return $.fn.prettyTextDiff.createHTML(diff);
});
+
$(settings.diffContainer, this).html(diff_as_html.join(''));
return this;
});
@@ -62,7 +68,7 @@ See https://github.com/arnab/jQuery.PrettyTextDiff/
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, '
');
+ text = settings_global.isHtml ? data : data.replace(pattern_amp, '&').replace(pattern_lt, '<').replace(pattern_gt, '>').replace(pattern_para, '
');
switch (operation) {
case DIFF_INSERT:
return '' + text + '';
diff --git a/jquery.pretty-text-diff.min.js b/jquery.pretty-text-diff.min.js
index 9a09975..afd166e 100644
--- a/jquery.pretty-text-diff.min.js
+++ b/jquery.pretty-text-diff.min.js
@@ -1,5 +1,5 @@
/*
-@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=$("").html(settings.originalContent).text();changed=$("").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)});$(settings.diffContainer,this).html(diff_as_html.join(""));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_para=/\n/g;operation=diff[0],data=diff[1];text=data.replace(pattern_amp,"&").replace(pattern_lt,"<").replace(pattern_gt,">").replace(pattern_para,"
");switch(operation){case DIFF_INSERT:return""+text+"";case DIFF_DELETE:return""+text+"";case DIFF_EQUAL:return""+text+""}}}).call(this);
\ No newline at end of file
+@preserve jQuery.PrettyTextDiff 2.0.0
+Forked by https://github.com/arnab/jQuery.PrettyTextDiff/
+*/
+(function(){var t,e;t=jQuery,t.fn.extend({prettyTextDiff:function(n){var i,r;return r={originalContainer:".original",changedContainer:".changed",diffContainer:".diff",cleanup:!0,isHtml:!1,debug:!1},r=t.extend(r,n),e=r,t.fn.prettyTextDiff.debug("Options: ",r,r),i=new diff_match_patch,this.each(function(){var e,n,a,f;if(r.originalContent&&r.changedContent)f=r.isHtml?r.originalContent:t("").html(r.originalContent).text(),e=r.isHtml?r.changedContent:t("").html(r.changedContent).text();else{var l=t(r.originalContainer,this),o=t(r.changedContainer,this);f=r.isHtml?l.html():l.text(),e=r.isHtml?o.html():o.text()}return t.fn.prettyTextDiff.debug("Original text found: ",f,r),t.fn.prettyTextDiff.debug("Changed text found: ",e,r),a=i.diff_main(f,e),r.cleanup&&i.diff_cleanupSemantic(a),t.fn.prettyTextDiff.debug("Diffs: ",a,r),n=t.map(a,function(e){return t.fn.prettyTextDiff.createHTML(e)}),t(r.diffContainer,this).html(n.join("")),this})}}),t.fn.prettyTextDiff.debug=function(t,e,n){return n.debug?console.log(t,e):void 0},t.fn.prettyTextDiff.createHTML=function(t){var n,i,r,a,f,l,o,c;switch(i=[],a=/&/g,l=//g,o=/\n/g,r=t[0],n=t[1],c=e.isHtml?n:n.replace(a,"&").replace(l,"<").replace(f,">").replace(o,"
"),r){case DIFF_INSERT:return""+c+"";case DIFF_DELETE:return""+c+"";case DIFF_EQUAL:return""+c+""}}}).call(this);
\ No newline at end of file
diff --git a/package.json b/package.json
index 160436a..8e5161d 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "jquery-prettytextdiff",
- "version": "1.0.4",
+ "version": "2.0.0",
"description": "A jQuery plugin to diff text painlessly. Uses Google's diff_match_patch library underneath.",
"main": "jquery.pretty-text-diff.js",
"repository": {