diff --git a/README.md b/README.md index 7272d78..77cf84a 100644 --- a/README.md +++ b/README.md @@ -24,10 +24,10 @@ This [blog post](http://arnab-deka.com/posts/2013/02/hello-jquery-prettytextdiff explains things in a bit more detail. ## Demo -[jsfiddle demo](http://jsfiddle.net/YwSVY/) +[jsfiddle demo](http://jsfiddle.net/q7hyfev8/504/) ## Download -From the [jQuery plugins site](http://plugins.jquery.com/pretty-text-diff/). +From [npm.js](https://www.npmjs.com/package/jquery-prettytextdiff/). ## Usage #### First, include the libraries @@ -93,6 +93,18 @@ in the [jsfiddle demo](#demo). false see some debug output in your browser's console + + + originalContentv1.0.4+ + None + Pass the original content as a parameter in your JS file, instead of creating an element in your HTML code to extract this content. + + + + changedContentv1.0.4+ + None + Pass the changed content as a parameter in your JS file, instead of creating an element in your HTML code to extract this content. + ## Development @@ -103,14 +115,15 @@ in the [jsfiddle demo](#demo). + `cake build` to produce the output JS (minified) + Increment the version in the coffeescript (and compiled/minified) javascript source and the -jquery-json file. +`package.json` file. + `git tag x.y.z` -+ Push! ++ Push: `git push && git push --tags && npm publish` ## Contributing + Fork this repo + create a feature/bugfix branch: `git checkout -b branch_name` + [Develop](#development) + + Just change the coffeescript source. When your PR is merged, I will generate the JS flavors and update the versioning. + Push to your repo: `git push origin branch_name` + [Submit a PR](https://github.com/arnab/jQuery.PrettyTextDiff/pulls/) diff --git a/jquery.pretty-text-diff.coffee b/jquery.pretty-text-diff.coffee index 800cd93..6108610 100644 --- a/jquery.pretty-text-diff.coffee +++ b/jquery.pretty-text-diff.coffee @@ -1,5 +1,5 @@ ### -@preserve jQuery.PrettyTextDiff 1.0.3 +@preserve jQuery.PrettyTextDiff 1.0.4 See https://github.com/arnab/jQuery.PrettyTextDiff/ ### @@ -19,9 +19,14 @@ $.fn.extend dmp = new diff_match_patch(); @each -> - original = $(settings.originalContainer, this).text() + 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 - changed = $(settings.changedContainer, this).text() $.fn.prettyTextDiff.debug "Changed text found: ", changed, settings diffs = dmp.diff_main(original, changed) diff --git a/jquery.pretty-text-diff.js b/jquery.pretty-text-diff.js index 1e8fec7..8c4d624 100644 --- a/jquery.pretty-text-diff.js +++ b/jquery.pretty-text-diff.js @@ -1,9 +1,9 @@ -// Generated by CoffeeScript 1.6.3 +// Generated by CoffeeScript 1.9.2 + /* -@preserve jQuery.PrettyTextDiff 1.0.3 +@preserve jQuery.PrettyTextDiff 1.0.4 See https://github.com/arnab/jQuery.PrettyTextDiff/ -*/ - + */ (function() { var $; @@ -25,9 +25,14 @@ See https://github.com/arnab/jQuery.PrettyTextDiff/ dmp = new diff_match_patch(); return this.each(function() { var changed, diff_as_html, diffs, original; - original = $(settings.originalContainer, this).text(); + 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); - changed = $(settings.changedContainer, this).text(); $.fn.prettyTextDiff.debug("Changed text found: ", changed, settings); diffs = dmp.diff_main(original, changed); if (settings.cleanup) { diff --git a/jquery.pretty-text-diff.min.js b/jquery.pretty-text-diff.min.js index 25e1691..9a09975 100644 --- a/jquery.pretty-text-diff.min.js +++ b/jquery.pretty-text-diff.min.js @@ -1,5 +1,5 @@ /* -@preserve jQuery.PrettyTextDiff 1.0.3 +@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;original=$(settings.originalContainer,this).text();$.fn.prettyTextDiff.debug("Original text found: ",original,settings);changed=$(settings.changedContainer,this).text();$.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 + */ +(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 diff --git a/package.json b/package.json new file mode 100644 index 0000000..160436a --- /dev/null +++ b/package.json @@ -0,0 +1,27 @@ +{ + "name": "jquery-prettytextdiff", + "version": "1.0.4", + "description": "A jQuery plugin to diff text painlessly. Uses Google's diff_match_patch library underneath.", + "main": "jquery.pretty-text-diff.js", + "repository": { + "type": "git", + "url": "git+https://github.com/arnab/jQuery.PrettyTextDiff.git" + }, + "keywords": [ + "jquery-plugins", + "ecosystem:jquery", + "text", + "diff", + "compare", + "visualize" + ], + "author": "Arnab Deka", + "license": "MIT", + "bugs": { + "url": "https://github.com/arnab/jQuery.PrettyTextDiff/issues" + }, + "homepage": "https://github.com/arnab/jQuery.PrettyTextDiff#readme", + "dependencies" : { + "jquery": ">=1.4" + } +} diff --git a/pretty-text-diff.jquery.json b/pretty-text-diff.jquery.json deleted file mode 100644 index b7a5913..0000000 --- a/pretty-text-diff.jquery.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "pretty-text-diff", - "version": "1.0.3", - "title": "jQuery.PrettyTextDiff", - "description": "A jQuery plugin to show diff between text. Uses Google's diff_match_patch library underneath.", - "keywords": [ - "jquery", - "plugin", - "diff", - "text", - "html", - "compare", - "visualize" - ], - "homepage": "https://github.com/arnab/jQuery.PrettyTextDiff", - "author": { - "name": "Arnab Deka", - "url": "http://arnab-deka.com" - }, - "docs": "https://github.com/arnab/jQuery.PrettyTextDiff/blob/master/README.md#usage", - "demo": "http://jsfiddle.net/arnab/YwSVY/", - "bugs": "https://github.com/arnab/jQuery.PrettyTextDiff/issues", - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/arnab/jQuery.PrettyTextDiff/blob/master/LICENSE" - } - ], - "dependencies": { - "jquery": ">=1.4", - "diff_match_patch": "*" - } -}