Module: Leg::Template

Defined in:
lib/leg/template.rb

Defined Under Namespace

Classes: Context

Class Method Summary collapse

Class Method Details

.render(template_source, tutorial, config, params = {}) ⇒ Object



3
4
5
# 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) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# 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) ⇒ Object



40
41
42
43
44
45
46
# 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