module IsoDoc::Gb::BaseConvert
Constants
- EXAMPLE_TBL_ATTR
Public Instance Methods
clausedelimspace(out)
click to toggle source
# File lib/isodoc/gb/base_convert.rb, line 162 def clausedelimspace(out) out << " " end
cleanup(docxml)
click to toggle source
Calls superclass method
# File lib/isodoc/gb/base_convert.rb, line 18 def cleanup(docxml) @i18n ||= i18n_init(@lang, @script) @cleanup = Cleanup.new(@script, @i18n.deprecated) super @cleanup.cleanup(docxml) docxml end
deprecated_term_parse(node, out)
click to toggle source
# File lib/isodoc/gb/base_convert.rb, line 136 def deprecated_term_parse(node, out) out.p **{ class: "DeprecatedTerms" } do |p| p << l10n("#{@i18n.deprecated}: ") node.children.each { |c| parse(c, p) } end end
end_line(_isoxml, out)
click to toggle source
# File lib/isodoc/gb/base_convert.rb, line 113 def end_line(_isoxml, out) out.hr **{ width: "25%" } end
error_parse(node, out)
click to toggle source
Calls superclass method
# File lib/isodoc/gb/base_convert.rb, line 117 def error_parse(node, out) # catch elements not defined in ISO case node.name when "string" then string_parse(node, out) else super end end
example_cleanup(docxml)
click to toggle source
Calls superclass method
# File lib/isodoc/gb/base_convert.rb, line 26 def example_cleanup(docxml) super @cleanup.example_cleanup(docxml) end
example_p_parse(node, div)
click to toggle source
# File lib/isodoc/gb/base_convert.rb, line 172 def example_p_parse(node, div) name = node&.at(ns("./name"))&.remove div.p do |p| example_span_label(node, p, name) insert_tab(p, 1) node.first_element_child.children.each { |n| parse(n, p) } end node.element_children[1..-1].each { |n| parse(n, div) } end
example_parse(node, out)
click to toggle source
# File lib/isodoc/gb/base_convert.rb, line 199 def example_parse(node, out) out.div **{ id: node["id"], class: "example" } do |div| node_begins_with_para(node) ? example_p_parse(node, div) : example_parse1(node, div) end end
example_parse1(node, div)
click to toggle source
# File lib/isodoc/gb/base_convert.rb, line 182 def example_parse1(node, div) div.p do |p| example_span_label(node, p, node.at(ns("./name"))) insert_tab(p, 1) end node.children.each { |n| parse(n, div) unless n.name == "name" } end
example_span_label(node, div, name)
click to toggle source
# File lib/isodoc/gb/base_convert.rb, line 166 def example_span_label(node, div, name) div.span **{ class: "example_label" } do |p| name and name.children.each { |n| parse(n, div) } end end
formula_dl_parse(node, out)
click to toggle source
# File lib/isodoc/gb/base_convert.rb, line 55 def formula_dl_parse(node, out) out.table **{ class: "formula_dl" } do |v| node.elements.each_slice(2) do |dt, dd| v.tr do |tr| tr.td **{ style: "vertical-align:top;text-align:left;" } do |term| dt_parse(dt, term) end tr.td(**{ style: "vertical-align:top;" }) { |td| td << "—" } tr.td **{ style: "vertical-align:top;" } do |listitem| dd.children.each { |n| parse(n, listitem) } end end end end end
formula_parse1(node, out)
click to toggle source
# File lib/isodoc/gb/base_convert.rb, line 35 def formula_parse1(node, out) out.div **attr_code(class: "formula") do |div| insert_tab(div, 1) parse(node.at(ns("./stem")), div) lbl = node&.at(ns("./name"))&.text unless lbl.nil? insert_tab(div, 1) div << "(#{lbl})" end end end
formula_where(dl, out)
click to toggle source
# File lib/isodoc/gb/base_convert.rb, line 47 def formula_where(dl, out) return unless dl out.p **{ style: "page-break-after:avoid;"} do |p| p << @i18n.where end formula_dl_parse(dl, out) end
middle(isoxml, out)
click to toggle source
Calls superclass method
# File lib/isodoc/gb/base_convert.rb, line 108 def middle(isoxml, out) super end_line(isoxml, out) end
node_begins_with_para(node)
click to toggle source
# File lib/isodoc/gb/base_convert.rb, line 190 def node_begins_with_para(node) node.elements.each do |e| next if e.name == "name" return true if e.name == "p" return false end false end
note_delim()
click to toggle source
# File lib/isodoc/gb/base_convert.rb, line 75 def note_delim l10n(": ") end
note_parse(node, out)
click to toggle source
# File lib/isodoc/gb/base_convert.rb, line 79 def note_parse(node, out) note_parse_table(node, out) end
note_parse_table(node, out)
click to toggle source
# File lib/isodoc/gb/base_convert.rb, line 83 def note_parse_table(node, out) @note = true name = node&.at(ns("./name"))&.remove note_parse_table1(node, out, name) @note = false end
note_parse_table1(node, out, name)
click to toggle source
# File lib/isodoc/gb/base_convert.rb, line 90 def note_parse_table1(node, out, name) out.table **note_attrs(node) do |t| t.tr do |tr| tr.td **EXAMPLE_TBL_ATTR do |td| name and name.children.each { |n| parse(n, td) } td << note_delim end tr.td **{ style: "vertical-align:top;", class: "Note" } do |td| node.children.each { |n| parse(n, td) } end end end end
omit_docid_prefix(prefix)
click to toggle source
Calls superclass method
# File lib/isodoc/gb/base_convert.rb, line 31 def omit_docid_prefix(prefix) super || prefix == "Chinese Standard" end
scss_fontheader()
click to toggle source
# File lib/isodoc/gb/base_convert.rb, line 9 def scss_fontheader b = options[:bodyfont] || "Arial" h = options[:headerfont] || "Arial" m = options[:monospacefont] || "Courier" t = options[:titlefont] || "Arial" "$bodyfont: #{b};\n$headerfont: #{h};\n$monospacefont: #{m};\n"\ "$titlefont: #{t};\n" end
string_parse(node, out)
click to toggle source
# File lib/isodoc/gb/base_convert.rb, line 126 def string_parse(node, out) if node["script"] == "Hant" out.span **{ class: "Hant" } do |s| node.children.each { |c| parse(c, s) } end else node.children.each { |c| parse(c, out) } end end
termnote_parse(node, out)
click to toggle source
# File lib/isodoc/gb/base_convert.rb, line 104 def termnote_parse(node, out) note_parse_table(node, out) end
termref_render(x)
click to toggle source
# File lib/isodoc/gb/base_convert.rb, line 143 def termref_render(x) x.sub!(%r{\s*\[MODIFICATION\]\s*$}m, l10n(", #{@i18n.modified}")) parts = x.split(%r{(\s*\[MODIFICATION\]|,)}m) parts[1] = l10n(", #{@i18n.source}") if parts.size > 1 && parts[1] == "," && !/^\s*#{@i18n.modified}/.match(parts[2]) parts.map do |p| /\s*\[MODIFICATION\]/.match(p) ? l10n(", #{@i18n.modified} — ") : p end.join.sub(/\A\s*/m, l10n("[")).sub(/\s*\z/m, l10n("]")) end
termref_resolve(docxml)
click to toggle source
# File lib/isodoc/gb/base_convert.rb, line 154 def termref_resolve(docxml) docxml.gsub(%r{\s*\[/TERMREF\]\s*</p>\s*<p>\s*\[TERMREF\]}, l10n("; ")). split(%r{(\[TERMREF\]|\[/TERMREF\])}).each_slice(4). map do |a| a.size < 3 ? a[0] : a[0] + termref_render(a[2]) end.join end
textcleanup(docxml)
click to toggle source
# File lib/isodoc/gb/base_convert.rb, line 206 def textcleanup(docxml) termref_resolve(docxml) end