Sha256: b7c910e01c96078ab19a9c1c4277466be0f645c5368884b87f6fbb80e5194c56

Contents?: true

Size: 1.77 KB

Versions: 10

Compression:

Stored size: 1.77 KB

Contents

module Jekyll
  module Converters
    class Markdown
      class MarukuParser
        def initialize(config)
          require 'maruku'
          @config = config
          @errors = []
          load_divs_library if @config['maruku']['use_divs']
          load_blahtext_library if @config['maruku']['use_tex']
        rescue LoadError
          STDERR.puts 'You are missing a library required for Markdown. Please run:'
          STDERR.puts '  $ [sudo] gem install maruku'
          raise FatalException.new("Missing dependency: maruku")
        end

        def load_divs_library
          require 'maruku/ext/div'
          STDERR.puts 'Maruku: Using extended syntax for div elements.'
        end

        def load_blahtext_library
          require 'maruku/ext/math'
          STDERR.puts "Maruku: Using LaTeX extension. Images in `#{@config['maruku']['png_dir']}`."

          # Switch off MathML output
          MaRuKu::Globals[:html_math_output_mathml] = false
          MaRuKu::Globals[:html_math_engine] = 'none'

          # Turn on math to PNG support with blahtex
          # Resulting PNGs stored in `images/latex`
          MaRuKu::Globals[:html_math_output_png] = true
          MaRuKu::Globals[:html_png_engine] =  @config['maruku']['png_engine']
          MaRuKu::Globals[:html_png_dir] = @config['maruku']['png_dir']
          MaRuKu::Globals[:html_png_url] = @config['maruku']['png_url']
        end

        def print_errors_and_fail
          print @errors.join
          raise MaRuKu::Exception, "MaRuKu encountered problem(s) while converting your markup."
        end

        def convert(content)
          converted = Maruku.new(content, :error_stream => @errors).to_html
          print_errors_and_fail unless @errors.empty?
          converted
        end
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 2 rubygems

Version Path
jekyll-1.3.1 lib/jekyll/converters/markdown/maruku_parser.rb
jekyll-1.3.0 lib/jekyll/converters/markdown/maruku_parser.rb
jekyll-1.3.0.rc lib/jekyll/converters/markdown/maruku_parser.rb
monad-0.0.3 lib/jekyll/converters/markdown/maruku_parser.rb
jekyll-1.2.1 lib/jekyll/converters/markdown/maruku_parser.rb
jekyll-1.2.0 lib/jekyll/converters/markdown/maruku_parser.rb
jekyll-1.0.4 lib/jekyll/converters/markdown/maruku_parser.rb
jekyll-1.1.2 lib/jekyll/converters/markdown/maruku_parser.rb
jekyll-1.1.1 lib/jekyll/converters/markdown/maruku_parser.rb
jekyll-1.0.3 lib/jekyll/converters/markdown/maruku_parser.rb