Module: Coradoc::Mirror::Handlers::Inline
- Defined in:
- lib/coradoc/mirror/handlers/inline.rb
Constant Summary collapse
- SIMPLE_MARK_TYPES =
Classification of inline handlers.
{ CoreModel::BoldElement => Mark::Bold, CoreModel::ItalicElement => Mark::Italic, CoreModel::MonospaceElement => Mark::Monospace, CoreModel::UnderlineElement => Mark::Underline, CoreModel::StrikethroughElement => Mark::Strikethrough, CoreModel::SubscriptElement => Mark::Subscript, CoreModel::SuperscriptElement => Mark::Superscript, CoreModel::HighlightElement => Mark::Highlight, CoreModel::TermElement => Mark::Bold }.freeze
Class Method Summary collapse
- .call(element, context:) ⇒ Object
- .process(element, context:) ⇒ Object
- .process_child(child, context) ⇒ Object
- .text_content(element, context:) ⇒ Object
Class Method Details
.call(element, context:) ⇒ Object
59 60 61 |
# File 'lib/coradoc/mirror/handlers/inline.rb', line 59 def self.call(element, context:) dispatch_inline(element, context) end |
.process(element, context:) ⇒ Object
20 21 22 23 24 25 26 27 28 |
# File 'lib/coradoc/mirror/handlers/inline.rb', line 20 def self.process(element, context:) return [] unless element children = inline_children_for(element) children.flat_map do |child| process_child(child, context) end end |
.process_child(child, context) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/coradoc/mirror/handlers/inline.rb', line 30 def self.process_child(child, context) case child when CoreModel::TextContent return [] if child.text.nil? || child.text.empty? [context.text_node(child.text)] when CoreModel::InlineElement [dispatch_inline(child, context)].compact when CoreModel::FootnoteReference [context.resolve_footnote_reference(child)] when CoreModel::Block, CoreModel::StructuralElement result = context.registry.handle(child, context: context) return [] unless result value, concat = result return [] unless value if concat Array(value) else [value].compact end when CoreModel::Image [Handlers::Image.call(child, context: context)] else [] end end |
.text_content(element, context:) ⇒ Object
63 64 65 66 67 |
# File 'lib/coradoc/mirror/handlers/inline.rb', line 63 def self.text_content(element, context:) return nil if element.text.nil? || element.text.empty? context.text_node(element.text) end |