metanorma-itu 1.0.18 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -21,19 +21,6 @@ module IsoDoc
21
21
  "itu.recommendation.xsl"
22
22
  end
23
23
  end
24
-
25
- def convert(filename, file = nil, debug = false)
26
- file = File.read(filename, encoding: "utf-8") if file.nil?
27
- docxml, outname_html, dir = convert_init(file, filename, debug)
28
- /\.xml$/.match(filename) or
29
- filename = Tempfile.open([outname_html, ".xml"], encoding: "utf-8") do |f|
30
- f.write file
31
- f.path
32
- end
33
- FileUtils.rm_rf dir
34
- ::Metanorma::Output::XslfoPdf.new.convert(
35
- filename, outname_html + ".pdf", File.join(@libdir, pdf_stylesheet(docxml)))
36
- end
37
24
  end
38
25
  end
39
26
  end
@@ -0,0 +1,10 @@
1
+ require_relative "base_convert"
2
+ require "isodoc"
3
+
4
+ module IsoDoc
5
+ module ITU
6
+ class PresentationXMLConvert < IsoDoc::PresentationXMLConvert
7
+ end
8
+ end
9
+ end
10
+
@@ -122,11 +122,6 @@ module IsoDoc
122
122
  /\.$/.match(title&.text) or r << "."
123
123
  end
124
124
  end
125
-
126
- def reference_names(ref)
127
- super
128
- @anchors[ref["id"]] = { xref: @anchors[ref["id"]][:xref].sub(/^\[/, '').sub(/\]$/, '') }
129
- end
130
125
  end
131
126
  end
132
127
  end
@@ -1,8 +1,8 @@
1
1
  module IsoDoc
2
2
  module ITU
3
3
  module BaseConvert
4
- def term_def_title(node)
5
- node
4
+ def term_def_title(node)
5
+ node
6
6
  end
7
7
 
8
8
  def terms_defs(node, out, num)
@@ -35,7 +35,7 @@ module IsoDoc
35
35
  def termdef_parse1(node, div, term, defn, source)
36
36
  div.p **{ class: "TermNum", id: node["id"] } do |p|
37
37
  p.b do |b|
38
- b << anchor(node["id"], :label)
38
+ b << @xrefs.anchor(node["id"], :label)
39
39
  insert_tab(b, 1)
40
40
  term.children.each { |n| parse(n, b) }
41
41
  end
@@ -60,24 +60,11 @@ module IsoDoc
60
60
  end
61
61
 
62
62
  def termnote_parse(node, out)
63
- out.div **note_attrs(node) do |div|
64
- first = node.first_element_child
65
- div.p do |p|
66
- p << note_label(node) # "#{anchor(node['id'], :label) || '???'}: "
67
- para_then_remainder(first, node, p, div)
68
- end
69
- end
70
- end
71
-
72
- def termnote_anchor_names(docxml)
73
- docxml.xpath(ns("//term[descendant::termnote]")).each do |t|
74
- c = IsoDoc::Function::XrefGen::Counter.new
75
- notes = t.xpath(ns(".//termnote"))
76
- notes.each do |n|
77
- return if n["id"].nil? || n["id"].empty?
78
- idx = notes.size == 1 ? "" : " #{c.increment(n).print}"
79
- @anchors[n["id"]] = anchor_struct(idx, n, @note_xref_lbl,
80
- "termnote", false)
63
+ out.div **note_attrs(node) do |div|
64
+ first = node.first_element_child
65
+ div.p do |p|
66
+ p << note_label(node) # "#{@xrefs.anchor(node['id'], :label) || '???'}: "
67
+ para_then_remainder(first, node, p, div)
81
68
  end
82
69
  end
83
70
  end
@@ -122,7 +122,7 @@ module IsoDoc
122
122
  div.p **attr_code(class: "formula") do |p|
123
123
  insert_tab(div, 1)
124
124
  parse(node.at(ns("./stem")), div)
125
- lbl = anchor(node['id'], :label, false)
125
+ lbl = @xrefs.anchor(node['id'], :label, false)
126
126
  unless lbl.nil?
127
127
  insert_tab(div, 1)
128
128
  div << "(#{lbl})"
@@ -4,14 +4,19 @@ require "fileutils"
4
4
 
5
5
  module IsoDoc
6
6
  module ITU
7
- module BaseConvert
7
+ class Xref < IsoDoc::Xref
8
+ def initialize(lang, script, klass, labels, options)
9
+ super
10
+ @hierarchical_assets = options[:hierarchical_assets]
11
+ end
12
+
8
13
  def annex_name_lbl(clause, num)
