Brandon Mathis
13 years ago
3 changed files with 80 additions and 1 deletions
@ -0,0 +1,30 @@ |
|||||
|
{% if site.github_user %} |
||||
|
<section> |
||||
|
<h1>Github Repos</h1> |
||||
|
<ul id="gh_repos"> |
||||
|
<li class="loading">Status updating...</li> |
||||
|
</ul> |
||||
|
{% if site.github_show_profile_link %} |
||||
|
<a href="https://github.com/{{site.github_user}}">@{{site.github_user}}</a> on Github |
||||
|
{% endif %} |
||||
|
<script type="text/javascript"> |
||||
|
$.domReady(function(){ |
||||
|
if (!window.jXHR){ |
||||
|
var jxhr = document.createElement('script'); |
||||
|
jxhr.type = 'text/javascript'; |
||||
|
jxhr.src = '{{ root_url}}/javascripts/libs/jXHR.js'; |
||||
|
var s = document.getElementsByTagName('script')[0]; |
||||
|
s.parentNode.insertBefore(jxhr, s); |
||||
|
} |
||||
|
|
||||
|
github.showRepos({ |
||||
|
user: '{{site.github_user}}', |
||||
|
count: {{site.github_repo_count}}, |
||||
|
skip_forks: {{site.github_skip_forks}}, |
||||
|
target: '#gh_repos' |
||||
|
}); |
||||
|
}); |
||||
|
</script> |
||||
|
<script src="{{ root_url }}/javascripts/github.js" type="text/javascript"> </script> |
||||
|
</section> |
||||
|
{% endif %} |
@ -0,0 +1,43 @@ |
|||||
|
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(options){ |
||||
|
var feed = new jXHR(); |
||||
|
feed.onerror = function (msg,url) { |
||||
|
$(options.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 (options.skip_forks && data.repositories[i].fork) |
||||
|
continue; |
||||
|
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; |
||||
|
}); |
||||
|
|
||||
|
if (options.count) |
||||
|
repos.splice(options.count); |
||||
|
|
||||
|
render(options.target, repos) |
||||
|
} |
||||
|
}; |
||||
|
feed.open("GET","http://github.com/api/v2/json/repos/show/"+options.user+"?callback=?"); |
||||
|
feed.send(); |
||||
|
} |
||||
|
}; |
||||
|
})(); |
Loading…
Reference in new issue