Method: Amber::Render::Template#render

Defined in:
lib/amber/render/template.rb

#render(view, options = {}) ⇒ Object

returns rendered content or title, depending on render_mode. anchors are always automatically added to content headings.



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/amber/render/template.rb', line 48

def render(view, options={})
  view.locals[:_type] = @type
  render_mode = options.delete(:mode) || :content
  toc_option = options.delete(:toc)
  if render_mode == :title
    render_title(view)
  else
    html = render_html(view)
    toc_renderer = RegexTableOfContents.new(html, options)
    if render_mode == :toc
      toc_renderer.to_toc
    elsif toc_option === false
      toc_renderer.to_html
    elsif toc_option || render_mode == :toc_and_content
      %(<div id="TOC">%s</div>\n\n%s) % [toc_renderer.to_toc, toc_renderer.to_html]
    else
      toc_renderer.to_html
    end
  end
end