9
- lbl = clause["obligation"] == "informative" ? @appendix_lbl : @annex_lbl
14
+ lbl = clause["obligation"] == "informative" ? @labels["appendix"] : @labels["annex"]
10
15
  l10n("<b>#{lbl} #{num}</b>")
11
16
  end
12
17
 
13
18
  def annex_names(clause, num)
14
- lbl = clause["obligation"] == "informative" ? @appendix_lbl : @annex_lbl
19
+ lbl = clause["obligation"] == "informative" ? @labels["appendix"] : @labels["annex"]
15
20
  @anchors[clause["id"]] =
16
21
  { label: annex_name_lbl(clause, num), type: "clause",
17
22
  xref: "#{lbl} #{num}", level: 1 }
@@ -81,7 +86,7 @@ module IsoDoc
81
86
  end
82
87
 
83
88
  def sequential_figure_names(clause)
84
- c = IsoDoc::Function::XrefGen::Counter.new
89
+ c = IsoDoc::XrefGen::Counter.new
85
90
  j = 0
86
91
  clause.xpath(ns(".//figure | .//sourcecode[not(ancestor::example)]")).each do |t|
87
92
  if t.parent.name == "figure" then j += 1
@@ -92,12 +97,12 @@ module IsoDoc
92
97
  label = c.print + (j.zero? ? "" : "-#{(96 + j).chr.to_s}")
93
98
  next if t["id"].nil? || t["id"].empty?
94
99
  @anchors[t["id"]] =
95
- anchor_struct(label, nil, @figure_lbl, "figure", t["unnumbered"])
100
+ anchor_struct(label, nil, @labels["figure"], "figure", t["unnumbered"])
96
101
  end
97
102
  end
98
103
 
99
104
  def hierarchical_figure_names(clause, num)
100
- c = IsoDoc::Function::XrefGen::Counter.new
105
+ c = IsoDoc::XrefGen::Counter.new
101
106
  j = 0
102
107
  clause.xpath(ns(".//figure | .//sourcecode[not(ancestor::example)]")).each do |t|
103
108
  if t.parent.name == "figure" then j += 1
@@ -108,7 +113,7 @@ module IsoDoc
108
113
  label = "#{num}#{hiersep}#{c.print}" +
109
114
  (j.zero? ? "" : "#{hierfigsep}#{(96 + j).chr.to_s}")
110
115
  next if t["id"].nil? || t["id"].empty?
