Class: Lookbook::MarkdownRenderer

Inherits:
Service
  • Object
show all
Defined in:
lib/lookbook/services/markdown_renderer.rb

Defined Under Namespace

Classes: LookbookMarkdownRenderer

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Service

call

Constructor Details

#initialize(text, extensions = {}, options = {}) ⇒ MarkdownRenderer

In Lookbook config, ‘markdown_options` are actually Redcarpet `extensions` so we store them as `@extensions`



8
9
10
11
12
# File 'lib/lookbook/services/markdown_renderer.rb', line 8

def initialize(text, extensions = {}, options = {})
  @text = text
  @extensions = Lookbook.config.markdown_options.merge(extensions.to_h)
  @options = default_options.merge(options.to_h)
end

Instance Attribute Details

#extensionsObject (readonly)



5
6
7
# File 'lib/lookbook/services/markdown_renderer.rb', line 5

def extensions
  @extensions
end

#optionsObject (readonly)



5
6
7
# File 'lib/lookbook/services/markdown_renderer.rb', line 5

def options
  @options
end

#textObject (readonly)



5
6
7
# File 'lib/lookbook/services/markdown_renderer.rb', line 5

def text
  @text
end

Instance Method Details

#callObject



14
15
16
17
18
# File 'lib/lookbook/services/markdown_renderer.rb', line 14

def call
  clean_text = ActionViewAnnotationsStripper.call(text)
  md = Redcarpet::Markdown.new(LookbookMarkdownRenderer.new(default_options), extensions)
  md.render(clean_text).html_safe
end

#default_optionsObject



35
36
37
38
39
# File 'lib/lookbook/services/markdown_renderer.rb', line 35

def default_options
  {
    with_toc_data: true
  }
end