Class: Jekyll::Converters::Markdown::PandocParser

Inherits:
Object
  • Object
show all
Defined in:
lib/jekyll/converters/markdown/pandoc_parser.rb

Constant Summary collapse

DEFAULT_EXTENSIONS =
[]
DEFAULT_FORMAT =
'html5'

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ PandocParser

Returns a new instance of PandocParser.



9
10
11
12
13
14
15
16
# File 'lib/jekyll/converters/markdown/pandoc_parser.rb', line 9

def initialize(config)
  require 'pandoc-ruby'
  @config = config
rescue LoadError
  STDERR.puts 'You are missing a library required for Pandoc. Please run:'
  STDERR.puts ' $ [sudo] gem install pandoc-ruby'
  raise FatalException, "Missing dependency: pandoc-ruby"
end

Instance Method Details

#config_option(key, default = nil) ⇒ Object



27
28
29
30
31
32
33
# File 'lib/jekyll/converters/markdown/pandoc_parser.rb', line 27

def config_option(key, default=nil)
  if @config['pandoc']
    @config['pandoc'].fetch(key, default)
  else
    default
  end
end

#convert(content) ⇒ Object

Raises:

  • (FatalException)


18
19
20
21
22
23
24
25
# File 'lib/jekyll/converters/markdown/pandoc_parser.rb', line 18

def convert(content)
  extensions = config_option('extensions', DEFAULT_EXTENSIONS)
  format = config_option('format', DEFAULT_FORMAT)

  content = PandocRuby.new(content, *extensions).send("to_#{format}")
  raise FatalException, "Conversion returned empty string" unless content.length > 0
  content
end