diff --git a/.themes/classic/source/_includes/asides/github.html b/.themes/classic/source/_includes/asides/github.html new file mode 100644 index 0000000..935ccff --- /dev/null +++ b/.themes/classic/source/_includes/asides/github.html @@ -0,0 +1,30 @@ +{% if site.github_user %} +
+

Github Repos

+ + {% if site.github_show_profile_link %} + @{{site.github_user}} on Github + {% endif %} + + +
+{% endif %} diff --git a/.themes/classic/source/javascripts/github.js b/.themes/classic/source/javascripts/github.js new file mode 100644 index 0000000..623d493 --- /dev/null +++ b/.themes/classic/source/javascripts/github.js @@ -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 += '
  • '+repos[i].name+'

    '+repos[i].description+'

  • '; + + 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(); + } + }; +})(); \ No newline at end of file diff --git a/_config.yml b/_config.yml index 00dc8aa..6d472bf 100644 --- a/_config.yml +++ b/_config.yml @@ -36,7 +36,7 @@ excerpt_link: "Read on →" # "Continue reading" link text at the bottom of # list each of the sidebar modules you want to include, in the order you want them to appear. # To add custom asides, create files in /source/_includes/custom/asides/ and add them to the list like 'custom/asides/custom_aside_name.html' -default_asides: [asides/recent_posts.html, asides/twitter.html, asides/delicious.html, asides/pinboard.html] +default_asides: [asides/recent_posts.html, asides/github.html, asides/twitter.html, asides/delicious.html, asides/pinboard.html] # Each layout uses the default asides, but they can have their own asides instead. Simply uncomment the lines below # and add an array with the asides you want to use. @@ -48,6 +48,12 @@ default_asides: [asides/recent_posts.html, asides/twitter.html, asides/delicious # 3rd Party Settings # # ----------------------- # +# Github repositories +github_user: +github_repo_count: 0 +github_show_profile_link: true +github_skip_forks: true + # Twitter twitter_user: twitter_tweet_count: 4