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



12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/isodoc/jis/base_convert.rb', line 12

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



25
26
27
28
29
30
31
32
33
34
# File 'lib/isodoc/jis/base_convert.rb', line 25

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



65
66
67
# File 'lib/isodoc/jis/base_convert.rb', line 65

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

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



7
8
9
10
# File 'lib/isodoc/jis/base_convert.rb', line 7

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

#table_cols_count(node) ⇒ Object



57
58
59
60
61
62
63
# File 'lib/isodoc/jis/base_convert.rb', line 57

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



69
70
71
72
73
74
75
# File 'lib/isodoc/jis/base_convert.rb', line 69

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



77
78
79
80
81
82
83
84
85
86
87
88
# File 'lib/isodoc/jis/base_convert.rb', line 77

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



36
37
38
39
40
41
42
# File 'lib/isodoc/jis/base_convert.rb', line 36

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



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

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



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

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