forked from bryanwoods/autolink-js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathautolink.js
34 lines (31 loc) · 1.06 KB
/
autolink.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// Generated by CoffeeScript 1.6.3
(function() {
var autoLink,
__slice = [].slice;
autoLink = function() {
var k, linkAttributes, option, options, pattern, v;
options = 1 <= arguments.length ? __slice.call(arguments, 0) : [];
pattern = /(^|\s)((?:https?|ftp):\/\/[\-A-Z0-9+\u0026@#\/%?=()~_|!:,.;]*[\-A-Z0-9+\u0026@#\/%=~()_|])/gi;
if (!(options.length > 0)) {
return this.replace(pattern, "$1<a href='$2'>$2</a>");
}
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) || ("<a href='" + url + "'" + linkAttributes + ">" + url + "</a>");
return "" + space + link;
});
};
String.prototype['autoLink'] = autoLink;
}).call(this);