Merge pull request #1279 from txdv/entire-words-as-links
convert entire words as urls or do nothing
This commit is contained in:
commit
f39fe804b1
|
@ -68,20 +68,30 @@ weechat.filter('conditionalLinkify', ['$filter', function($filter) {
|
||||||
return text;
|
return text;
|
||||||
}
|
}
|
||||||
|
|
||||||
return linkifyStr(text, {
|
|
||||||
className: '',
|
return text.replaceAll(/\S+/g, function (match, p2) {
|
||||||
attributes: {
|
const result = linkifyStr(match, {
|
||||||
rel: 'noopener noreferrer'
|
className: '',
|
||||||
},
|
attributes: {
|
||||||
target: {
|
rel: 'noopener noreferrer'
|
||||||
url: '_blank'
|
},
|
||||||
},
|
target: {
|
||||||
validate: {
|
url: '_blank'
|
||||||
email: function () {
|
},
|
||||||
return false; //Do not linkify emails
|
validate: {
|
||||||
|
email: function () {
|
||||||
|
return false; //Do not linkify emails
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (result.endsWith("</a>")) {
|
||||||
|
return result;
|
||||||
|
} else {
|
||||||
|
return match
|
||||||
}
|
}
|
||||||
});
|
|
||||||
|
});
|
||||||
};
|
};
|
||||||
}]);
|
}]);
|
||||||
|
|
||||||
|
|
|
@ -21,15 +21,30 @@ describe('Filters', function() {
|
||||||
var url = 'asdf https://a.example.com/wiki/asdf_qwer_(rivi%C3%A8re) Some text.',
|
var url = 'asdf https://a.example.com/wiki/asdf_qwer_(rivi%C3%A8re) Some text.',
|
||||||
link = 'asdf <a href="https://a.example.com/wiki/asdf_qwer_(rivi%C3%A8re)" target="_blank" rel="noopener noreferrer">https://a.example.com/wiki/asdf_qwer_(rivi%C3%A8re)</a> Some text.',
|
link = 'asdf <a href="https://a.example.com/wiki/asdf_qwer_(rivi%C3%A8re)" target="_blank" rel="noopener noreferrer">https://a.example.com/wiki/asdf_qwer_(rivi%C3%A8re)</a> Some text.',
|
||||||
result = $filter('conditionalLinkify')(url);
|
result = $filter('conditionalLinkify')(url);
|
||||||
expect(result).toEqual(link);
|
expect(result).toEqual(link);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
it('should not make emails into links', angular.mock.inject(function($filter) {
|
it('should not make emails into links', angular.mock.inject(function($filter) {
|
||||||
var url = 'asdf@gmail.com',
|
var url = 'asdf@gmail.com',
|
||||||
link = 'asdf@gmail.com',
|
link = 'asdf@gmail.com',
|
||||||
result = $filter('conditionalLinkify')(url);
|
result = $filter('conditionalLinkify')(url);
|
||||||
expect(result).toEqual(link);
|
expect(result).toEqual(link);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
it('convert the entire words to links', angular.mock.inject(function($filter) {
|
||||||
|
var text = 'weechat.network.connection_timeout',
|
||||||
|
link = 'weechat.network.connection_timeout',
|
||||||
|
result = $filter('conditionalLinkify')(text);
|
||||||
|
expect(result).toEqual(link);
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('linkify parenthesis at the end of an url', angular.mock.inject(function($filter) {
|
||||||
|
var text = 'http://test.com/(test)',
|
||||||
|
link = '<a href="http://test.com/(test)" target="_blank" rel="noopener noreferrer">http://test.com/(test)</a>',
|
||||||
|
result = $filter('conditionalLinkify')(text);
|
||||||
|
expect(result).toEqual(link);
|
||||||
|
}));
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('irclinky', function() {
|
describe('irclinky', function() {
|
||||||
|
@ -153,6 +168,6 @@ describe('Filters', function() {
|
||||||
expect(codifyFilter('Weird`ness`')).toEqual('Weird`ness`');
|
expect(codifyFilter('Weird`ness`')).toEqual('Weird`ness`');
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue