Skip to content

Commit

Permalink
Merge pull request #296 from 18F/team-members-api
Browse files Browse the repository at this point in the history
Exposes _data/team.yml as publicly accessible JSON
  • Loading branch information
meiqimichelle committed Oct 16, 2014
2 parents 57b8e87 + e63b1f8 commit 3e91e7a
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 0 deletions.
31 changes: 31 additions & 0 deletions _plugins/generate_data_api.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
module Jekyll

class JSONFile < Jekyll::StaticFile
def initialize(site, base, dir, name)
@site = site
@base = base
@dir = dir
@name = name
end
end
class APIGenerator < Generator
safe true

def generate(site)
dir = '/api' || site.config['api_dir']
Dir.mkdir(site.dest+dir) if !Dir.exists?(site.dest+dir)
Dir.mkdir(site.dest+dir+'/data') if !Dir.exists?(site.dest+dir+'/data')
dir = dir+'/data/'
site.data.keys.each do |datum|
write_data_api(site, dir, datum)
new_static = JSONFile.new(site, site.dest, '/api/data/', datum+'.json')
site.keep_files << 'api/data/'+datum+'.json'
end
end

def write_data_api(site, dir, datum)
data_set = site.data[datum]
File.open(site.dest+dir+datum+'.json', 'w') { |file| file.write(data_set.to_json)}
end
end
end
4 changes: 4 additions & 0 deletions pages/api/team.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
permalink: /api/team/
---
{{ site.data.team | jsonify }}

0 comments on commit 3e91e7a

Please sign in to comment.