mirror of
https://github.com/moparisthebest/www.moparscape.org
synced 2024-11-16 06:15:13 -05:00
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
This commit is contained in:
parent
140198b87a
commit
f955919348
21
.themes/classic/source/_includes/asides/github.html
Normal file
21
.themes/classic/source/_includes/asides/github.html
Normal file
@ -0,0 +1,21 @@
|
||||
{% if site.github_user %}
|
||||
<section>
|
||||
<h1>Github Repos</h1>
|
||||
<ul id="gh_repos">
|
||||
<li class="loading">Status updating...</li>
|
||||
</ul>
|
||||
<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('{{site.github_user}}', '#gh_repos');
|
||||
});
|
||||
</script>
|
||||
<script src="{{ root_url }}/javascripts/github.js" type="text/javascript"> </script>
|
||||
</section>
|
||||
{% endif %}
|
38
.themes/classic/source/javascripts/github.js
Normal file
38
.themes/classic/source/javascripts/github.js
Normal file
@ -0,0 +1,38 @@
|
||||
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();
|
||||
}
|
||||
};
|
||||
})();
|
@ -55,6 +55,9 @@ twitter_follow_button: true
|
||||
twitter_show_follower_count: false
|
||||
twitter_tweet_button: true
|
||||
|
||||
# github repositories
|
||||
github_user:
|
||||
|
||||
# Google Plus
|
||||
google_plus_one: true
|
||||
google_plus_one_size: medium
|
||||
|
Loading…
Reference in New Issue
Block a user