class FujiMarkdown::Processor

Public Class Methods

new(preprocessors: [], postprocessors: [], renderer: CommonMarker::HtmlRenderer.new) click to toggle source
# File lib/fuji_markdown/processor.rb, line 7
def initialize(preprocessors: [], postprocessors: [], renderer: CommonMarker::HtmlRenderer.new)
  @preprocessors  = preprocessors
  @postprocessors = postprocessors
  @renderer       = renderer
end

Public Instance Methods

parse(text) click to toggle source
# File lib/fuji_markdown/processor.rb, line 13
def parse(text)
  processed_text = @preprocessors.inject(text) do |result, preprocessor|
    preprocessor.call(result)
  end

  CommonMarker.render_doc(processed_text)
end
render(text) click to toggle source
# File lib/fuji_markdown/processor.rb, line 21
def render(text)
  doc = parse(text)

  @postprocessors.each do |postprocessor|
    postprocessor.call(doc)
  end

  @renderer.render(doc)
end