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

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

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ PandocParser

Returns a new instance of PandocParser.



42
43
44
45
46
47
48
49
# File 'lib/jekyll/converters/markdown/pandoc_parser.rb', line 42

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



60
61
62
63
64
65
66
# File 'lib/jekyll/converters/markdown/pandoc_parser.rb', line 60

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

#convert(content) ⇒ Object

Raises:

  • (FatalException)


51
52
53
54
55
56
57
58
# File 'lib/jekyll/converters/markdown/pandoc_parser.rb', line 51

def convert(content)
  extensions = config_option('extensions', [])
  format = config_option('format', 'html5')

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