diff --git a/_config.yml b/_config.yml index 0be0c2d8..ab2918e5 100644 --- a/_config.yml +++ b/_config.yml @@ -38,3 +38,8 @@ kramdown: coderay_tab_width: 4 coderay_bold_every: 10 coderay_css: style + +aliases: + s_nakamoto: Satoshi Nakamoto + --author=Satoshi Nakamoto: Satoshi Nakamoto + gavinandresen: Gavin Andresen diff --git a/_plugins/contributors.rb b/_plugins/contributors.rb new file mode 100644 index 00000000..9b3e51c3 --- /dev/null +++ b/_plugins/contributors.rb @@ -0,0 +1,55 @@ +require 'open-uri' +require 'json' +require 'aquarium' +require 'yaml' + +module Jekyll + + class CategoryGenerator < Generator + def fetch_contributors + contributors = JSON.parse(open("http://github.com/api/v2/json/repos/show/bitcoin/bitcoin/contributors/anon").read)["contributors"] + + contributors.map do |x| + x['name'] = x['login'] unless x.has_key?('name') + x['name'] = x['login'] if x['name'] == "" + + x + end + end + + def merge_contributors(contributors, aliases) + contributors = contributors.map do |c| + c['name'] = aliases[c['name']] if aliases.has_key?(c['name']) + + c + end + + hoaoh = contributors.reduce({}) do |result, item| + result.merge({ item['name'] => [item] }) { |key, old, new| old[0]['contributions'] += new[0]['contributions']; old } + end + + hoaoh.values.map { |sublist| + sublist.reduce({}) do |merged,h| + merged.merge(h) do |key,old,new| (key=='name' ? old : old+new) end + end + }.flatten + end + + def generate(site) + @contributors = merge_contributors(fetch_contributors(), site.config['aliases']).sort_by{|c| - c['contributions']} + @primary_devs = JSON.parse(open("http://github.com/api/v2/json/repos/show/bitcoin/bitcoin/collaborators").read)["collaborators"] + + Aquarium::Aspects::Aspect.new :around, :invoking => :site_payload, :on_type => Site do |execution_point, site, *args| + result = execution_point.proceed + result['site']['project'] = { + "primary_devs" => @primary_devs, + "contributors" => @contributors + } + result + end + + end + + end + +end diff --git a/index.html b/index.html index d54d5a63..7f2301ff 100644 --- a/index.html +++ b/index.html @@ -14,6 +14,7 @@ ALERT:
{{ c.name }} ({{ c.contributions }}) | + {% cycle nil, nil, nil, nil, '