module Leg::Template

Public Class Methods

render(template_source, tutorial, config, params = {}) click to toggle source
# File lib/leg/template.rb, line 3
def self.render(template_source, tutorial, config, params = {})
  Leg::Template::Context.new(template_source, tutorial, config, params).render_template
end
render_page(page_template, step_template, format, page, tutorial, config) click to toggle source
# File lib/leg/template.rb, line 7
def self.render_page(page_template, step_template, format, page, tutorial, config)
  content = ""
  page.steps.each do |step|
    if !step.text.strip.empty?
      output = step.text.strip + "\n\n"
      if format == "html"
        output = Leg::Markdown.render(output)
      end
      content << output
    end

    content << Leg::Template.render_step(step_template, step, tutorial, config)
  end
  if page.footer_text
    # TODO: DRY this up. Please.
    output = page.footer_text.strip + "\n\n"
    if format == "html"
      output = Leg::Markdown.render(output)
    end
    content << output
  end

  page_number = tutorial.pages.index(page) + 1

  Leg::Template.render(page_template, tutorial, config,
    page_title: page.title,
    content: content,
    page_number: page_number,
    prev_page: page_number > 1 ? tutorial.pages[page_number - 2] : nil,
    next_page: page_number < tutorial.pages.length ? tutorial.pages[page_number] : nil
  )
end
render_step(step_template, step, tutorial, config) click to toggle source
# File lib/leg/template.rb, line 40
def self.render_step(step_template, step, tutorial, config)
  Leg::Template.render(step_template, tutorial, config,
    number: step.number,
    summary: step.summary,
    diffs: step.diffs
  )
end