class Jekyll::GeneratedPage

Public Class Methods

new(site, base, web_root, dir, item, layout=nil) click to toggle source
# File lib/raml-generate.rb, line 20
def initialize(site, base, web_root, dir, item, layout=nil)
  @site = site
  @base = base
  @dir = dir.gsub(/{(\w*)}/, '--\1--').gsub(/\s/, '_')
  @dir = File.join(web_root, @dir)
  @name = 'index.html'
  
  layout = get_layout("#{web_root}#{dir}") if layout.nil?
  layout = "#{layout}.html" if not layout.end_with?('.html')

  self.process(@name)
  self.read_yaml(File.join(base, '_layouts'), layout)

  self.data['title'] = "#{item['title']}"
  if item.include?('description')
    self.data['description'] = transform_md(item['description'])
  end
end

Private Instance Methods

get_layout(dir, site=@site) click to toggle source
# File lib/raml-generate.rb, line 48
def get_layout(dir, site=@site)
  defaults = site.config.fetch('defaults', []).sort_by { |x| -(x.fetch('scope', {}).fetch('path', '').length) }

  default = defaults.detect { |x| dir.include?(x['scope']['path'])}

  default = {"values" => {}} if default.nil?

  default['values'].fetch('layout', 'default')
end
transform_md(output) click to toggle source
# File lib/raml-generate.rb, line 40
def transform_md(output)
  # Use the existing Jekyll Markdown converters
  md_converters = site.converters.select{|c| c.matches('.md')}
  md_converters.reduce(output) do |output_to_convert, converter|
    converter.convert output_to_convert
  end
end