aboutsummaryrefslogtreecommitdiffstats
path: root/src/Filters.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/Filters.js')
-rw-r--r--src/Filters.js17
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;});