From 8711a97e34e57bc477d61750444b6f622709ca9b Mon Sep 17 00:00:00 2001 From: pedro-nonfree Date: Fri, 24 Jun 2016 01:29:52 +0200 Subject: [PATCH 1/4] Autolink of URLs for view and discuss tabs --- data/autolink.st | 12 ++++++++++++ data/static/js/autolink.js | 38 ++++++++++++++++++++++++++++++++++++++ data/templates/page.st | 1 + 3 files changed, 51 insertions(+) create mode 100644 data/autolink.st create mode 100644 data/static/js/autolink.js diff --git a/data/autolink.st b/data/autolink.st new file mode 100644 index 000000000..ab1e80f92 --- /dev/null +++ b/data/autolink.st @@ -0,0 +1,12 @@ + + diff --git a/data/static/js/autolink.js b/data/static/js/autolink.js new file mode 100644 index 000000000..14f601535 --- /dev/null +++ b/data/static/js/autolink.js @@ -0,0 +1,38 @@ +// this file comes from: https://raw.githubusercontent.com/bryanwoods/autolink-js/master/autolink.js [MIT license] +// but it is a modified version with a pending pull request: https://github.com/bryanwoods/autolink-js/pull/26 + +// Generated by CoffeeScript 1.7.1 +(function() { + var autoLink, + __slice = [].slice; + + autoLink = function() { + var k, linkAttributes, option, options, pattern, v; + options = 1 <= arguments.length ? __slice.call(arguments, 0) : []; + + pattern = /(^|[\s\S\n]|)((?:https?|ftp):\/\/[\-A-Z0-9+\u0026\u2019@#\/%?=()~_|!:,.;]*[\-A-Z0-9+\u0026@#\/%=~()_|])/gi; + if (!(options.length > 0)) { + return this.replace(pattern, "$1$2"); + } + option = options[0]; + linkAttributes = ((function() { + var _results; + _results = []; + for (k in option) { + v = option[k]; + if (k !== 'callback') { + _results.push(" " + k + "='" + v + "'"); + } + } + return _results; + })()).join(''); + return this.replace(pattern, function(match, space, url) { + var link; + link = (typeof option.callback === "function" ? option.callback(url) : void 0) || ("" + url + ""); + return "" + space + link; + }); + }; + + String.prototype['autoLink'] = autoLink; + +}).call(this); diff --git a/data/templates/page.st b/data/templates/page.st index 3bb382ac9..5cd97eafb 100644 --- a/data/templates/page.st +++ b/data/templates/page.st @@ -43,5 +43,6 @@ $javascripts$ $expire()$ $getuser()$ + $autolink()$ From accdc6011329554900dd966d9d070be28dad92c7 Mon Sep 17 00:00:00 2001 From: pedro-nonfree Date: Fri, 24 Jun 2016 19:17:29 +0200 Subject: [PATCH 2/4] bug fix --- data/static/js/autolink.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/data/static/js/autolink.js b/data/static/js/autolink.js index 14f601535..a9d4d771b 100644 --- a/data/static/js/autolink.js +++ b/data/static/js/autolink.js @@ -1,5 +1,4 @@ // this file comes from: https://raw.githubusercontent.com/bryanwoods/autolink-js/master/autolink.js [MIT license] -// but it is a modified version with a pending pull request: https://github.com/bryanwoods/autolink-js/pull/26 // Generated by CoffeeScript 1.7.1 (function() { @@ -10,7 +9,7 @@ var k, linkAttributes, option, options, pattern, v; options = 1 <= arguments.length ? __slice.call(arguments, 0) : []; - pattern = /(^|[\s\S\n]|)((?:https?|ftp):\/\/[\-A-Z0-9+\u0026\u2019@#\/%?=()~_|!:,.;]*[\-A-Z0-9+\u0026@#\/%=~()_|])/gi; + pattern = /(^|[\s\n]|<[A-Za-z]*\/?>)((?:https?|ftp):\/\/[\-A-Z0-9+\u0026\u2019@#\/%?=()~_|!:,.;]*[\-A-Z0-9+\u0026@#\/%=~()_|])/gi; if (!(options.length > 0)) { return this.replace(pattern, "$1$2"); } From caaeef41e29f5f36a08873172ef7f70ef2629378 Mon Sep 17 00:00:00 2001 From: pedro-nonfree Date: Fri, 24 Jun 2016 19:20:07 +0200 Subject: [PATCH 3/4] update coffescript compilation --- data/static/js/autolink.js | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/data/static/js/autolink.js b/data/static/js/autolink.js index a9d4d771b..986fda157 100644 --- a/data/static/js/autolink.js +++ b/data/static/js/autolink.js @@ -1,33 +1,33 @@ // this file comes from: https://raw.githubusercontent.com/bryanwoods/autolink-js/master/autolink.js [MIT license] -// Generated by CoffeeScript 1.7.1 +// Generated by CoffeeScript 1.10.0 (function() { var autoLink, - __slice = [].slice; + slice = [].slice; autoLink = function() { - var k, linkAttributes, option, options, pattern, v; - options = 1 <= arguments.length ? __slice.call(arguments, 0) : []; - + var callback, k, linkAttributes, option, options, pattern, v; + options = 1 <= arguments.length ? slice.call(arguments, 0) : []; pattern = /(^|[\s\n]|<[A-Za-z]*\/?>)((?:https?|ftp):\/\/[\-A-Z0-9+\u0026\u2019@#\/%?=()~_|!:,.;]*[\-A-Z0-9+\u0026@#\/%=~()_|])/gi; if (!(options.length > 0)) { return this.replace(pattern, "$1$2"); } option = options[0]; + callback = option["callback"]; linkAttributes = ((function() { - var _results; - _results = []; + var results; + results = []; for (k in option) { v = option[k]; if (k !== 'callback') { - _results.push(" " + k + "='" + v + "'"); + results.push(" " + k + "='" + v + "'"); } } - return _results; + return results; })()).join(''); return this.replace(pattern, function(match, space, url) { var link; - link = (typeof option.callback === "function" ? option.callback(url) : void 0) || ("" + url + ""); + link = (typeof callback === "function" ? callback(url) : void 0) || ("" + url + ""); return "" + space + link; }); }; From a8c33cbed7a351dfe0390fc5c2736659fadc60cd Mon Sep 17 00:00:00 2001 From: pedro-nonfree Date: Sun, 26 Jun 2016 04:54:25 +0200 Subject: [PATCH 4/4] fix: use double quotation mark --- data/templates/autolink.st | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 data/templates/autolink.st diff --git a/data/templates/autolink.st b/data/templates/autolink.st new file mode 100644 index 000000000..a77954dd1 --- /dev/null +++ b/data/templates/autolink.st @@ -0,0 +1,12 @@ + +