diff options
author | Egil Moeller <egil.moller@freecode.no> | 2010-03-12 21:31:50 +0100 |
---|---|---|
committer | Egil Moeller <egil.moller@freecode.no> | 2010-03-12 21:31:50 +0100 |
commit | e59ca3a22a5be5dea265e58b67f93973b60f7ed9 (patch) | |
tree | 202ef5d7060f50f95a4bb32dfa24f1e8df075077 /trunk/infrastructure/ace/www/linestylefilter.js | |
parent | faae6d36cc92aae7c040146edb8471fa8e8c6a75 (diff) | |
download | etherpad-e59ca3a22a5be5dea265e58b67f93973b60f7ed9.tar.gz etherpad-e59ca3a22a5be5dea265e58b67f93973b60f7ed9.tar.xz etherpad-e59ca3a22a5be5dea265e58b67f93973b60f7ed9.zip |
Cleaned up the taglinking code a bit
Diffstat (limited to 'trunk/infrastructure/ace/www/linestylefilter.js')
-rw-r--r-- | trunk/infrastructure/ace/www/linestylefilter.js | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/trunk/infrastructure/ace/www/linestylefilter.js b/trunk/infrastructure/ace/www/linestylefilter.js index 8c7c396..f0f1343 100644 --- a/trunk/infrastructure/ace/www/linestylefilter.js +++ b/trunk/infrastructure/ace/www/linestylefilter.js @@ -275,6 +275,19 @@ linestylefilter.textAndClassFuncSplitter = function(func, splitPointsOpt) { return spanHandler; }; +linestylefilter.getFilterStack = function(lineText, textAndClassFunc, browser) { + var func = linestylefilter.getURLFilter(lineText, textAndClassFunc); + func = linestylefilter.getPadTagFilter(lineText, func); + if (browser !== undefined && browser.msie) { + // IE7+ will take an e-mail address like <foo@bar.com> and linkify it to foo@bar.com. + // We then normalize it back to text with no angle brackets. It's weird. So always + // break spans at an "at" sign. + func = linestylefilter.getAtSignSplitterFilter( + lineText, func); + } + return func; +}; + // domLineObj is like that returned by domline.createDomLine linestylefilter.populateDomLine = function(textLine, aline, apool, domLineObj) { @@ -288,9 +301,7 @@ linestylefilter.populateDomLine = function(textLine, aline, apool, domLineObj.appendSpan(tokenText, tokenClass); } - var func = textAndClassFunc; - func = linestylefilter.getURLFilter(text, func); - func = linestylefilter.getPadTagFilter(text, func); + var func = linestylefilter.getFilterStack(text, textAndClassFunc); func = linestylefilter.getLineStyleFilter(text.length, aline, func, apool); func(text, ''); |