diff options
Diffstat (limited to 'src/Filters.js')
| -rw-r--r-- | src/Filters.js | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/Filters.js b/src/Filters.js index 666c9f30..833d5630 100644 --- a/src/Filters.js +++ b/src/Filters.js @@ -293,6 +293,23 @@ foreach({ 'html': function(html){ return new angularFilter.Meta({html:html}); + }, + + 'linky': function(text){ + function regExpEscape(text) { + return text.replace(/([\/\.\*\+\?\|\(\)\[\]\{\}\\])/g, '\\$1'); + } + var URL = /(ftp|http|https):\/\/([^\(\)|\s]+)/gm; + var html = text; + var dups = {}; + foreach(text.match(URL)||[], function(url){ + url = url.replace(/\.$/, ''); + if (!dups[url]) { + html = html.replace(new RegExp(regExpEscape(url), 'gm'), '<a href="'+url+'">'+url+'</a>'); + dups[url] = true; + } + }); + return new angularFilter.Meta({text:text, html:html}); } }, function(v,k){angularFilter[k] = v;}); |
