parent
b89a17032d
commit
565ee16990
1 changed files with 6 additions and 6 deletions
|
@ -23,12 +23,12 @@ weechat.filter('irclinky', ['$filter', function($filter) {
|
|||
|
||||
var linkiedText = $filter('linky')(text, target);
|
||||
|
||||
// This regex in no way matches all IRC channel names (they could begin with a +, an &, or an exclamation
|
||||
// mark followed by 5 alphanumeric characters, and are bounded in length by 50).
|
||||
// However, it matches all *common* IRC channels while trying to minimise false positives. "#1" is much
|
||||
// more likely to be "number 1" than "IRC channel #1".
|
||||
// Thus, we only match channels beginning with a # and having at least one letter in them.
|
||||
var channelRegex = /(^|[\s,.:;?!"'()+@-])(#+[a-z0-9-_]*[a-z][a-z0-9-_]*)/gmi;
|
||||
// This regex in no way matches all IRC channel names (they could also begin with a + or an
|
||||
// exclamation mark followed by 5 alphanumeric characters, and are bounded in length by 50).
|
||||
// However, it matches all *common* IRC channels while trying to minimise false positives.
|
||||
// "#1" is much more likely to be "number 1" than "IRC channel #1".
|
||||
// Thus, we only match channels beginning with a # or & and having at least one letter in them.
|
||||
var channelRegex = /(^|[\s,.:;?!"'()+@-])((&|#+)[^\x00\x07\r\n\s,:]*[a-z][^\x00\x07\r\n\s,:]*)/gmi;
|
||||
// This is SUPER nasty, but ng-click does not work inside a filter, as the markup has to be $compiled first, which is not possible in filter afaik.
|
||||
// Therefore, get the scope, fire the method, and $apply. Yuck. I sincerely hope someone finds a better way of doing this.
|
||||
linkiedText = linkiedText.replace(channelRegex, '$1<a href="#" onclick="var $scope = angular.element(event.target).scope(); $scope.openBuffer(\'$2\'); $scope.$apply();">$2</a>');
|
||||
|
|
Loading…
Reference in a new issue