Module: Leg::Markdown

Defined in:
lib/leg/markdown.rb

Defined Under Namespace

Classes: HTMLRouge

Constant Summary collapse

HTML_RENDERER =
HTMLRouge.new(with_toc_data: true)
MARKDOWN_RENDERER =
Redcarpet::Markdown.new(HTML_RENDERER, fenced_code_blocks: true)

Class Method Summary collapse

Class Method Details

.render(source) ⇒ Object



10
11
12
13
14
15
16
17
18
# File 'lib/leg/markdown.rb', line 10

def self.render(source)
  html = MARKDOWN_RENDERER.render(source)
  html = Redcarpet::Render::SmartyPants.render(html)
  html.gsub!(/<\/code>&lsquo;/) { "</code>&rsquo;" }
  html.gsub!(/^\s*<h([23456]) id="([^"]+)">(.+)<\/h\d>$/) {
    "<h#{$1} id=\"#{$2}\"><a href=\"##{$2}\">#{$3}</a></h#{$1}>"
  }
  html
end