Class: DaimonMarkdown::Redcarpet::HTMLRenderer

Inherits:
Redcarpet::Render::HTML
  • Object
show all
Includes:
Rouge::Plugins::Redcarpet
Defined in:
lib/daimon_markdown/redcarpet/html_renderer.rb

Instance Method Summary collapse

Constructor Details

#initialize(extensions = {}) ⇒ HTMLRenderer

Returns a new instance of HTMLRenderer.



9
10
11
12
# File 'lib/daimon_markdown/redcarpet/html_renderer.rb', line 9

def initialize(extensions = {})
  super
  @plugins = []
end

Instance Method Details

#postprocess(full_document) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/daimon_markdown/redcarpet/html_renderer.rb', line 28

def postprocess(full_document)
  return full_document if @plugins.empty?
  document = ""
  scanner = StringScanner.new(full_document)
  loop do
    break if scanner.eos?
    if scanner.match?(/{{.+?}}/m)
      document << @plugins.shift
      scanner.pos += scanner.matched_size
    else
      document << scanner.getch
    end
  end
  document
end

#preprocess(full_document) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/daimon_markdown/redcarpet/html_renderer.rb', line 14

def preprocess(full_document)
  scanner = StringScanner.new(full_document)
  loop do
    break if scanner.eos?
    if scanner.match?(/{{.+?}}/m)
      @plugins << scanner.matched
      scanner.pos += scanner.matched_size
    else
      scanner.getch
    end
  end
  full_document
end