Class: Charming::Presentation::Markdown::InlineRenderer

Inherits:
Object
  • Object
show all
Defined in:
lib/charming/presentation/markdown/inline_renderers.rb

Overview

InlineRenderer dispatches Kramdown inline-level elements (text, strong, em, codespan, link, line break, HTML entity) to their individual rendering handlers. Handlers are built once at construction as a frozen hash of element-type symbols to callables.

Instance Method Summary collapse

Constructor Details

#initialize(renderer:) ⇒ InlineRenderer

renderer is the parent Renderer (used to render nested inlines and look up styles).



12
13
14
15
# File 'lib/charming/presentation/markdown/inline_renderers.rb', line 12

def initialize(renderer:)
  @renderer = renderer
  build_handlers
end

Instance Method Details

#render(element, context:) ⇒ Object

Renders element using the handler registered for ‘element.type`. Unknown types fall through to `render_unknown`.



19
20
21
22
# File 'lib/charming/presentation/markdown/inline_renderers.rb', line 19

def render(element, context:)
  handler = @handlers[element.type] || method(:render_unknown)
  handler.call(element, context)
end