/ lib / autolink / autolink.js
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);