class MagicReveal::SlideRenderer
Custom renderer so the HTML is the right format for Reveal.js.
Attributes
has_shown_slides[RW]
Public Class Methods
markdown_renderer()
click to toggle source
# File lib/magic_reveal/slide_renderer.rb, line 16 def self.markdown_renderer Redcarpet::Markdown.new( new, space_after_headers: true, filter_html: true, fenced_code_blocks: true, no_intra_emphasis: true ) end
new()
click to toggle source
Calls superclass method
# File lib/magic_reveal/slide_renderer.rb, line 12 def initialize super(no_styles: true) end
Public Instance Methods
block_code(code, language)
click to toggle source
# File lib/magic_reveal/slide_renderer.rb, line 54 def block_code(code, language) [].tap do |output| output << (language ? "<pre class=\"#{language}\">" : '<pre>') output << '<code>' output << CGI.escapeHTML(prepare_code code) output << '</code>' output << '</pre>' end.join('') end
doc_header()
click to toggle source
# File lib/magic_reveal/slide_renderer.rb, line 26 def doc_header @has_shown_slides = false "<!-- generated by magic_reveal v#{VERSION} on #{Time.now} -->" end
header(text, header_level, anchor = nil)
click to toggle source
# File lib/magic_reveal/slide_renderer.rb, line 35 def header(text, header_level, anchor = nil) [].tap do |output| output << '</section>' if has_shown_slides @has_shown_slides = true anchor_html = anchor ? " id=\"#{anchor}\"" : '' output << '<section>' output << "<h#{header_level}#{anchor_html}>#{text}</h#{header_level}>" end.join("\n") end
prepare_code(code)
click to toggle source
# File lib/magic_reveal/slide_renderer.rb, line 46 def prepare_code(code) if code =~ /\A\s*@@source\s*=\s*(?<filename>.*)\s*\Z/ File.read Regexp.last_match[:filename] else code.sub(/\A\s*/, '').sub(/\s*\Z/, '') end end