Class: RUI::Markdown::UnsafeRenderer

Inherits:
Redcarpet::Render::HTML
  • Object
show all
Includes:
Rouge::Plugins::Redcarpet
Defined in:
lib/rui/markdown/unsafe_renderer.rb

Instance Method Summary collapse

Instance Method Details

#block_code(code, lang) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/rui/markdown/unsafe_renderer.rb', line 10

def block_code(code, lang)
  lexer =
    begin
      Rouge::Lexer.find_fancy(lang, code)
    rescue Rouge::Guesser::Ambiguous => e
      e.alternatives.first
    end
  lexer ||= Rouge::Lexers::PlainText

  if lexer.tag == "make"
    code.gsub! %r{^    }, "\t"
  end

  formatter = rouge_formatter(lexer)

  # This is a hack to unescape HTML entities in code blocks
  unescaped = CGI.unescapeHTML(code)

  formatter.format(lexer.lex(unescaped))
end

#codespan(code) ⇒ Object



31
32
33
34
35
# File 'lib/rui/markdown/unsafe_renderer.rb', line 31

def codespan(code)
  unescaped = CGI.unescapeHTML(code)

  "<code>#{unescaped}</code>"
end