(function(global, undefined) { var kafe = global.kafe, $ = kafe.dependencies.jQuery; kafe.bonify({name:'ext.twitter', version:'1.1.1', obj:(function(){
/**
* ### Version 1.1.1
* Extra methods for Twitter.
*
* @module kafe.ext
* @class kafe.ext.twitter
*/
var twitter = {};
/**
* Loads the api javascript used for twitter widgets
*
* @method loadWidgetAPI
*/
twitter.loadWidgetAPI = function() {
(function(d,s,id){
var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';
if(!d.getElementById(id)){
js=d.createElement(s);
js.id=id;
js.src=p+'://platform.twitter.com/widgets.js';
fjs.parentNode.insertBefore(js,fjs);
}
})(document,'script','twitter-wjs');
};
/**
* Outputs tweet with links.
*
* @method linkifyTweet
* @param {String} tweet Plain text tweet
* @param {Object} [options] Options
* @param {String} [options.link] Normal link template
* @param {String} [options.user] User link template
* @param {String} [options.hash] Hash link template
* @return {String} The tweet with links
*
* @example
* kafe.ext.twitter.linkifyTweet('I really dig this #twitter function by @absolunet : http://www.absolunet.com/');
* // returns "I really dig this #<a href="//search.twitter.com/search?q=%23twitter" data-external="true">twitter</a> function by @<a href="//twitter.com/absolunet" data-external="true">absolunet</a> : <a href="http://www.absolunet.com/" data-external="true">http://www.absolunet.com/</a>"
*/
twitter.linkifyTweet = function(tweet,options) {
options = (!!options) ? options : {};
var
$link = (!!options.link) ? $(options.link) : $('<a data-external="true">'),
$user = (!!options.user) ? $(options.user) : $('<a data-external="true">'),
$hash = (!!options.hash) ? $(options.hash) : $('<a data-external="true">'),
_link = function($tmpl,data,link) {
return $('<div>').append( $tmpl.clone().attr('href', link+data).text(data) ).html();
}
;
tweet = tweet.replace(/[a-z]+:\/\/[a-z0-9-_]+\.[a-z0-9-_:~%&#\?\/.=]+[^:\.,\)\s*$]/ig, function (link) {
return _link($link,link,'');
});
tweet = tweet.replace(/(^|[^\w]+)\@([a-zA-Z0-9_]{1,15})/g, function (blank, prev, user) {
return prev + '@' + _link($user,user,'//twitter.com/');
});
tweet = tweet.replace(/(^|[^\w'"]+)\#([a-zA-Z0-9_]+)/g, function (blank, prev, hash) {
return prev + '#' + _link($hash,hash,'//search.twitter.com/search?q=%23');
});
return tweet;
};
return twitter;
})()}); })(typeof window !== 'undefined' ? window : this);