Module: Metanorma::Mirror::Handlers::Sourcecode

Defined in:
lib/metanorma/mirror/handlers/sourcecode.rb

Constant Summary collapse

EXTRA =
{ language: :lang, filename: nil, linenums: nil }.freeze

Class Method Summary collapse

Class Method Details

.call(element, context:) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/metanorma/mirror/handlers/sourcecode.rb', line 9

def self.call(element, context:)
  attrs = Handlers.extract_attrs(element, extra_attrs: EXTRA)

  body = SafeAttr.read(element, :body)
  text = if body
           Array(body.content).join
         elsif SafeAttr.read(element, :content).is_a?(String)
           SafeAttr.read(element, :content)
         else
           ""
         end
  attrs[:text] = text

  Handlers.build_node("sourcecode", attrs: attrs.compact)
end