blog/.themes/classic/source/javascripts/github.js
Philip Hofstetter f955919348 add github repositories sidebar plugin
if you specify

github_user:

in you _config.yml and once you add asides/github.html to your sidebar
items, this plugin will fetch the specified users github repositories
and order them so the last pushed ones are shown first. Then it'll list
them in the side-bar, including a link and the repository description

The plugin will only list your own repositories, not forks, though this
might need to be configurable later
2011-08-04 21:01:24 +02:00

38 lines
1.4 KiB
JavaScript

github = (function(){
function render(target, repos){
var i = 0, fragment = '', t = $(target)[0];
for(i = 0; i < repos.length; i++)
fragment += '<li><a href="'+repos[i].url+'">'+repos[i].name+'</a><p>'+repos[i].description+'</p></li>';
t.innerHTML = fragment;
}
return {
showRepos: function(user, target){
var feed = new jXHR();
feed.onerror = function (msg,url) {
$(target + ' li.loading').addClass('error').text("Error loading feed");
}
feed.onreadystatechange = function(data){
if (feed.readyState === 4) {
var repos = [];
var i;
for (i = 0; i < data.repositories.length; i++){
if (!data.repositories[i].fork)
repos.push(data.repositories[i]);
}
repos.sort(function(a, b){
var a = new Date(a.pushed_at),
b = new Date(b.pushed_at);
if (a.valueOf() == b.valueOf()) return 0;
return a.valueOf() > b.valueOf() ? -1 : 1;
})
render(target, repos)
}
};
feed.open("GET","http://github.com/api/v2/json/repos/show/"+user+"?callback=?");
feed.send();
}
};
})();