Class: Hologram::MarkdownRenderer

Inherits:
Redcarpet::Render::HTML
  • Object
show all
Defined in:
lib/hologram/markdown_renderer.rb

Direct Known Subclasses

HologramMarkdownRenderer

Instance Method Summary collapse

Instance Method Details

#block_code(code, language) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/hologram/markdown_renderer.rb', line 3

def block_code(code, language)
  formatter = Rouge::Formatters::HTML.new(wrap: false)
  if language and language.include?('example')
    if language.include?('js')
      lexer = Rouge::Lexer.find('js')
      # first actually insert the code in the docs so that it will run and make our example work.
      '<script>' + code + '</script> <div class="codeBlock jsExample"><div class="highlight"><pre>' + formatter.format(lexer.lex(code)) + '</pre></div></div>'
    else
      lexer = Rouge::Lexer.find(get_lexer(language))
      '<div class="codeExample">' + '<div class="exampleOutput">' + render_html(code, language) + '</div>' + '<div class="codeBlock"><div class="highlight"><pre>' + formatter.format(lexer.lex(code)) + '</pre></div></div>' + '</div>'
    end
  else
    lexer = Rouge::Lexer.find_fancy('guess', code)
    '<div class="codeBlock"><div class="highlight"><pre>' + formatter.format(lexer.lex(code)) + '</pre></div></div>'
  end
end