Class: MagicReveal::SlideRenderer

Inherits:
Redcarpet::Render::HTML
  • Object
show all
Includes:
Redcarpet::Render::SmartyPants
Defined in:
lib/magic_reveal/slide_renderer.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeSlideRenderer

Returns a new instance of SlideRenderer.



11
12
13
# File 'lib/magic_reveal/slide_renderer.rb', line 11

def initialize
  super(no_styles: true)
end

Instance Attribute Details

#has_shown_slidesObject

Returns the value of attribute has_shown_slides.



9
10
11
# File 'lib/magic_reveal/slide_renderer.rb', line 9

def has_shown_slides
  @has_shown_slides
end

Class Method Details

.markdown_rendererObject



15
16
17
18
19
20
21
22
23
# File 'lib/magic_reveal/slide_renderer.rb', line 15

def self.markdown_renderer
  Redcarpet::Markdown.new(
    self.new,
    :space_after_headers => true,
    :filter_html => true,
    :fenced_code_blocks => true,
    :no_intra_emphasis => true,
  )
end

Instance Method Details

#block_code(code, language) ⇒ Object



54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/magic_reveal/slide_renderer.rb', line 54

def block_code(code, language)
  output = []
  if language
    output << "<pre class=\"#{language}\">"
  else
    output << "<pre>"
  end
  output << "<code>"

  output << CGI::escapeHTML(prepare_code code)
  output << "</code>"
  output << "</pre>"
  output.join("")
end


30
31
32
# File 'lib/magic_reveal/slide_renderer.rb', line 30

def doc_footer
  has_shown_slides ? '</section>' : ''
end

#doc_headerObject



25
26
27
28
# File 'lib/magic_reveal/slide_renderer.rb', line 25

def doc_header
  @has_shown_slides = false
  "<!-- generated by magic_reveal v#{VERSION} on #{Time.now} -->"
end

#header(text, header_level) ⇒ Object



34
35
36
37
38
39
40
41
42
43
44
# File 'lib/magic_reveal/slide_renderer.rb', line 34

def header(text, header_level)
  output = []
  if has_shown_slides
    output << "</section>"
  else
    @has_shown_slides = true
  end
  output << "<section>"
  output << "<h#{header_level}>#{text}</h#{header_level}>"
  output.join("\n")
end

#prepare_code(code) ⇒ Object



46
47
48
49
50
51
52
# File 'lib/magic_reveal/slide_renderer.rb', line 46

def prepare_code(code)
  if code =~ %r{\A\s*@@source\s*=\s*(.*)\s*\Z}
    File.read($1)
  else
    code.sub(%r{\A\s*}, '').sub(%r{\s*\Z}, '')
  end
end