Class: Kitabu::Markdown

Inherits:
Object
  • Object
show all
Defined in:
lib/bookmaker/adapters/markdown.rb

Constant Summary collapse

MARKDOWN_LIBRARIES =

Supported Markdown libraries

%w[Kramdown]

Class Method Summary collapse

Class Method Details

.engineObject

Retrieve preferred Markdown processor. You’ll need one of the following libraries:

# RDiscount: rubygems.org/gems/rdiscount # Maruku: rubygems.org/gems/maruku # PEGMarkdown: rubygems.org/gems/rpeg-markdown # BlueCloth: rubygems.org/gems/bluecloth # Redcarpet: rubygems.org/gems/redcarpet # Kramdown: kramdown.rubyforge.org/

Note: RDiscount will always be installed as Kitabu’s dependency but only used when no alternative library is available.



20
21
22
# File 'lib/bookmaker/adapters/markdown.rb', line 20

def self.engine
  @engine ||= Object.const_get(MARKDOWN_LIBRARIES.find {|lib| Object.const_defined?(lib)})
end

.to_html(content) ⇒ Object

Convert Markdown to HTML.



25
26
27
28
29
30
31
32
33
# File 'lib/bookmaker/adapters/markdown.rb', line 25

def self.to_html(content)
  case engine.name
  when "Redcarpet"
    render = Redcarpet::Render::HTML.new(:hard_wrap => true, :xhtml => true)
    Redcarpet::Markdown.new(render).render(content)
  else
    engine.new(content).to_html
  end
end