metanorma-itu 2.6.1 → 2.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -15,12 +15,16 @@ module IsoDoc
15
15
  end
16
16
 
17
17
  def bibrender_relaton(xml, renderings)
18
- f = renderings[xml["id"]][:formattedref]
18
+ f = renderings[xml["id"]][:formattedref] or return
19
19
  ids = reference_format_start(xml)
20
20
  f &&= "<formattedref>#{ids}#{f}</formattedref>"
21
- # retain date in order to generate reference tag
22
- keep = "./docidentifier | ./uri | ./note | ./date | ./biblio-tag"
23
- xml.children = "#{f}#{xml.xpath(ns(keep)).to_xml}"
21
+ if x = xml.at(ns("./formattedref"))
22
+ x.replace(f)
23
+ elsif xml.children.empty?
24
+ xml << f
25
+ else
26
+ xml.children.first.previous = f
27
+ end
24
28
  end
25
29
 
26
30
  def multi_bibitem_ref_code(bib)
@@ -0,0 +1,118 @@
1
+ module IsoDoc
2
+ module Itu
3
+ class PresentationXMLConvert < IsoDoc::PresentationXMLConvert
4
+ def clause1(elem)
5
+ clause1_super?(elem) and return super
6
+ lbl = @xrefs.anchor(elem["id"], :label, false)
7
+ oldsuppressheadingnumbers = @suppressheadingnumbers
8
+ @suppressheadingnumbers = true
9
+ super
10
+ @suppressheadingnumbers = oldsuppressheadingnumbers
11
+ lbl.blank? || elem["unnumbered"] and return
12
+ elem.previous =
13
+ "<p keep-with-next='true' class='supertitle'>" \
14
+ "#{labelled_autonum(@i18n.get['section'].upcase, elem["id"], lbl)}</p>"
15
+ #"<span element='fmt-element-name'>#{@i18n.get['section'].upcase}</span> #{autonum(elem['id'], lbl)}</p>"
16
+ end
17
+
18
+ def clause1_super?(elem)
19
+ @doctype != "resolution" ||
20
+ !%w(sections bibliography).include?(elem.parent.name)
21
+ end
22
+
23
+ def annex1(elem)
24
+ if @doctype == "resolution"
25
+ annex1_resolution(elem)
26
+ else
27
+ super
28
+ annex1_non_resolution(elem)
29
+ end
30
+ end
31
+
32
+ def annex1_resolution(elem)
33
+ elem.elements.first.previous = annex1_supertitle(elem)
34
+ # TODO: do not alter title, alter semx/@element = title
35
+ t = elem.at(ns("./title")) and
36
+ t.children = "<strong>#{to_xml(t.children)}</strong>"
37
+ prefix_name(elem, {}, nil, "title")
38
+ end
39
+
40
+ def annex1_non_resolution(elem)
41
+ info = elem["obligation"] == "informative"
42
+ ins = elem.at(ns("./fmt-xref-label")) || elem.at(ns("./fmt-title"))
43
+ p = (info ? @i18n.inform_annex : @i18n.norm_annex)
44
+ .gsub("%", @i18n.doctype_dict[@meta.get[:doctype_original]] || "")
45
+ ins.next = %(<p class="annex_obligation"><span class='fmt-obligation'>#{p}</span></p>)
46
+ end
47
+
48
+ def annex1_supertitle(elem)
49
+ lbl = @xrefs.anchor(elem["id"], :label)
50
+ res = elem.at(ns("//bibdata/title[@type = 'resolution']"))
51
+ subhead = @i18n.l10n("(#{@i18n.get['to']} #{to_xml(res.children)})")
52
+ "<p class='supertitle'>#{autonum(elem['id'], lbl)}<br/>#{subhead}</p>"
53
+ end
54
+
55
+ def middle_title(isoxml)
56
+ s = isoxml.at(ns("//sections")) or return
57
+ titfn = isoxml.at(ns("//note[@type = 'title-footnote']"))
58
+ case @doctype
59
+ when "resolution"
60
+ middle_title_resolution(isoxml, s.children.first)
61
+ when "contribution"
62
+ else
63
+ middle_title_recommendation(isoxml, s.children.first)
64
+ end
65
+ #titfn and renumber_footnotes(isoxml)
66
+ end
67
+
68
+ # KILL
69
+ def renumber_footnotesx(isoxml)
70
+ (isoxml.xpath(ns("//fn")) -
71
+ isoxml.xpath(ns("//table//fn | //figure//fn")))
72
+ .each_with_index do |fn, i|
73
+ fn["reference"] = (i + 1).to_s
74
+ end
75
+ end
76
+
77
+ def middle_title_resolution(isoxml, out)
78
+ res = isoxml.at(ns("//bibdata/title[@type = 'resolution']"))
79
+ out.previous =
80
+ "<p class='zzSTDTitle1' align='center'>#{res.children.to_xml}</p>"
81
+ t = @meta.get[:doctitle] and
82
+ out.previous = "<p class='zzSTDTitle2'>#{t}</p>"
83
+ middle_title_resolution_subtitle(isoxml, out)
84
+ end
85
+
86
+ def middle_title_resolution_subtitle(isoxml, out)
87
+ ret = "<p align='center' class='zzSTDTitle2'><em>("
88
+ d = isoxml.at(ns("//bibdata/title[@type = 'resolution-placedate']"))
89
+ ret += "#{d.children.to_xml.strip}</em>)"
90
+ ret += "#{title_footnotes(isoxml)}</p>"
91
+ out.previous = ret
92
+ end
93
+
94
+ def middle_title_recommendation(isoxml, out)
95
+ ret = ""
96
+ type = @meta.get[:doctype]
97
+ @meta.get[:unpublished] && @meta.get[:draft_new_doctype] and
98
+ type = @meta.get[:draft_new_doctype]
99
+ id = @meta.get[:docnumber] and
100
+ ret += "<<p class='zzSTDTitle1'>#{type} #{id}</p>"
101
+ t = @meta.get[:doctitle] and
102
+ ret += "<p class='zzSTDTitle2'>#{t}"
103
+ ret += "#{title_footnotes(isoxml)}</p>"
104
+ s = @meta.get[:docsubtitle] and ret += "<p class='zzSTDTitle3'>#{s}</p>"
105
+ out.previous = ret
106
+ end
107
+
108
+ def title_footnotes(isoxml)
109
+ ret = ""
110
+ isoxml.xpath(ns("//note[@type = 'title-footnote']"))
111
+ .each_with_index do |f, i|
112
+ ret += "<fn reference='H#{i}'>#{f.remove.children.to_xml}</fn>"
113
+ end
114
+ ret
115
+ end
116
+ end
117
+ end
118
+ end
@@ -6,6 +6,7 @@ require_relative "presentation_bibdata"
6
6
  require_relative "presentation_preface"
7
7
  require_relative "presentation_ref"
8
8
  require_relative "presentation_contribution"
9
+ require_relative "presentation_section"
9
10
  require_relative "../../nokogiri/xml"
10
11
 
11
12
  module IsoDoc
@@ -27,11 +28,6 @@ module IsoDoc
27
28
  end
28
29
  end
29
30
 
30
- # KILL
31
- def quotesourcex(docxml)
32
- docxml.xpath(ns("//quote//source")).each { |f| eref1(f) }
33
- end
34
-
35
31
  def bracket_opt(text)
36
32
  text.nil? and return
37
33
  /^\[.+\]$/.match?(text) and return text
@@ -43,7 +39,7 @@ module IsoDoc
43
39
  desgn.name == "preferred" or return
44
40
  out = desgn.parent
45
41
  .at(ns("./fmt-preferred//semx[@element = 'preferred'][last()]"))
46
- out or return
42
+ out or return
47
43
  out.text.strip.empty? and return
48
44
  out.children = l10n "#{to_xml out.children}:"
49
45
  end
@@ -97,8 +93,24 @@ module IsoDoc
97
93
  end
98
94
  end
99
95
 
100
- def table_fn1(_table, fnote, _idx)
101
- fnote["reference"] += ")"
96
+ def fn_ref_label(fnote)
97
+ if fnote.ancestors("table, figure").empty? ||
98
+ !fnote.ancestors("name, fmt-name").empty?
99
+ super
100
+ else
101
+ "<sup>#{fn_label(fnote)}" \
102
+ "<span class='fmt-label-delim'>)</span></sup>"
103
+ end
104
+ end
105
+
106
+ def fn_body_label(fnote)
107
+ if fnote.ancestors("table, figure").empty? ||
108
+ !fnote.ancestors("name, fmt-name").empty?
109
+ super
110
+ else
111
+ "<sup>#{fn_label(fnote)}" \
112
+ "<span class='fmt-label-delim'>)</span></sup>"
113
+ end
102
114
  end
103
115
 
104
116
  def get_eref_linkend(node)
@@ -122,69 +134,6 @@ module IsoDoc
122
134
  { group: "'" }
123
135
  end
124
136
 
125
- # KILL
126
- def clause1x(elem)
127
- clause1_super?(elem) and return super
128
- @suppressheadingnumbers || elem["unnumbered"] and return
129
- t = elem.at(ns("./title")) and t["depth"] = "1"
130
- lbl = @xrefs.anchor(elem["id"], :label, false)
131
- lbl.blank? and return
132
- elem.previous =
133
- "<p keep-with-next='true' class='supertitle'>" \
134
- "#{@i18n.get['section'].upcase} #{lbl}</p>"
135
- end
136
-
137
- def clause1(elem)
138
- clause1_super?(elem) and return super
139
- lbl = @xrefs.anchor(elem["id"], :label, false)
140
- oldsuppressheadingnumbers = @suppressheadingnumbers
141
- @suppressheadingnumbers = true
142
- super
143
- @suppressheadingnumbers = oldsuppressheadingnumbers
144
- lbl.blank? || elem["unnumbered"] and return
145
- elem.previous =
146
- "<p keep-with-next='true' class='supertitle'>" \
147
- "#{labelled_autonum(@i18n.get['section'].upcase, elem["id"], lbl)}</p>"
148
- #"<span element='fmt-element-name'>#{@i18n.get['section'].upcase}</span> #{autonum(elem['id'], lbl)}</p>"
149
- end
150
-
151
- def clause1_super?(elem)
152
- @doctype != "resolution" ||
153
- !%w(sections bibliography).include?(elem.parent.name)
154
- end
155
-
156
- def annex1(elem)
157
- if @doctype == "resolution"
158
- annex1_resolution(elem)
159
- else
160
- super
161
- annex1_non_resolution(elem)
162
- end
163
- end
164
-
165
- def annex1_resolution(elem)
166
- elem.elements.first.previous = annex1_supertitle(elem)
167
- # TODO: do not alter title, alter semx/@element = title
168
- t = elem.at(ns("./title")) and
169
- t.children = "<strong>#{to_xml(t.children)}</strong>"
170
- prefix_name(elem, {}, nil, "title")
171
- end
172
-
173
- def annex1_non_resolution(elem)
174
- info = elem["obligation"] == "informative"
175
- ins = elem.at(ns("./fmt-xref-label")) || elem.at(ns("./fmt-title"))
176
- p = (info ? @i18n.inform_annex : @i18n.norm_annex)
177
- .sub("%", @i18n.doctype_dict[@meta.get[:doctype_original]] || "")
178
- ins.next = %(<p class="annex_obligation"><span class='fmt-obligation'>#{p}</span></p>)
179
- end
180
-
181
- def annex1_supertitle(elem)
182
- lbl = @xrefs.anchor(elem["id"], :label)
183
- res = elem.at(ns("//bibdata/title[@type = 'resolution']"))
184
- subhead = @i18n.l10n("(#{@i18n.get['to']} #{to_xml(res.children)})")
185
- "<p class='supertitle'>#{autonum(elem['id'], lbl)}<br/>#{subhead}</p>"
186
- end
187
-
188
137
  def ol_depth(node)
189
138
  node["class"] == "steps" ||
190
139
  node.at(".//ancestor::xmlns:ol[@class = 'steps']") or return super
@@ -197,67 +146,6 @@ module IsoDoc
197
146
  type
198
147
  end
199
148
 
200
- def middle_title(isoxml)
201
- s = isoxml.at(ns("//sections")) or return
202
- titfn = isoxml.at(ns("//note[@type = 'title-footnote']"))
203
- case @doctype
204
- when "resolution"
205
- middle_title_resolution(isoxml, s.children.first)
206
- when "contribution"
207
- else
208
- middle_title_recommendation(isoxml, s.children.first)
209
- end
210
- titfn and renumber_footnotes(isoxml)
211
- end
212
-
213
- def renumber_footnotes(isoxml)
214
- (isoxml.xpath(ns("//fn")) -
215
- isoxml.xpath(ns("//table//fn | //figure//fn")))
216
- .each_with_index do |fn, i|
217
- fn["reference"] = (i + 1).to_s
218
- end
219
- end
220
-
221
- def middle_title_resolution(isoxml, out)
222
- res = isoxml.at(ns("//bibdata/title[@type = 'resolution']"))
223
- out.previous =
224
- "<p class='zzSTDTitle1' align='center'>#{res.children.to_xml}</p>"
225
- t = @meta.get[:doctitle] and
226
- out.previous = "<p class='zzSTDTitle2'>#{t}</p>"
227
- middle_title_resolution_subtitle(isoxml, out)
228
- end
229
-
230
- def middle_title_resolution_subtitle(isoxml, out)
231
- ret = "<p align='center' class='zzSTDTitle2'><em>("
232
- d = isoxml.at(ns("//bibdata/title[@type = 'resolution-placedate']"))
233
- ret += "#{d.children.to_xml.strip}</em>)"
234
- ret += "#{title_footnotes(isoxml)}</p>"
235
- out.previous = ret
236
- end
237
-
238
- def middle_title_recommendation(isoxml, out)
239
- ret = ""
240
- type = @meta.get[:doctype]
241
- @meta.get[:unpublished] && @meta.get[:draft_new_doctype] and
242
- type = @meta.get[:draft_new_doctype]
243
- id = @meta.get[:docnumber] and
244
- ret += "<<p class='zzSTDTitle1'>#{type} #{id}</p>"
245
- t = @meta.get[:doctitle] and
246
- ret += "<p class='zzSTDTitle2'>#{t}"
247
- ret += "#{title_footnotes(isoxml)}</p>"
248
- s = @meta.get[:docsubtitle] and ret += "<p class='zzSTDTitle3'>#{s}</p>"
249
- out.previous = ret
250
- end
251
-
252
- def title_footnotes(isoxml)
253
- ret = ""
254
- isoxml.xpath(ns("//note[@type = 'title-footnote']"))
255
- .each_with_index do |f, i|
256
- ret += "<fn reference='H#{i}'>#{f.remove.children.to_xml}</fn>"
257
- end
258
- ret
259
- end
260
-
261
149
  def dl(xml)
262
150
  super
263
151
  (xml.xpath(ns("//dl")) -
@@ -56,16 +56,6 @@ module IsoDoc
56
56
  ")"
57
57
  end
58
58
 
59
- # KILL
60
- def sequential_figure_bodyx(subfig, counter, elem, klass, container: false)
61
- label = counter.print
62
- label &&= label + subfigure_label(subfig)
63
- @anchors[elem["id"]] = anchor_struct(
64
- label, container ? elem : nil, @labels[klass] || klass.capitalize,
65
- klass, elem["unnumbered"]
66
- )
67
- end
68
-
69
59
  def figure_anchor(elem, sublabel, label, klass, container: false)
70
60
  if sublabel
71
61
  subfigure_anchor(elem, sublabel, label, klass, container: false)
@@ -96,15 +86,6 @@ module IsoDoc
96
86
  end
97
87
  end
98
88
 
99
- # KILL
100
- def hierarchical_figure_bodyx(num, subfignum, counter, block, klass)
101
- label = "#{num}#{hier_separator}#{counter.print}" + subfigure_label(subfignum)
102
- @anchors[block["id"]] = anchor_struct(
103
- label, nil, @labels[klass] || klass.capitalize,
104
- klass, block["unnumbered"]
105
- )
106
- end
107
-
108
89
  def sequential_formula_names(clause, container: false)
109
90
  clause.first&.xpath(ns(middle_sections))&.each do |c|
110
91
  if c["id"] && @anchors[c["id"]]
@@ -599,17 +599,9 @@ It is included for convenience, in case processing the citation to extract the a
599
599
  <a:documentation>The caption of the block</a:documentation>
600
600
  </ref>
601
601
  </optional>
602
- <oneOrMore>
603
- <choice>
604
- <text>
605
- <a:documentation>The computer code or other such text presented in the block, as a single unformatted string.
606
- (The string should be treated as pre-formatted text, with whitespace treated as significant)</a:documentation>
607
- </text>
608
- <ref name="callout">
609
- <a:documentation>Zero or more cross-references; these are intended to be embedded within the content string, and link to annotations</a:documentation>
610
- </ref>
611
- </choice>
612
- </oneOrMore>
602
+ <ref name="sourcecodebody">
603
+ <a:documentation>The sourcecode content</a:documentation>
604
+ </ref>
613
605
  <zeroOrMore>
614
606
  <ref name="annotation">
615
607
  <a:documentation>Annotations to the source code; each annotation consists of zero or more paragraphs,
@@ -628,17 +620,9 @@ and is intended to be referenced by a callout within the source code</a:document
628
620
  <a:documentation>The caption of the block</a:documentation>
629
621
  </ref>
630
622
  </optional>
631
- <oneOrMore>
632
- <choice>
633
- <text>
634
- <a:documentation>The computer code or other such text presented in the block, as a single unformatted string.
635
- (The string should be treated as pre-formatted text, with whitespace treated as significant)</a:documentation>
636
- </text>
637
- <ref name="callout">
638
- <a:documentation>Zero or more cross-references; these are intended to be embedded within the content string, and link to annotations</a:documentation>
639
- </ref>
640
- </choice>
641
- </oneOrMore>
623
+ <ref name="sourcecodebody">
624
+ <a:documentation>The sourcecode content</a:documentation>
625
+ </ref>
642
626
  <zeroOrMore>
643
627
  <ref name="annotation">
644
628
  <a:documentation>Annotations to the source code; each annotation consists of zero or more paragraphs,
@@ -651,6 +635,20 @@ and is intended to be referenced by a callout within the source code</a:document
651
635
  </ref>
652
636
  </zeroOrMore>
653
637
  </define>
638
+ <define name="sourcecodebody">
639
+ <a:documentation>The computer code or other such text presented in the block, as a single unformatted string.
640
+ (The string should be treated as pre-formatted text, with whitespace treated as significant)</a:documentation>
641
+ <element name="body">
642
+ <oneOrMore>
643
+ <choice>
644
+ <text/>
645
+ <ref name="callout">
646
+ <a:documentation>Zero or more cross-references; these are intended to be embedded within the content string, and link to annotations</a:documentation>
647
+ </ref>
648
+ </choice>
649
+ </oneOrMore>
650
+ </element>
651
+ </define>
654
652
  <define name="pre">
655
653
  <a:documentation>Pre-formatted block. Wrapper for text to be rendered with fixed-width typeface, and preserving spaces including line breaks.
656
654
  They are intended for a restricted number of functions, most typically ASCII Art (which is still in prominent use in some
@@ -1672,18 +1670,25 @@ which can be bookmarks as well as block or section references</a:documentation>
1672
1670
  </optional>
1673
1671
  </define>
1674
1672
  <define name="XrefBody">
1675
- <oneOrMore>
1676
- <ref name="PureTextElement">
1677
- <a:documentation>The textual content of the element. The `text` is what we wish to show the link as (e.g., the "content" of `&lt;xx&gt;my link text&lt;/xx&gt;`)</a:documentation>
1678
- </ref>
1679
- </oneOrMore>
1673
+ <a:documentation>The textual content of the element. The `text` is what we wish to show the link as (e.g., the "content" of `&lt;xx&gt;my link text&lt;/xx&gt;`)</a:documentation>
1674
+ <optional>
1675
+ <element name="display-text">
1676
+ <oneOrMore>
1677
+ <ref name="PureTextElement"/>
1678
+ </oneOrMore>
1679
+ </element>
1680
+ </optional>
1680
1681
  </define>
1681
1682
  <define name="ErefBody">
1682
- <oneOrMore>
1683
- <ref name="PureTextElement">
1684
- <a:documentation>The textual content of the element. The `text` is what we wish to show the link as (e.g., the "content" of `&lt;xx&gt;my link text&lt;/xx&gt;`)</a:documentation>
1685
- </ref>
1686
- </oneOrMore>
1683
+ <optional>
1684
+ <element name="display-text">
1685
+ <oneOrMore>
1686
+ <ref name="PureTextElement">
1687
+ <a:documentation>The textual content of the element. The `text` is what we wish to show the link as (e.g., the "content" of `&lt;xx&gt;my link text&lt;/xx&gt;`)</a:documentation>
1688
+ </ref>
1689
+ </oneOrMore>
1690
+ </element>
1691
+ </optional>
1687
1692
  </define>
1688
1693
  <define name="fn">
1689
1694
  <a:documentation>Inline reference to a paragraph or paragraphs, appearing as a footnote.
@@ -24,7 +24,8 @@ module Metanorma
24
24
  end
25
25
 
26
26
  def title_defaultlang(node, xml)
27
- a = node.attr("title") || node.attr("title-#{@lang}") || node.title
27
+ a = node.attr("title") || node.attr("title-#{@lang}") ||
28
+ node.attr("doctitle")
28
29
  insert_title(xml, "main", @lang, a)
29
30
  if a = node.attr("annextitle") || node.attr("annextitle-#{@lang}")
30
31
  insert_title(xml, "annex", @lang, a)
@@ -33,6 +33,15 @@
33
33
  </zeroOrMore>
34
34
  </element>
35
35
  </define>
36
+ <define name="fn" combine="interleave">
37
+ <optional>
38
+ <attribute name="hiddenref">
39
+ <a:documentation>If true, number the footnote as normal, but suppress display of the footnote reference in the document body.
40
+ This is done if the footnote reference is already presented in some other form, e.g. within a figure image.</a:documentation>
41
+ <data type="boolean"/>
42
+ </attribute>
43
+ </optional>
44
+ </define>
36
45
  <define name="index-primary">
37
46
  <element name="primary">
38
47
  <oneOrMore>
@@ -245,23 +254,9 @@
245
254
  <a:documentation>The caption of the block</a:documentation>
246
255
  </ref>
247
256
  </optional>
248
- <oneOrMore>
249
- <choice>
250
- <text>
251
- <a:documentation>The computer code or other such text presented in the block, as a single unformatted string.
252
- (The string should be treated as pre-formatted text, with whitespace treated as significant)</a:documentation>
253
- </text>
254
- <ref name="callout">
255
- <a:documentation>Zero or more cross-references; these are intended to be embedded within the content string, and link to annotations</a:documentation>
256
- </ref>
257
- <ref name="xref">
258
- <a:documentation>Hyperlink of code segment to another part of the document</a:documentation>
259
- </ref>
260
- <ref name="eref">
261
- <a:documentation>Hyperlink of code segment to external bibliographic resource</a:documentation>
262
- </ref>
263
- </choice>
264
- </oneOrMore>
257
+ <ref name="sourcecodebody">
258
+ <a:documentation>The sourcecode content</a:documentation>
259
+ </ref>
265
260
  <zeroOrMore>
266
261
  <ref name="annotation">
267
262
  <a:documentation>Annotations to the source code; each annotation consists of zero or more paragraphs,
@@ -277,6 +272,26 @@ and is intended to be referenced by a callout within the source code</a:document
277
272
  <a:documentation>A source for the block</a:documentation>
278
273
  </ref>
279
274
  </define>
275
+ <define name="sourcecodebody">
276
+ <a:documentation>The computer code or other such text presented in the block, as a single unformatted string.
277
+ (The string should be treated as pre-formatted text, with whitespace treated as significant)</a:documentation>
278
+ <element name="body">
279
+ <oneOrMore>
280
+ <choice>
281
+ <text/>
282
+ <ref name="callout">
283
+ <a:documentation>Zero or more cross-references; these are intended to be embedded within the content string, and link to annotations</a:documentation>
284
+ </ref>
285
+ <ref name="xref">
286
+ <a:documentation>Hyperlink of code segment to another part of the document</a:documentation>
287
+ </ref>
288
+ <ref name="eref">
289
+ <a:documentation>Hyperlink of code segment to external bibliographic resource</a:documentation>
290
+ </ref>
291
+ </choice>
292
+ </oneOrMore>
293
+ </element>
294
+ </define>
280
295
  <define name="sections">
281
296
  <element name="sections">
282
297
  <oneOrMore>
@@ -97,7 +97,6 @@ module Metanorma
97
97
 
98
98
  def itu_identifier_validate(xmldoc)
99
99
  xmldoc.xpath("//bibdata/docidentifier[@type = 'ITU']").each do |x|
100
- warn x.text
101
100
  /^SG \d+/.match?(x.text) ||
102
101
  /^ITU-[RTD] [AD-VX-Z]\.\d+(\.\d+)?$/.match?(x.text) or
103
102
  @log.add("Style", nil, "#{x.text} does not match ITU document " \
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module Itu
3
- VERSION = "2.6.1".freeze
3
+ VERSION = "2.6.2".freeze
4
4
  end
5
5
  end
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: 2.6.1
4
+ version: 2.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-03-04 00:00:00.000000000 Z
11
+ date: 2025-03-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: metanorma-standoc
@@ -328,6 +328,7 @@ files:
328
328
  - lib/isodoc/itu/presentation_contribution.rb
329
329
  - lib/isodoc/itu/presentation_preface.rb
330
330
  - lib/isodoc/itu/presentation_ref.rb
331
+ - lib/isodoc/itu/presentation_section.rb
331
332
  - lib/isodoc/itu/presentation_xml_convert.rb
332
333
  - lib/isodoc/itu/ref.rb
333
334
  - lib/isodoc/itu/terms.rb