class Jekyll::GenerateJSON

Attributes

site[R]

Public Instance Methods

dest_dir() click to toggle source
# File lib/jekyll_react/json-generator.rb, line 56
def dest_dir
  File.join('api', 'v1')
end
generate(site) click to toggle source
# File lib/jekyll_react/json-generator.rb, line 21
def generate(site)
  @site = site
  config = site.config['react']
  config_json = config.to_json
  new_page('config.json', config_json, self.dest_dir)
  parse_pages
  parse_data
end
new_page(name, data, dir) click to toggle source
# File lib/jekyll_react/json-generator.rb, line 50
def new_page(name, data, dir)
  page = PageWithoutAFile.new(@site, File.dirname(__FILE__), dir, name.to_s)
  page.content = data
  @site.pages << page
end
parse_data() click to toggle source
# File lib/jekyll_react/json-generator.rb, line 44
def parse_data
  @site.data.each do |site_file|
    new_page("#{site_file[0]}.json", site_file.to_json, self.dest_dir)
  end
end
parse_pages() click to toggle source
# File lib/jekyll_react/json-generator.rb, line 30
def parse_pages
  @site.pages.each do |page|
    if page.data['render'] && page.data['render'] == 'dynamic'
      rendered_content = JekyllReact::Render.new(self.site, page, site_payload = nil)
      page.content=rendered_content.run
      dyn_page = JekyllReact::PageData.new(@site, page)
      name = "#{page.data['title']}.json"
      page_json = dyn_page.to_hash.to_json
      new_page(name, page_json, page.url)
      page.content = ''
    end
  end
end