Module: IsoDoc::Jis::BaseConvert

Included in:
HtmlConvert, WordConvert
Defined in:
lib/isodoc/jis/base_convert.rb

Instance Method Summary collapse

Instance Method Details

#annex(node, out) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/isodoc/jis/base_convert.rb', line 28

def annex(node, out)
  node["commentary"] = "true" and return commentary(node, out)
  amd?(isoxml) and @suppressheadingnumbers = @oldsuppressheadingnumbers
  page_break(out)
  out.div **attr_code(annex_attrs(node)) do |s|
    node.elements.each do |c1|
      if c1.name == "fmt-title" then annex_name(node, c1, s)
      else parse(c1, s) end
    end
  end
  amd?(isoxml) and @suppressheadingnumbers = true
end

#commentary(node, out) ⇒ Object



41
42
43
44
45
46
47
48
49
50
# File 'lib/isodoc/jis/base_convert.rb', line 41

def commentary(node, out)
  page_break(out)
  out.div **attr_code(annex_attrs(node)) do |s|
    node.elements.each do |c1|
      if c1.name == "fmt-title" then annex_name(node, c1, s)
      else parse(c1, s)
      end
    end
  end
end

#full_row(cols, elem) ⇒ Object



81
82
83
# File 'lib/isodoc/jis/base_convert.rb', line 81

def full_row(cols, elem)
  "<tr><td border='0' colspan='#{cols}'>#{elem}</td></tr>"
end

#make_tr_attr(cell, row, totalrows, header, bordered) ⇒ Object



23
24
25
26
# File 'lib/isodoc/jis/base_convert.rb', line 23

def make_tr_attr(cell, row, totalrows, header, bordered)
  cell["border"] == "0" and bordered = false
  super
end

#table_cols_count(node) ⇒ Object



73
74
75
76
77
78
79
# File 'lib/isodoc/jis/base_convert.rb', line 73

def table_cols_count(node)
  cols = 0
  node.at(ns(".//tr")).xpath(ns("./td | ./th")).each do |x|
    cols += x["colspan"]&.to_i || 1
  end
  cols
end

#table_name(name, thead, cols) ⇒ Object



85
86
87
88
89
90
91
# File 'lib/isodoc/jis/base_convert.rb', line 85

def table_name(name, thead, cols)
  name or return
  thead.add_first_child full_row(
    cols, "<p class='TableTitle' style='text-align:center;'> " \
                   "#{name.remove.children.to_xml}</p>"
  )
end

#table_note_cleanup(docxml) ⇒ Object



93
94
95
96
97
98
99
100
101
102
103
104
# File 'lib/isodoc/jis/base_convert.rb', line 93

def table_note_cleanup(docxml)
  tn = ::IsoDoc::Function::Cleanup::TABLENOTE_CSS
  docxml.xpath("//table[dl or #{tn} or p[@class = 'dl']]").each do |t|
    tfoot = table_get_or_make_tfoot(t)
    insert_here = new_fullcolspan_row(t, tfoot)
    t.xpath("dl | p[@class = 'ListTitle'] | #{tn} | " \
            "p[@class = 'dl']")
      .each do |d|
      d.parent = insert_here
    end
  end
end

#table_parse(node, out) ⇒ Object



52
53
54
55
56
57
58
# File 'lib/isodoc/jis/base_convert.rb', line 52

def table_parse(node, out)
  cols = table_cols_count(node)
  name = node.at(ns("./fmt-name"))
  thead = table_thead_pt(node, name)
  table_name(name, thead, cols)
  super
end

#table_parse_tail(node, out) ⇒ Object



60
61
62
63
64
65
# File 'lib/isodoc/jis/base_convert.rb', line 60

def table_parse_tail(node, out)
  node.xpath(ns("./p[@class = 'ListTitle' or @class = 'dl']"))
    .each { |p| parse(p, out) }
  node.xpath(ns("./source")).each { |n| parse(n, out) }
  node.xpath(ns("./note")).each { |n| parse(n, out) }
end

#table_thead_pt(node, name) ⇒ Object



67
68
69
70
71
# File 'lib/isodoc/jis/base_convert.rb', line 67

def table_thead_pt(node, name)
  node.at(ns("./thead")) ||
    name&.after("<thead> </thead>")&.next ||
    node.elements.first.before("<thead> </thead>").previous
end

#termnote_parsex(node, out) ⇒ Object

KILL



8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/isodoc/jis/base_convert.rb', line 8

def termnote_parsex(node, out)
  name = node.at(ns("./name"))&.remove
  out.div **note_attrs(node) do |div|
    div.p do |p|
      if name
        p.span class: "note_label" do |s|
          name.children.each { |n| parse(n, s) }
        end
        p << " "
      end
      para_then_remainder(node.first_element_child, node, p, div)
    end
  end
end