111
- @anchors[t["id"]] = anchor_struct(label, nil, @figure_lbl, "figure",
116
+ @anchors[t["id"]] = anchor_struct(label, nil, @labels["figure"], "figure",
112
117
  t["unnumbered"])
113
118
  end
114
119
  end
@@ -116,7 +121,8 @@ module IsoDoc
116
121
  def sequential_formula_names(clause)
117
122
  clause&.first&.xpath(ns(MIDDLE_SECTIONS))&.each do |c|
118
123
  if c["id"] && @anchors[c["id"]]
119
- hierarchical_formula_names(c, @anchors[c["id"]][:label] || @anchors[c["id"]][:xref] || "???")
124
+ hierarchical_formula_names(c, @anchors[c["id"]][:label] ||
125
+ @anchors[c["id"]][:xref] || "???")
120
126
  else
121
127
  hierarchical_formula_names(c, "???")
122
128
  end
@@ -124,15 +130,33 @@ module IsoDoc
124
130
  end
125
131
 
126
132
  def hierarchical_formula_names(clause, num)
127
- c = IsoDoc::Function::XrefGen::Counter.new
128
- clause.xpath(ns(".//formula")).each do |t|
129
- next if t["id"].nil? || t["id"].empty?
130
- @anchors[t["id"]] =
131
- anchor_struct("#{num}-#{c.increment(t).print}", nil,
132
- t["inequality"] ? @inequality_lbl : @formula_lbl,
133
- "formula", t["unnumbered"])
133
+ c = IsoDoc::XrefGen::Counter.new
134
+ clause.xpath(ns(".//formula")).each do |t|
135
+ next if t["id"].nil? || t["id"].empty?
136
+ @anchors[t["id"]] =
137
+ anchor_struct("#{num}-#{c.increment(t).print}", nil,
138
+ t["inequality"] ? @labels["inequality"] : @labels["formula"],
139
+ "formula", t["unnumbered"])
140
+ end
141
+ end
142
+
143
+ def reference_names(ref)
144
+ super
145
+ @anchors[ref["id"]] = { xref: @anchors[ref["id"]][:xref].sub(/^\[/, '').sub(/\]$/, '') }
146
+ end
147
+
148
+ def termnote_anchor_names(docxml)
149
+ docxml.xpath(ns("//term[descendant::termnote]")).each do |t|
150
+ c = IsoDoc::XrefGen::Counter.new
151
+ notes = t.xpath(ns(".//termnote"))
152
+ notes.each do |n|
153
+ return if n["id"].nil? || n["id"].empty?
154
+ idx = notes.size == 1 ? "" : " #{c.increment(n).print}"
155
+ @anchors[n["id"]] = anchor_struct(idx, n, @labels["note_xref"],
156
+ "termnote", false)
157
+ end
158
+ end
134
159
  end
135
- end
136
160
  end
137
161
  end
138
162
  end
@@ -34,14 +34,16 @@ module Metanorma
34
34
  Metanorma::Input::Asciidoc.new.process(file, filename, @asciidoctor_backend)
35
35
  end
36
36
 
37
- def output(isodoc_node, outname, format, options={})
37
+ def output(isodoc_node, inname, outname, format, options={})
38
38
  case format
39
39
  when :html
40
- IsoDoc::ITU::HtmlConvert.new(options).convert(outname, isodoc_node)
40
+ IsoDoc::ITU::HtmlConvert.new(options).convert(inname, isodoc_node, nil, outname)
41
41
  when :doc
42
- IsoDoc::ITU::WordConvert.new(options).convert(outname, isodoc_node)
42
+ IsoDoc::ITU::WordConvert.new(options).convert(inname, isodoc_node, nil, outname)
43
43
  when :pdf
44
- IsoDoc::ITU::PdfConvert.new(options).convert(outname, isodoc_node)
44
+ IsoDoc::ITU::PdfConvert.new(options).convert(inname, isodoc_node, nil, outname)
45
+ when :presentation
46
+ IsoDoc::ITU::PresentationXMLConvert.new(options).convert(inname, isodoc_node, nil, outname)
45
47
  else
46
48
  super
47
49
  end
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module ITU
3
- VERSION = "1.0.18"
3
+ VERSION = "1.1.0"
4
4
  end
5
5
  end
@@ -27,7 +27,7 @@ Gem::Specification.new do |spec|
27
27
  spec.add_dependency "htmlentities", "~> 4.3.4"
28
28
  spec.add_dependency "ruby-jing"
29
29
  spec.add_dependency "metanorma-standoc", "~> 1.4.0"
30
- spec.add_dependency "isodoc", "~> 1.0.0"
30
+ spec.add_dependency "isodoc", "~> 1.1.0"
31
31
 
32
32
  spec.add_development_dependency "byebug", "~> 9.1"
33
33
  spec.add_development_dependency "equivalent-xml", "~> 0.6"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-itu
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.18
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-06-19 00:00:00.000000000 Z
11
+ date: 2020-06-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: htmlentities
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 1.0.0
61
+ version: 1.1.0
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 1.0.0
68
+ version: 1.1.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: byebug
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -279,6 +279,7 @@ files:
279
279
  - lib/isodoc/itu/itu.resolution.xsl
280
280
  - lib/isodoc/itu/metadata.rb
281
281
  - lib/isodoc/itu/pdf_convert.rb
282
+ - lib/isodoc/itu/presentation_xml_convert.rb
282
283
  - lib/isodoc/itu/ref.rb
283
284
  - lib/isodoc/itu/terms.rb
284
285
  - lib/isodoc/itu/word_convert.rb
@@ -292,7 +293,7 @@ homepage: https://github.com/metanorma/metanorma-itu
292
293
  licenses:
293
294
  - BSD-2-Clause
294
295
  metadata: {}
295
- post_install_message:
296
+ post_install_message:
296
297
  rdoc_options: []
297
298
  require_paths:
298
299
  - lib
@@ -307,9 +308,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
307
308
  - !ruby/object:Gem::Version
308
309
  version: '0'
309
310
  requirements: []
310
- rubyforge_project:
311
- rubygems_version: 2.7.6
312
- signing_key:
311
+ rubygems_version: 3.0.3
312
+ signing_key:
313
313
  specification_version: 4
314
314
  summary: Metanorma for the ITU
315
315
  test_files: []