autolink.js
1 // Generated by CoffeeScript 1.7.1 2 (function() { 3 var autoLink, 4 __slice = [].slice; 5 6 autoLink = function() { 7 var k, linkAttributes, option, options, pattern, v; 8 options = 1 <= arguments.length ? __slice.call(arguments, 0) : []; 9 10 pattern = /(^|[\s\n]|<br\/?>)((?:https?|ftp):\/\/[\-A-Z0-9+\u0026\u2019@#\/%?=()~_|!:,.;]*[\-A-Z0-9+\u0026@#\/%=~()_|])/gi; 11 if (!(options.length > 0)) { 12 return this.replace(pattern, "$1<a href='$2'>$2</a>"); 13 } 14 option = options[0]; 15 linkAttributes = ((function() { 16 var _results; 17 _results = []; 18 for (k in option) { 19 v = option[k]; 20 if (k !== 'callback') { 21 _results.push(" " + k + "='" + v + "'"); 22 } 23 } 24 return _results; 25 })()).join(''); 26 return this.replace(pattern, function(match, space, url) { 27 var link; 28 link = (typeof option.callback === "function" ? option.callback(url) : void 0) || ("<a href='" + url + "'" + linkAttributes + ">" + url + "</a>"); 29 return "" + space + link; 30 }); 31 }; 32 33 String.prototype['autoLink'] = autoLink; 34 35 }).call(this);