metanorma-itu 2.6.7 → 2.6.9
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.
- checksums.yaml +4 -4
- data/lib/isodoc/itu/html/_coverpage.css +7 -1
- data/lib/isodoc/itu/html/header.html +8 -8
- data/lib/isodoc/itu/html/html_itu_titlepage.html +2 -2
- data/lib/isodoc/itu/html/htmlstyle.css +7 -1
- data/lib/isodoc/itu/html/word_itu_intro.html +4 -2
- data/lib/isodoc/itu/html/word_itu_titlepage.html +1 -1
- data/lib/isodoc/itu/i18n-ar.yaml +1 -0
- data/lib/isodoc/itu/i18n-de.yaml +1 -0
- data/lib/isodoc/itu/i18n-en.yaml +1 -0
- data/lib/isodoc/itu/i18n-es.yaml +1 -0
- data/lib/isodoc/itu/i18n-fr.yaml +1 -0
- data/lib/isodoc/itu/i18n-ru.yaml +1 -0
- data/lib/isodoc/itu/i18n-zh-Hans.yaml +1 -0
- data/lib/isodoc/itu/itu.implementers-guide.xsl +9014 -10001
- data/lib/isodoc/itu/itu.in-force.xsl +9014 -10001
- data/lib/isodoc/itu/itu.recommendation-annex.xsl +9014 -10001
- data/lib/isodoc/itu/itu.recommendation-supplement.xsl +9014 -10001
- data/lib/isodoc/itu/itu.recommendation.xsl +9014 -10001
- data/lib/isodoc/itu/itu.resolution.xsl +9014 -10001
- data/lib/isodoc/itu/itu.service-publication.xsl +9014 -10001
- data/lib/isodoc/itu/itu.technical-paper.xsl +9014 -10001
- data/lib/isodoc/itu/itu.technical-report.xsl +9014 -10001
- data/lib/isodoc/itu/metadata.rb +2 -2
- data/lib/isodoc/itu/presentation_contribution.rb +38 -37
- data/lib/isodoc/itu/presentation_preface.rb +13 -9
- data/lib/isodoc/itu/presentation_section.rb +25 -9
- data/lib/metanorma/itu/boilerplate.adoc +3 -3
- data/lib/metanorma/itu/cleanup_section.rb +20 -15
- data/lib/metanorma/itu/converter.rb +0 -8
- data/lib/metanorma/itu/front_id.rb +6 -0
- data/lib/metanorma/itu/isodoc.rng +19 -2
- data/lib/metanorma/itu/version.rb +1 -1
- data/metanorma-itu.gemspec +1 -2
- metadata +4 -18
data/lib/isodoc/itu/metadata.rb
CHANGED
@@ -120,7 +120,7 @@ module IsoDoc
|
|
120
120
|
def docid(xml, _out)
|
121
121
|
{ docnumber: "ITU", recommendationnumber: "ITU-Recommendation",
|
122
122
|
docnumber_lang: "ITU-lang", docnumber_td: "ITU-TemporaryDocument",
|
123
|
-
docnumber_provisional: "ITU-provisional" }
|
123
|
+
docnumber_provisional: "ITU-provisional", docnumber_iso: "ISO" }
|
124
124
|
.each do |k, v|
|
125
125
|
dn = xml.at(ns("//bibdata/docidentifier[@type = '#{v}']")) and
|
126
126
|
set(k, dn.text)
|
@@ -168,7 +168,7 @@ module IsoDoc
|
|
168
168
|
set(:doctype_display, "Recommendation")
|
169
169
|
else super
|
170
170
|
end
|
171
|
-
d = get[:
|
171
|
+
d = get[:doctype_display] and
|
172
172
|
set(:draft_new_doctype, @labels["draft_new"].sub("%", d))
|
173
173
|
end
|
174
174
|
|
@@ -11,25 +11,25 @@ module IsoDoc
|
|
11
11
|
@doctype == "contribution" or return
|
12
12
|
bureau = bold_and_upcase(@meta.get[:bureau_full])
|
13
13
|
<<~TABLE
|
14
|
-
<clause unnumbered="true" type="contribution-metadata">
|
15
|
-
<table class="contribution-metadata" unnumbered="true" width="100%">
|
14
|
+
<clause #{add_id_text} unnumbered="true" type="contribution-metadata">
|
15
|
+
<table #{add_id_text} class="contribution-metadata" unnumbered="true" width="100%">
|
16
16
|
<colgroup><col width="11.8%"/><col width="41.2%"/><col width="47.0%"/></colgroup>
|
17
17
|
<thead>
|
18
|
-
<tr><th rowspan="3"><image height="56" width="56" src="#{@meta.get[:logo_small]}"/></th>
|
19
|
-
<td rowspan="3"><p style="font-size:8pt;margin-top:6pt;margin-bottom:0pt;">#{@i18n.international_telecommunication_union.upcase}</p>
|
18
|
+
<tr #{add_id_text}><th rowspan="3" #{add_id_text}><image height="56" width="56" src="#{@meta.get[:logo_small]}"/></th>
|
19
|
+
<td #{add_id_text} rowspan="3"><p style="font-size:8pt;margin-top:6pt;margin-bottom:0pt;">#{@i18n.international_telecommunication_union.upcase}</p>
|
20
20
|
<p class="bureau_big" style="font-size:13pt;margin-top:6pt;margin-bottom:0pt;">#{bureau}</p>
|
21
21
|
<p style="font-size:10pt;margin-top:6pt;margin-bottom:0pt;">#{@i18n.studyperiod.sub('%', @meta.get[:study_group_period]).upcase}</p></th>
|
22
|
-
<th align="right"><p style="font-size:16pt;">#{@meta.get[:docnumber]}</p></th></tr>
|
23
|
-
<tr><th align="right"><p style="font-size:14pt;">#{@meta.get[:group].upcase}</p></th></tr>
|
24
|
-
<tr>
|
25
|
-
<th align="right"><p style="font-size:14pt;">#{@i18n.l10n("#{@i18n.original}: #{@i18n.current_language}")}</p></th>
|
22
|
+
<th #{add_id_text} align="right"><p style="font-size:16pt;">#{@meta.get[:docnumber]}</p></th></tr>
|
23
|
+
<tr #{add_id_text}><th #{add_id_text} align="right"><p style="font-size:14pt;">#{@meta.get[:group].upcase}</p></th></tr>
|
24
|
+
<tr #{add_id_text}>
|
25
|
+
<th #{add_id_text} align="right"><p style="font-size:14pt;">#{@i18n.l10n("#{@i18n.original}: #{@i18n.current_language}")}</p></th>
|
26
26
|
</tr></thead>
|
27
27
|
<tbody>
|
28
|
-
<tr><th align="left" width="95">#{colon_i18n(@i18n.questions)}</th><td>#{@meta.get[:questions]}</td>
|
29
|
-
<td align="right">#{@i18n.l10n("#{@meta.get[:meeting_place]}, #{@meta.get[:meeting_date]}")}</td></tr>
|
30
|
-
<tr><th align="center" colspan="3">#{@i18n.get['doctype_dict']['contribution'].upcase}</th></tr>
|
31
|
-
<tr><th align="left" width="95">#{colon_i18n(@i18n.document_source)}</th><td colspan="2">#{@meta.get[:source]}</td></tr>
|
32
|
-
<tr><th align="left" width="95">#{colon_i18n(@i18n.title)}</th><td colspan="2">#{@meta.get[:doctitle_en]}</td></tr>
|
28
|
+
<tr #{add_id_text}><th #{add_id_text} align="left" width="95">#{colon_i18n(@i18n.questions)}</th><td #{add_id_text}>#{@meta.get[:questions]}</td>
|
29
|
+
<td #{add_id_text} align="right">#{@i18n.l10n("#{@meta.get[:meeting_place]}, #{@meta.get[:meeting_date]}")}</td></tr>
|
30
|
+
<tr #{add_id_text}><th #{add_id_text} align="center" colspan="3">#{@i18n.get['doctype_dict']['contribution'].upcase}</th></tr>
|
31
|
+
<tr #{add_id_text}><th #{add_id_text} align="left" width="95">#{colon_i18n(@i18n.document_source)}</th><td #{add_id_text} colspan="2">#{@meta.get[:source]}</td></tr>
|
32
|
+
<tr #{add_id_text}><th #{add_id_text} align="left" width="95">#{colon_i18n(@i18n.title)}</th><td #{add_id_text} colspan="2">#{@meta.get[:doctitle_en]}</td></tr>
|
33
33
|
#{contribution_table_contacts}
|
34
34
|
</tbody></table>
|
35
35
|
</clause>
|
@@ -55,7 +55,8 @@ module IsoDoc
|
|
55
55
|
end
|
56
56
|
n.map do |x|
|
57
57
|
lbl = colon_i18n(@i18n.contact)
|
58
|
-
"<tr
|
58
|
+
"<tr #{add_id_text}>" \
|
59
|
+
"<th #{add_id_text} align='left' width='95'>#{lbl}</th>#{x}</tr>"
|
59
60
|
end.join("\n")
|
60
61
|
end
|
61
62
|
|
@@ -63,10 +64,10 @@ module IsoDoc
|
|
63
64
|
@meta.get[:emails][idx] and
|
64
65
|
e = "<br/>#{@i18n.email}<tab/>#{@meta.get[:emails][idx]}"
|
65
66
|
<<~CELL
|
66
|
-
<td>#{@meta.get[:authors][idx]}<br/>
|
67
|
+
<td #{add_id_text}>#{@meta.get[:authors][idx]}<br/>
|
67
68
|
#{@meta.get[:affiliations][idx]}<br/>
|
68
69
|
#{@meta.get[:addresses][idx]}</td>
|
69
|
-
<td>#{@i18n.tel_abbrev}<tab/>#{@meta.get[:phones][idx]}#{e}</td>
|
70
|
+
<td #{add_id_text}>#{@i18n.tel_abbrev}<tab/>#{@meta.get[:phones][idx]}#{e}</td>
|
70
71
|
CELL
|
71
72
|
end
|
72
73
|
|
@@ -108,7 +109,7 @@ module IsoDoc
|
|
108
109
|
def contribution_justification_auths
|
109
110
|
auths = contrib_justification_contacts
|
110
111
|
auths_tail = auths[1..auths.size].map do |x|
|
111
|
-
"<tr><td colspan='2'>#{x}</td></td>"
|
112
|
+
"<tr #{add_id_text}><td #{add_id_text} colspan='2'>#{x}</td></td>"
|
112
113
|
end.join("\n")
|
113
114
|
[auths, auths_tail]
|
114
115
|
end
|
@@ -118,33 +119,33 @@ module IsoDoc
|
|
118
119
|
annex = doc.at(ns("//annex[@type = 'justification']")) or return
|
119
120
|
auths, auths_tail = contribution_justification_auths
|
120
121
|
annex.children = <<~TABLE
|
121
|
-
<title>#{contribution_justification_title(doc)}</title>
|
122
|
-
<table class="contribution-metadata" unnumbered="true" width="100%">
|
122
|
+
<title #{add_id_text}>#{contribution_justification_title(doc)}</title>
|
123
|
+
<table #{add_id_text} class="contribution-metadata" unnumbered="true" width="100%">
|
123
124
|
<colgroup><col width="15.9%"/><col width="6.1%"/><col width="45.5%"/><col width="17.4%"/><col width="15.1%"/></colgroup>
|
124
125
|
<tbody>
|
125
|
-
<tr>
|
126
|
-
<th align="left">#{colon_i18n(@i18n.questions)}</th><td>#{@meta.get[:questions]}</td>
|
127
|
-
<th align="left">Proposed new ITU-T #{@meta.get[:subdoctype]}</th>
|
128
|
-
<td colspan="2">#{@i18n.l10n("#{@meta.get[:meeting_place]}, #{@meta.get[:meeting_date]}")}</td>
|
126
|
+
<tr #{add_id_text}>
|
127
|
+
<th #{add_id_text} align="left">#{colon_i18n(@i18n.questions)}</th><td #{add_id_text}>#{@meta.get[:questions]}</td>
|
128
|
+
<th #{add_id_text} align="left">Proposed new ITU-T #{@meta.get[:subdoctype]}</th>
|
129
|
+
<td #{add_id_text} colspan="2">#{@i18n.l10n("#{@meta.get[:meeting_place]}, #{@meta.get[:meeting_date]}")}</td>
|
129
130
|
</tr>
|
130
|
-
<tr><th align="left">Reference and title:</th>
|
131
|
-
<td colspan="4">Draft new #{@meta.get[:subdoctype]} on “#{@meta.get[:doctitle_en]}”</td>
|
131
|
+
<tr #{add_id_text}><th #{add_id_text} align="left">Reference and title:</th>
|
132
|
+
<td #{add_id_text} colspan="4">Draft new #{@meta.get[:subdoctype]} on “#{@meta.get[:doctitle_en]}”</td>
|
132
133
|
</tr>
|
133
|
-
<tr>
|
134
|
-
<th align="left">Base text:</th><td colspan="2">#{extract_clause_data(annex, 'basetext')}</td>
|
135
|
-
<th align="left">Timing:</th><td>#{@meta.get[:timing]}</td>
|
134
|
+
<tr #{add_id_text}>
|
135
|
+
<th #{add_id_text} align="left">Base text:</th><td #{add_id_text} colspan="2">#{extract_clause_data(annex, 'basetext')}</td>
|
136
|
+
<th #{add_id_text} align="left">Timing:</th><td #{add_id_text}>#{@meta.get[:timing]}</td>
|
136
137
|
</tr>
|
137
|
-
<tr><th align="left" rowspan="#{auths.size - 1}">Editor(s):</th>
|
138
|
-
<td colspan="2">#{auths[0]}</td>
|
139
|
-
<th align="left" rowspan="#{auths.size - 1}">Approval process:</th>
|
140
|
-
<td rowspan="#{auths.size - 1}">#{@meta.get[:approval_process]}</td>
|
138
|
+
<tr #{add_id_text}><th #{add_id_text} align="left" rowspan="#{auths.size - 1}">Editor(s):</th>
|
139
|
+
<td #{add_id_text} colspan="2">#{auths[0]}</td>
|
140
|
+
<th #{add_id_text} align="left" rowspan="#{auths.size - 1}">Approval process:</th>
|
141
|
+
<td #{add_id_text} rowspan="#{auths.size - 1}">#{@meta.get[:approval_process]}</td>
|
141
142
|
</tr>
|
142
143
|
#{auths_tail}
|
143
|
-
<tr><td colspan="5"><p><strong>Scope</strong> (defines the intent or object of the Recommendation and the aspects covered, thereby indicating the limits of its applicability):</p>#{extract_clause_data(annex, 'scope')}</td></tr>
|
144
|
-
<tr><td colspan="5"><p><strong>Summary</strong> (provides a brief overview of the purpose and contents of the Recommendation, thus permitting readers to judge its usefulness for their work):</p>#{extract_clause_data(annex, 'summary')}</td></tr>
|
145
|
-
<tr><td colspan="5"><p><strong>Relations to ITU-T Recommendations or to other standards</strong> (approved or under development):</p>#{extract_clause_data(annex, 'relatedstandards')}</td></tr>
|
146
|
-
<tr><td colspan="5"><p><strong>Liaisons with other study groups or with other standards bodies:</strong></p>#{extract_clause_data(annex, 'liaisons')}</td></tr>
|
147
|
-
<tr><td colspan="5"><p><strong>Supporting members that are committing to contributing actively to the work item:</strong></p>#{extract_clause_data(annex, 'supportingmembers')}</td></tr>
|
144
|
+
<tr #{add_id_text}><td #{add_id_text} colspan="5"><p><strong>Scope</strong> (defines the intent or object of the Recommendation and the aspects covered, thereby indicating the limits of its applicability):</p>#{extract_clause_data(annex, 'scope')}</td></tr>
|
145
|
+
<tr #{add_id_text}><td #{add_id_text} colspan="5"><p><strong>Summary</strong> (provides a brief overview of the purpose and contents of the Recommendation, thus permitting readers to judge its usefulness for their work):</p>#{extract_clause_data(annex, 'summary')}</td></tr>
|
146
|
+
<tr #{add_id_text}><td #{add_id_text} colspan="5"><p><strong>Relations to ITU-T Recommendations or to other standards</strong> (approved or under development):</p>#{extract_clause_data(annex, 'relatedstandards')}</td></tr>
|
147
|
+
<tr #{add_id_text}><td #{add_id_text} colspan="5"><p><strong>Liaisons with other study groups or with other standards bodies:</strong></p>#{extract_clause_data(annex, 'liaisons')}</td></tr>
|
148
|
+
<tr #{add_id_text}><td #{add_id_text} colspan="5"><p><strong>Supporting members that are committing to contributing actively to the work item:</strong></p>#{extract_clause_data(annex, 'supportingmembers')}</td></tr>
|
148
149
|
</tbody>
|
149
150
|
</table>
|
150
151
|
TABLE
|
@@ -42,8 +42,8 @@ module IsoDoc
|
|
42
42
|
ed_lbl &&= l10n("#{ed_lbl.capitalize}:")
|
43
43
|
mail_lbl = l10n("#{@i18n.get['email']}: ")
|
44
44
|
ret = <<~SUBMITTING
|
45
|
-
<clause
|
46
|
-
<table
|
45
|
+
<clause #{add_id_text} type="editors">
|
46
|
+
<table #{add_id_text} unnumbered="true"><tbody>
|
47
47
|
SUBMITTING
|
48
48
|
ret += editor_table_entries(eds, ed_lbl, mail_lbl)
|
49
49
|
"#{ret}</tbody></table></clause>"
|
@@ -56,8 +56,10 @@ module IsoDoc
|
|
56
56
|
mail = "#{mail_lbl}<link target='mailto:#{n[:email]}'>" \
|
57
57
|
"#{n[:email]}</link>"
|
58
58
|
aff = n[:affiliation].empty? ? "" : "<br/>#{n[:affiliation]}"
|
59
|
-
th = "<th>#{i.zero? ? ed_lbl : ''}</th>"
|
60
|
-
m <<
|
59
|
+
th = "<th #{add_id_text}>#{i.zero? ? ed_lbl : ''}</th>"
|
60
|
+
m << <<~XML
|
61
|
+
<tr #{add_id_text}>#{th}<td #{add_id_text}>#{n[:name]}#{aff}</td><td #{add_id_text}>#{mail}</td></tr>
|
62
|
+
XML
|
61
63
|
end.join("\n")
|
62
64
|
end
|
63
65
|
|
@@ -87,11 +89,11 @@ module IsoDoc
|
|
87
89
|
abstract.at(ns("./title"))&.remove
|
88
90
|
abstract.at(ns("./fmt-title"))&.remove
|
89
91
|
abstract.children = <<~TABLE
|
90
|
-
<table class="abstract" unnumbered="true" width="100%">
|
92
|
+
<table #{add_id_text} class="abstract" unnumbered="true" width="100%">
|
91
93
|
<colgroup><col width="11.8%"/><col width="78.2%"/></colgroup>
|
92
94
|
<tbody>
|
93
|
-
<tr><th align="left" width="95"><p>#{colon_i18n(@i18n.abstract)}</p></th>
|
94
|
-
<td>#{abstract.children.to_xml}</td></tr>
|
95
|
+
<tr #{add_id_text}><th #{add_id_text} align="left" width="95"><p>#{colon_i18n(@i18n.abstract)}</p></th>
|
96
|
+
<td #{add_id_text}>#{abstract.children.to_xml}</td></tr>
|
95
97
|
</tbody></table>
|
96
98
|
TABLE
|
97
99
|
end
|
@@ -99,8 +101,10 @@ module IsoDoc
|
|
99
101
|
def keywords(_docxml)
|
100
102
|
kw = @meta.get[:keywords]
|
101
103
|
kw.nil? || kw.empty? || @doctype == "contribution" and return
|
102
|
-
|
103
|
-
|
104
|
+
<<~XML
|
105
|
+
<clause #{add_id_text} type='keyword'><fmt-title #{add_id_text}>#{@i18n.keywords}</fmt-title>
|
106
|
+
<p>#{@i18n.l10n(kw.join(', '))}.</p>
|
107
|
+
XML
|
104
108
|
end
|
105
109
|
|
106
110
|
def toc_title(docxml)
|
@@ -13,7 +13,6 @@ module IsoDoc
|
|
13
13
|
"<p keep-with-next='true' class='supertitle'>" \
|
14
14
|
"#{labelled_autonum(@i18n.get['section'].upcase, elem['id'],
|
15
15
|
lbl)}</p>"
|
16
|
-
# "<span element='fmt-element-name'>#{@i18n.get['section'].upcase}</span> #{autonum(elem['id'], lbl)}</p>"
|
17
16
|
end
|
18
17
|
|
19
18
|
def clause1_super?(elem)
|
@@ -43,7 +42,9 @@ module IsoDoc
|
|
43
42
|
ins = elem.at(ns("./fmt-xref-label")) || elem.at(ns("./fmt-title"))
|
44
43
|
p = (info ? @i18n.inform_annex : @i18n.norm_annex)
|
45
44
|
.gsub("%", @i18n.doctype_dict[@meta.get[:doctype_original]] || "")
|
46
|
-
ins.next =
|
45
|
+
ins.next = <<~XML
|
46
|
+
<p class="annex_obligation"><span class='fmt-obligation'>#{p}</span></p>
|
47
|
+
XML
|
47
48
|
end
|
48
49
|
|
49
50
|
def annex1_supertitle(elem)
|
@@ -86,16 +87,31 @@ module IsoDoc
|
|
86
87
|
|
87
88
|
def middle_title_recommendation(isoxml, out)
|
88
89
|
ret = ""
|
89
|
-
|
90
|
+
id = @meta.get[:docnumber_iso] and ret += <<~XML
|
91
|
+
<p class='zzSTDTitle1'>#{@i18n.international_standard} #{id}</p>
|
92
|
+
XML
|
93
|
+
ret += middle_title_recommendation_first_line
|
94
|
+
ret += middle_title_recommendation_second_line(isoxml)
|
95
|
+
s = @meta.get[:docsubtitle] and ret += "<p class='zzSTDTitle3'>#{s}</p>"
|
96
|
+
out.previous = ret
|
97
|
+
end
|
98
|
+
|
99
|
+
def middle_title_recommendation_first_line
|
100
|
+
ret = ""
|
101
|
+
type = @meta.get[:doctype_display]
|
90
102
|
@meta.get[:unpublished] && @meta.get[:draft_new_doctype] and
|
91
103
|
type = @meta.get[:draft_new_doctype]
|
92
104
|
id = @meta.get[:docnumber] and
|
93
|
-
ret += "
|
94
|
-
|
95
|
-
|
105
|
+
ret += "<p class='zzSTDTitle1'>#{type} #{id}</p>"
|
106
|
+
ret
|
107
|
+
end
|
108
|
+
|
109
|
+
def middle_title_recommendation_second_line(isoxml)
|
110
|
+
ret = ""
|
111
|
+
t = @meta.get[:doctitle] or return ret
|
112
|
+
ret += "<p class='zzSTDTitle2'>#{t}"
|
96
113
|
ret += "#{title_footnotes(isoxml)}</p>"
|
97
|
-
|
98
|
-
out.previous = ret
|
114
|
+
ret
|
99
115
|
end
|
100
116
|
|
101
117
|
def title_footnotes(isoxml)
|
@@ -103,7 +119,7 @@ module IsoDoc
|
|
103
119
|
isoxml.xpath(ns("//note[@type = 'title-footnote']"))
|
104
120
|
.each_with_index do |f, i|
|
105
121
|
ret += <<~FN.strip
|
106
|
-
<fn
|
122
|
+
<fn #{add_id_text} reference='H#{i}'>#{f.remove.children.to_xml}</fn>
|
107
123
|
FN
|
108
124
|
end
|
109
125
|
ret
|
@@ -12,7 +12,7 @@ All rights reserved. No part of this publication may be reproduced, by any means
|
|
12
12
|
|
13
13
|
ITU draws attention to the possibility that the practice or implementation of this Recommendation may involve the use of a claimed Intellectual Property Right. ITU takes no position concerning the evidence, validity or applicability of claimed Intellectual Property Rights, whether asserted by ITU members or others outside of the Recommendation development process.
|
14
14
|
|
15
|
-
As of the date of approval of this Recommendation, ITU had {% if ip_notice_received %}{% else %}not{% endif %} received notice of intellectual property, protected by patents, which may be required to implement this Recommendation. However, implementers are cautioned that this may not represent the latest information and are therefore strongly urged to consult the TSB patent database at http://www.itu.int/ITU-T/ipr/[].
|
15
|
+
As of the date of approval of this Recommendation, ITU had {% if ip_notice_received != 'false' %}{% else %}not{% endif %} received notice of intellectual property, protected by patents, which may be required to implement this Recommendation. However, implementers are cautioned that this may not represent the latest information and are therefore strongly urged to consult the TSB patent database at http://www.itu.int/ITU-T/ipr/[].
|
16
16
|
{% endif %}
|
17
17
|
|
18
18
|
== legal-statement
|
@@ -45,9 +45,9 @@ and it is not to be used outside of ITU.
|
|
45
45
|
{% else %}
|
46
46
|
{% if unpublished and docnumber_provisional == nil %}
|
47
47
|
[[draft-warning]]
|
48
|
-
=== CAUTION! PREPUBLISHED {{
|
48
|
+
=== CAUTION! PREPUBLISHED {{ doctype_display | upcase }}
|
49
49
|
|
50
|
-
This prepublication is an unedited version of a recently approved {{
|
50
|
+
This prepublication is an unedited version of a recently approved {{doctype_display}}.
|
51
51
|
It will be replaced by the published version after editing. Therefore,
|
52
52
|
there will be differences between this prepublication and the published
|
53
53
|
version.
|
@@ -26,10 +26,6 @@ module Metanorma
|
|
26
26
|
insert_conventions(xml)
|
27
27
|
end
|
28
28
|
|
29
|
-
def add_id_txt
|
30
|
-
%(id="_#{UUIDTools::UUID.random_create}")
|
31
|
-
end
|
32
|
-
|
33
29
|
def insert_scope(xml)
|
34
30
|
xml.at("./*/sections") or
|
35
31
|
xml.at("./*/preface | ./*/boilerplate | ./*/bibdata").next =
|
@@ -37,9 +33,10 @@ module Metanorma
|
|
37
33
|
xml.at("./*/sections/*") or xml.at("./*/sections") << "<sentinel/>"
|
38
34
|
ins = xml.at("//sections").elements.first
|
39
35
|
xml.at("//sections/clause[@type = 'scope']") or
|
40
|
-
ins.previous =
|
41
|
-
|
42
|
-
|
36
|
+
ins.previous = <<~XML
|
37
|
+
<clause type='scope' #{add_id_text}><title #{add_id_text}>#{@i18n.scope}</title>
|
38
|
+
<p>#{@i18n.clause_empty}</p></clause>
|
39
|
+
XML
|
43
40
|
xml.at("//sentinel")&.remove
|
44
41
|
end
|
45
42
|
|
@@ -49,23 +46,29 @@ module Metanorma
|
|
49
46
|
"<bibliography><sentinel/></bibliography>"
|
50
47
|
ins = xml.at("//bibliography").elements.first
|
51
48
|
xml.at("//bibliography/references[@normative = 'true']") or
|
52
|
-
ins.previous =
|
53
|
-
|
49
|
+
ins.previous = <<~XML
|
50
|
+
<references #{add_id_text} normative='true'>
|
51
|
+
<title #{add_id_text}>#{@i18n.normref}</title></references>
|
52
|
+
XML
|
54
53
|
xml.at("//sentinel")&.remove
|
55
54
|
end
|
56
55
|
|
57
56
|
def insert_terms(xml)
|
58
57
|
ins = xml.at("//sections/clause[@type = 'scope']")
|
59
58
|
xml.at("//sections//terms") or
|
60
|
-
ins.next =
|
59
|
+
ins.next = <<~XML
|
60
|
+
<terms #{add_id_text}><title #{add_id_text}>#{@i18n.termsdef}</title></terms>
|
61
|
+
XML
|
61
62
|
end
|
62
63
|
|
63
64
|
def insert_symbols(xml)
|
64
65
|
ins = xml.at("//sections/terms") ||
|
65
66
|
xml.at("//sections/clause[descendant::terms]")
|
66
67
|
unless xml.at("//sections//definitions")
|
67
|
-
ins.next =
|
68
|
-
|
68
|
+
ins.next = <<~XML
|
69
|
+
<definitions #{add_id_text}>
|
70
|
+
<title #{add_id_text}>#{@i18n.symbolsabbrev}</title></definitions>
|
71
|
+
XML
|
69
72
|
end
|
70
73
|
end
|
71
74
|
|
@@ -73,9 +76,11 @@ module Metanorma
|
|
73
76
|
ins = xml.at("//sections//definitions") ||
|
74
77
|
xml.at("//sections/clause[descendant::definitions]")
|
75
78
|
unless xml.at("//sections/clause[@type = 'conventions']")
|
76
|
-
ins.next =
|
77
|
-
|
78
|
-
|
79
|
+
ins.next = <<~XML
|
80
|
+
<clause #{add_id_text} type='conventions'>
|
81
|
+
<title #{add_id_text}>#{@i18n.conventions}</title>
|
82
|
+
<p>#{@i18n.clause_empty}</p></clause>
|
83
|
+
XML
|
79
84
|
end
|
80
85
|
end
|
81
86
|
|
@@ -9,9 +9,6 @@ require_relative "./cleanup"
|
|
9
9
|
module Metanorma
|
10
10
|
module Itu
|
11
11
|
class Converter < Standoc::Converter
|
12
|
-
XML_ROOT_TAG = "itu-standard".freeze
|
13
|
-
XML_NAMESPACE = "https://www.metanorma.org/ns/itu".freeze
|
14
|
-
|
15
12
|
register_for "itu"
|
16
13
|
|
17
14
|
def title_validate(_root)
|
@@ -30,11 +27,6 @@ module Metanorma
|
|
30
27
|
File.join(@libdir, "boilerplate.adoc")
|
31
28
|
end
|
32
29
|
|
33
|
-
def makexml(node)
|
34
|
-
@draft = node.attributes.has_key?("draft")
|
35
|
-
super
|
36
|
-
end
|
37
|
-
|
38
30
|
def init_misc(node)
|
39
31
|
super
|
40
32
|
@default_doctype = "recommendation"
|
@@ -6,6 +6,7 @@ module Metanorma
|
|
6
6
|
td_id(node, xml)
|
7
7
|
itu_id(node, xml)
|
8
8
|
recommendation_id(node, xml)
|
9
|
+
iso_id(node, xml)
|
9
10
|
end
|
10
11
|
|
11
12
|
def provisional_id(node, xml)
|
@@ -22,6 +23,11 @@ module Metanorma
|
|
22
23
|
end
|
23
24
|
end
|
24
25
|
|
26
|
+
def iso_id(node, xml)
|
27
|
+
a = node.attr("common-text-docnumber") and
|
28
|
+
xml.docidentifier a, type: "ISO"
|
29
|
+
end
|
30
|
+
|
25
31
|
ITULANG = { "en" => "E", "fr" => "F", "ar" => "A", "es" => "S",
|
26
32
|
"zh" => "C", "ru" => "R" }.freeze
|
27
33
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
2
|
<grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
3
|
-
<!-- VERSION v2.0.
|
3
|
+
<!-- VERSION v2.0.7 -->
|
4
4
|
|
5
5
|
<!--
|
6
6
|
ALERT: cannot have root comments, because of https://github.com/metanorma/metanorma/issues/437
|
@@ -76,6 +76,7 @@ but to `@anchor`, the user-supplied cross-reference</a:documentation>
|
|
76
76
|
<a:documentation>Title(s) of a clause</a:documentation>
|
77
77
|
<element name="title">
|
78
78
|
<a:documentation>Title proper for a clause</a:documentation>
|
79
|
+
<ref name="RequiredId"/>
|
79
80
|
<zeroOrMore>
|
80
81
|
<ref name="TextElement"/>
|
81
82
|
</zeroOrMore>
|
@@ -83,10 +84,19 @@ but to `@anchor`, the user-supplied cross-reference</a:documentation>
|
|
83
84
|
<zeroOrMore>
|
84
85
|
<element name="variant-title">
|
85
86
|
<a:documentation>Alternate title for a clause</a:documentation>
|
87
|
+
<ref name="RequiredId"/>
|
86
88
|
<ref name="TypedTitleString"/>
|
87
89
|
</element>
|
88
90
|
</zeroOrMore>
|
89
91
|
</define>
|
92
|
+
<define name="tname">
|
93
|
+
<element name="name">
|
94
|
+
<ref name="RequiredId"/>
|
95
|
+
<oneOrMore>
|
96
|
+
<ref name="NestedTextElement"/>
|
97
|
+
</oneOrMore>
|
98
|
+
</element>
|
99
|
+
</define>
|
90
100
|
<define name="UlBody">
|
91
101
|
<optional>
|
92
102
|
<ref name="tname">
|
@@ -475,6 +485,7 @@ normative or informative references, some split references into sections organiz
|
|
475
485
|
<!-- exclude figures? -->
|
476
486
|
<define name="dd">
|
477
487
|
<element name="dd">
|
488
|
+
<ref name="OptionalId"/>
|
478
489
|
<zeroOrMore>
|
479
490
|
<!-- exclude figures? -->
|
480
491
|
<ref name="BasicBlock"/>
|
@@ -526,6 +537,7 @@ normative or informative references, some split references into sections organiz
|
|
526
537
|
</choice>
|
527
538
|
</define>
|
528
539
|
<define name="TrAttributes">
|
540
|
+
<ref name="OptionalId"/>
|
529
541
|
<optional>
|
530
542
|
<attribute name="style">
|
531
543
|
<a:documentation>CSS style: only background-color supported</a:documentation>
|
@@ -595,6 +607,7 @@ gives an explicit page orientation</a:documentation>
|
|
595
607
|
</include>
|
596
608
|
<!-- end overrides -->
|
597
609
|
<define name="FnAttributes" combine="interleave">
|
610
|
+
<ref name="RequiredId"/>
|
598
611
|
<optional>
|
599
612
|
<attribute name="hiddenref">
|
600
613
|
<a:documentation>If true, number the footnote as normal, but suppress display of the footnote reference in the document body.
|
@@ -604,6 +617,7 @@ This is done if the footnote reference is already presented in some other form,
|
|
604
617
|
</optional>
|
605
618
|
</define>
|
606
619
|
<define name="TdAttributes" combine="interleave">
|
620
|
+
<ref name="RequiredId"/>
|
607
621
|
<optional>
|
608
622
|
<attribute name="style">
|
609
623
|
<a:documentation>CSS style: only background-color supported</a:documentation>
|
@@ -1821,7 +1835,7 @@ used in document amendments</a:documentation>
|
|
1821
1835
|
</element>
|
1822
1836
|
</define>
|
1823
1837
|
<define name="TermAttributes">
|
1824
|
-
<ref name="
|
1838
|
+
<ref name="RequiredId"/>
|
1825
1839
|
<ref name="LocalizedStringAttributes"/>
|
1826
1840
|
<ref name="BlockAttributes"/>
|
1827
1841
|
</define>
|
@@ -2164,6 +2178,7 @@ used in document amendments</a:documentation>
|
|
2164
2178
|
<define name="termdefinition">
|
2165
2179
|
<a:documentation>The definition of a term applied in the current document</a:documentation>
|
2166
2180
|
<element name="definition">
|
2181
|
+
<ref name="RequiredId"/>
|
2167
2182
|
<optional>
|
2168
2183
|
<attribute name="type">
|
2169
2184
|
<a:documentation>Type of definition, used to differentiate it from other definitions of the same term if present</a:documentation>
|
@@ -2185,6 +2200,7 @@ used in document amendments</a:documentation>
|
|
2185
2200
|
</define>
|
2186
2201
|
<define name="verbaldefinition">
|
2187
2202
|
<element name="verbal-definition">
|
2203
|
+
<ref name="RequiredId"/>
|
2188
2204
|
<oneOrMore>
|
2189
2205
|
<choice>
|
2190
2206
|
<a:documentation>Content of the verbal representation of the term</a:documentation>
|
@@ -2205,6 +2221,7 @@ used in document amendments</a:documentation>
|
|
2205
2221
|
<define name="nonverbalrep">
|
2206
2222
|
<a:documentation>Non-verbal representation of the term</a:documentation>
|
2207
2223
|
<element name="non-verbal-representation">
|
2224
|
+
<ref name="RequiredId"/>
|
2208
2225
|
<oneOrMore>
|
2209
2226
|
<choice>
|
2210
2227
|
<a:documentation>Content of the non-verbal representation of the term</a:documentation>
|
data/metanorma-itu.gemspec
CHANGED
@@ -25,7 +25,7 @@ Gem::Specification.new do |spec|
|
|
25
25
|
spec.require_paths = ["lib"]
|
26
26
|
spec.required_ruby_version = Gem::Requirement.new(">= 3.1.0")
|
27
27
|
|
28
|
-
spec.add_dependency "metanorma-standoc", "~> 3.
|
28
|
+
spec.add_dependency "metanorma-standoc", "~> 3.1.0"
|
29
29
|
spec.add_dependency "pubid"
|
30
30
|
spec.add_dependency "twitter_cldr", ">= 3.0.0"
|
31
31
|
spec.add_dependency "tzinfo-data" # we need this for windows only
|
@@ -41,7 +41,6 @@ spec.add_development_dependency "rubocop-performance"
|
|
41
41
|
spec.add_development_dependency "sassc-embedded", "~> 1"
|
42
42
|
spec.add_development_dependency "simplecov", "~> 0.15"
|
43
43
|
spec.add_development_dependency "timecop", "~> 0.9"
|
44
|
-
spec.add_development_dependency "vcr", "~> 6.1.0"
|
45
44
|
spec.add_development_dependency "webmock"
|
46
45
|
spec.add_development_dependency "xml-c14n"
|
47
46
|
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.
|
4
|
+
version: 2.6.9
|
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-
|
11
|
+
date: 2025-06-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: metanorma-standoc
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 3.
|
19
|
+
version: 3.1.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 3.
|
26
|
+
version: 3.1.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: pubid
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -220,20 +220,6 @@ dependencies:
|
|
220
220
|
- - "~>"
|
221
221
|
- !ruby/object:Gem::Version
|
222
222
|
version: '0.9'
|
223
|
-
- !ruby/object:Gem::Dependency
|
224
|
-
name: vcr
|
225
|
-
requirement: !ruby/object:Gem::Requirement
|
226
|
-
requirements:
|
227
|
-
- - "~>"
|
228
|
-
- !ruby/object:Gem::Version
|
229
|
-
version: 6.1.0
|
230
|
-
type: :development
|
231
|
-
prerelease: false
|
232
|
-
version_requirements: !ruby/object:Gem::Requirement
|
233
|
-
requirements:
|
234
|
-
- - "~>"
|
235
|
-
- !ruby/object:Gem::Version
|
236
|
-
version: 6.1.0
|
237
223
|
- !ruby/object:Gem::Dependency
|
238
224
|
name: webmock
|
239
225
|
requirement: !ruby/object:Gem::Requirement
|