Class: FujiMarkdown::Processor

Inherits:
Object
  • Object
show all
Defined in:
lib/fuji_markdown/processor.rb

Instance Method Summary collapse

Constructor Details

#initialize(preprocessors: [], postprocessors: [], renderer: CommonMarker::HtmlRenderer.new) ⇒ Processor

Returns a new instance of Processor.



7
8
9
10
11
# File 'lib/fuji_markdown/processor.rb', line 7

def initialize(preprocessors: [], postprocessors: [], renderer: CommonMarker::HtmlRenderer.new)
  @preprocessors  = preprocessors
  @postprocessors = postprocessors
  @renderer       = renderer
end

Instance Method Details

#parse(text) ⇒ Object



13
14
15
16
17
18
19
# 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) ⇒ Object



21
22
23
24
25
26
27
28
29
# 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