Class: Charming::Markdown::InlineRenderer
- Inherits:
-
Object
- Object
- Charming::Markdown::InlineRenderer
- 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
-
#initialize(renderer:) ⇒ InlineRenderer
constructor
renderer is the parent Renderer (used to render nested inlines and look up styles).
-
#render(element, context:) ⇒ Object
Renders element using the handler registered for ‘element.type`.
Constructor Details
#initialize(renderer:) ⇒ InlineRenderer
renderer is the parent Renderer (used to render nested inlines and look up styles).
11 12 13 14 |
# File 'lib/charming/presentation/markdown/inline_renderers.rb', line 11 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`.
18 19 20 21 |
# File 'lib/charming/presentation/markdown/inline_renderers.rb', line 18 def render(element, context:) handler = @handlers[element.type] || method(:render_unknown) handler.call(element, context) end |