Check if the hashtag is a link in function .hashtagify

This commit is contained in:
Hincu Petru 2014-03-13 21:39:12 +00:00
parent a51c4f0ddc
commit 7c4d783d51
2 changed files with 17 additions and 5 deletions

View file

@ -108,11 +108,16 @@ $(function() {
}; };
textFormatter.hashtagify = function hashtagify(text){ textFormatter.hashtagify = function hashtagify(text){
var utf8WordCharcters =/(\s|^|>)#([\u0080-\uFFFF|\w|-]+|<3)/g var utf8WordCharcters =/(\s|^|>)#([\u0080-\uFFFF|\w|-]+|<3)/g;
return text.replace(utf8WordCharcters, function(hashtag, preceeder, tagText) { var linkRegex = /<a[^>]*>(.*?)<\/a>/g;
return preceeder + "<a href='/tags/" + tagText.toLowerCase() +
"' class='tag'>#" + tagText + "</a>" if(text.match(linkRegex))
}) return text;
else
return text.replace(utf8WordCharcters, function(hashtag, preceeder, tagText) {
return preceeder + "<a href='/tags/" + tagText.toLowerCase() +
"' class='tag'>#" + tagText + "</a>"
});
}; };
textFormatter.mentionify = function mentionify(text, mentions) { textFormatter.mentionify = function mentionify(text, mentions) {

View file

@ -238,6 +238,13 @@ describe("app.helpers.textFormatter", function(){
expect(formattedText).toContain("/tags/parties") expect(formattedText).toContain("/tags/parties")
}) })
it("doesn't create tag if the text is a link", function(){
var link = $('<a/>', { href: 'http://me.co' }).html('#me')[0].outerHTML;
var result = this.formatter.hashtagify(link);
expect(result).toEqual(link);
})
}) })
}) })