Skip to content

Instantly share code, notes, and snippets.

@eccentricyan
Forked from rishabhmhjn/tweetLinky.js
Created February 13, 2017 06:14
Show Gist options
  • Save eccentricyan/c53c19416dd0a31a6243957aaca90e0a to your computer and use it in GitHub Desktop.
Save eccentricyan/c53c19416dd0a31a6243957aaca90e0a to your computer and use it in GitHub Desktop.
This is an AngularJS filter to linkify #hashtags and @mention texts into respective Twitter URLsDemo - http://plnkr.co/edit/vrdgxU?p=preview
var app = angular.module('tLinky', ['ngSanitize']);
app.filter('tweetLinky',['$filter', '$sce',
function($filter, $sce) {
return function(text, target) {
if (!text) return text;
var replacedText = $filter('linky')(text, target);
var targetAttr = "";
if (angular.isDefined(target)) {
targetAttr = ' target="' + target + '"';
}
// replace #hashtags
var replacePattern1 = /(^|\s)#(\w*[a-zA-Z_]+\w*)/gim;
replacedText = replacedText.replace(replacePattern1, '$1<a href="https://twitter.com/search?q=%23$2"' + targetAttr + '>#$2</a>');
// replace @mentions
var replacePattern2 = /(^|\s)\@(\w*[a-zA-Z_]+\w*)/gim;
replacedText = replacedText.replace(replacePattern2, '$1<a href="https://twitter.com/$2"' + targetAttr + '>@$2</a>');
$sce.trustAsHtml(replacedText);
return replacedText;
};
}
]);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment