Class: Metanorma::M3AAWG::Converter

Inherits:
Generic::Converter
  • Object
show all
Defined in:
lib/metanorma/m3aawg/converter.rb

Constant Summary collapse

XML_ROOT_TAG =
"m3d-standard".freeze
XML_NAMESPACE =
"https://www.metanorma.org/ns/m3d".freeze

Instance Method Summary collapse

Instance Method Details

#configurationObject



27
28
29
# File 'lib/metanorma/m3aawg/converter.rb', line 27

def configuration
  Metanorma::M3AAWG.configuration
end

#doc_converter(node) ⇒ Object



62
63
64
# File 'lib/metanorma/m3aawg/converter.rb', line 62

def doc_converter(node)
  IsoDoc::M3AAWG::WordConvert.new(doc_extract_attributes(node))
end

#html_converter(node) ⇒ Object



58
59
60
# File 'lib/metanorma/m3aawg/converter.rb', line 58

def html_converter(node)
  IsoDoc::M3AAWG::HtmlConvert.new(html_extract_attributes(node))
end

#makexml(node) ⇒ Object



31
32
33
34
# File 'lib/metanorma/m3aawg/converter.rb', line 31

def makexml(node)
  @draft = node.attributes.has_key?("draft")
  super
end

#metadata_committee(node, xml) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/metanorma/m3aawg/converter.rb', line 12

def (node, xml)
  return unless node.attr("technical-committee")

  xml.editorialgroup do |a|
    a.committee node.attr("technical-committee"),
                **attr_code(type: node.attr("technical-committee-type"))
    i = 2
    while node.attr("technical-committee_#{i}")
      a.committee node.attr("technical-committee_#{i}"),
                  **attr_code(type: node.attr("technical-committee-type_#{i}"))
      i += 1
    end
  end
end

#outputs(node, ret) ⇒ Object



36
37
38
39
40
41
42
43
44
45
# File 'lib/metanorma/m3aawg/converter.rb', line 36

def outputs(node, ret)
  File.open("#{@filename}.xml", "w:UTF-8") { |f| f.write(ret) }
  presentation_xml_converter(node).convert("#{@filename}.xml")
  html_converter(node).convert("#{@filename}.presentation.xml", nil,
                               false, "#{@filename}.html")
  doc_converter(node).convert("#{@filename}.presentation.xml", nil,
                              false, "#{@filename}.doc")
  pdf_converter(node)&.convert("#{@filename}.presentation.xml", nil,
                               false, "#{@filename}.pdf")
end

#pdf_converter(node) ⇒ Object



66
67
68
69
70
# File 'lib/metanorma/m3aawg/converter.rb', line 66

def pdf_converter(node)
  return nil if node.attr("no-pdf")

  IsoDoc::M3AAWG::PdfConvert.new(pdf_extract_attributes(node))
end

#presentation_xml_converter(node) ⇒ Object



54
55
56
# File 'lib/metanorma/m3aawg/converter.rb', line 54

def presentation_xml_converter(node)
  IsoDoc::M3AAWG::PresentationXMLConvert.new(html_extract_attributes(node))
end

#sections_cleanup(xml) ⇒ Object



47
48
49
50
51
52
# File 'lib/metanorma/m3aawg/converter.rb', line 47

def sections_cleanup(xml)
  super
  xml.xpath("//*[@inline-header]").each do |h|
    h.delete("inline-header")
  end
end