Class: Magneto::RedcarpetFilter

Inherits:
Filter
  • Object
show all
Defined in:
lib/magneto/filters/redcarpet.rb

Instance Method Summary collapse

Methods inherited from Filter

inherited, #initialize, subclasses

Constructor Details

This class inherits a constructor from Magneto::Filter

Instance Method Details

#apply(content, ivars) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/magneto/filters/redcarpet.rb', line 9

def apply(content, ivars)
  begin
    require 'redcarpet'
  rescue LoadError => ex
    $stderr.puts "#{File.basename($PROGRAM_NAME)}: #{ex.to_s}"
    $stderr.puts "You're missing a library required to use Redcarpet. Try running:"
    $stderr.puts '  $ [sudo] gem install redcarpet'
    raise 'Missing dependency: redcarpet'
  end

  args = ivars[:redcarpet].symbolize_keys rescue {}
  renderer_class = Kernel.const_get(args[:renderer_name]) rescue args[:renderer_class] || Redcarpet::Render::HTML
  args.delete(:renderer_name)
  args.delete(:renderer_class)
  renderer_options = args[:renderer_options].symbolize_keys rescue {}
  args.delete(:renderer_options)

  Redcarpet::Markdown.new(renderer_class.new(renderer_options), args).render(content)
end

#nameObject



5
6
7
# File 'lib/magneto/filters/redcarpet.rb', line 5

def name
  'redcarpet'
end