metanorma-itu 1.2.6 → 1.2.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rake.yml +29 -8
  3. data/README.adoc +3 -4
  4. data/lib/asciidoctor/itu/basicdoc.rng +50 -3
  5. data/lib/asciidoctor/itu/boilerplate.xml +8 -2
  6. data/lib/asciidoctor/itu/cleanup.rb +9 -0
  7. data/lib/asciidoctor/itu/converter.rb +1 -0
  8. data/lib/asciidoctor/itu/front.rb +42 -8
  9. data/lib/asciidoctor/itu/isodoc.rng +61 -3
  10. data/lib/asciidoctor/itu/itu.rng +71 -0
  11. data/lib/asciidoctor/itu/validate.rb +14 -13
  12. data/lib/isodoc/itu/base_convert.rb +65 -58
  13. data/lib/isodoc/itu/cleanup.rb +55 -0
  14. data/lib/isodoc/itu/html/header.html +12 -16
  15. data/lib/isodoc/itu/html/html_itu_intro.html +4 -3
  16. data/lib/isodoc/itu/html/html_itu_titlepage.html +23 -17
  17. data/lib/isodoc/itu/html/htmlstyle.css +793 -745
  18. data/lib/isodoc/itu/html/htmlstyle.scss +15 -12
  19. data/lib/isodoc/itu/html/itu.css +43 -43
  20. data/lib/isodoc/itu/html/itu.scss +44 -43
  21. data/lib/isodoc/itu/html/logo-sp.png +0 -0
  22. data/lib/isodoc/itu/html/word_itu_intro.html +19 -3
  23. data/lib/isodoc/itu/html/word_itu_titlepage.html +37 -8
  24. data/lib/isodoc/itu/html/word_itu_titlepage_sp.html +108 -0
  25. data/lib/isodoc/itu/html/wordstyle.css +40 -37
  26. data/lib/isodoc/itu/html/wordstyle.scss +40 -37
  27. data/lib/isodoc/itu/html_convert.rb +4 -1
  28. data/lib/isodoc/itu/i18n-en.yaml +44 -0
  29. data/lib/isodoc/itu/itu.recommendation-annex.xsl +720 -154
  30. data/lib/isodoc/itu/itu.recommendation.xsl +720 -154
  31. data/lib/isodoc/itu/itu.resolution.xsl +720 -154
  32. data/lib/isodoc/itu/itu.technical-paper.xsl +5284 -0
  33. data/lib/isodoc/itu/itu.technical-report.xsl +5284 -0
  34. data/lib/isodoc/itu/metadata.rb +59 -9
  35. data/lib/isodoc/itu/pdf_convert.rb +2 -0
  36. data/lib/isodoc/itu/presentation_xml_convert.rb +104 -2
  37. data/lib/isodoc/itu/ref.rb +0 -13
  38. data/lib/isodoc/itu/terms.rb +7 -30
  39. data/lib/isodoc/itu/word_cleanup.rb +5 -1
  40. data/lib/isodoc/itu/word_convert.rb +15 -1
  41. data/lib/isodoc/itu/xref.rb +93 -39
  42. data/lib/metanorma/itu/processor.rb +10 -8
  43. data/lib/metanorma/itu/version.rb +1 -1
  44. data/metanorma-itu.gemspec +2 -2
  45. metadata +11 -6
@@ -41,6 +41,9 @@
41
41
  <value>technical-report</value>
42
42
  <value>joint-itu-iso-iec</value>
43
43
  <value>resolution</value>
44
+ <value>service-publication</value>
45
+ <value>handbook</value>
46
+ <value>question</value>
44
47
  </choice>
45
48
  </define>
46
49
  <define name="editorialgroup">
@@ -97,6 +100,9 @@
97
100
  <optional>
98
101
  <ref name="meeting"/>
99
102
  </optional>
103
+ <optional>
104
+ <ref name="meeting-place"/>
105
+ </optional>
100
106
  <optional>
101
107
  <ref name="meeting-date"/>
102
108
  </optional>
@@ -124,9 +130,74 @@
124
130
  </oneOrMore>
125
131
  </element>
126
132
  </define>
133
+ <define name="Clause-Section">
134
+ <optional>
135
+ <attribute name="id">
136
+ <data type="ID"/>
137
+ </attribute>
138
+ </optional>
139
+ <optional>
140
+ <attribute name="language"/>
141
+ </optional>
142
+ <optional>
143
+ <attribute name="script"/>
144
+ </optional>
145
+ <optional>
146
+ <attribute name="inline-header">
147
+ <data type="boolean"/>
148
+ </attribute>
149
+ </optional>
150
+ <optional>
151
+ <attribute name="obligation">
152
+ <choice>
153
+ <value>normative</value>
154
+ <value>informative</value>
155
+ </choice>
156
+ </attribute>
157
+ </optional>
158
+ <optional>
159
+ <attribute name="type"/>
160
+ </optional>
161
+ <optional>
162
+ <attribute name="unnumbered">
163
+ <data type="boolean"/>
164
+ </attribute>
165
+ </optional>
166
+ <optional>
167
+ <ref name="section-title"/>
168
+ </optional>
169
+ <group>
170
+ <choice>
171
+ <group>
172
+ <zeroOrMore>
173
+ <ref name="BasicBlock"/>
174
+ </zeroOrMore>
175
+ <zeroOrMore>
176
+ <ref name="note"/>
177
+ </zeroOrMore>
178
+ </group>
179
+ <ref name="amend"/>
180
+ </choice>
181
+ <zeroOrMore>
182
+ <choice>
183
+ <ref name="clause-subsection"/>
184
+ <ref name="terms"/>
185
+ <ref name="definitions"/>
186
+ </choice>
187
+ </zeroOrMore>
188
+ </group>
189
+ </define>
127
190
  </include>
128
191
  <define name="meeting">
129
192
  <element name="meeting">
193
+ <optional>
194
+ <attribute name="acronym"/>
195
+ </optional>
196
+ <text/>
197
+ </element>
198
+ </define>
199
+ <define name="meeting-place">
200
+ <element name="meeting-place">
130
201
  <text/>
131
202
  </element>
132
203
  </define>
@@ -11,9 +11,8 @@ module Asciidoctor
11
11
  %w(recommendation recommendation-supplement recommendation-amendment
12
12
  recommendation-corrigendum recommendation-errata recommendation-annex
13
13
  focus-group implementers-guide technical-paper technical-report
14
- joint-itu-iso-iec).include? doctype or
15
- @log.add("Document Attributes", nil,
16
- "#{doctype} is not a recognised document type")
14
+ joint-itu-iso-iec service-publication).include? doctype or
15
+ @log.add("Document Attributes", nil, "#{doctype} is not a recognised document type")
17
16
  end
18
17
 
19
18
  def stage_validate(xmldoc)
@@ -41,8 +40,7 @@ module Asciidoctor
41
40
  xmldoc.xpath("//bibdata/series/title").each do |s|
42
41
  series = s.text.sub(/^[A-Z]: /, "")
43
42
  t.downcase.include?(series.downcase) and
44
- @log.add("Document Attributes", nil,
45
- "Title includes series name #{series}")
43
+ @log.add("Document Attributes", nil, "Title includes series name #{series}")
46
44
  end
47
45
  end
48
46
 
@@ -67,15 +65,8 @@ module Asciidoctor
67
65
  end
68
66
 
69
67
  # Editing Guidelines 9.4.3
68
+ # Supplanted by rendering
70
69
  def numbers_validate(xmldoc)
71
- xmldoc.xpath("//clause | //preface/* | //annex").each do |x|
72
- xx = x.dup
73
- xx.xpath("./clause").each { |c| c.remove }
74
- style_two_regex_not_prev(x, extract_text(xx),
75
- /^(?<num>-?[0-9][0-9,. ]{3,})$/,
76
- %r{(\bISO|\bIEC|\bIEEE/)$},
77
- "number not broken up in threes by apostrophe")
78
- end
79
70
  end
80
71
 
81
72
  def style_two_regex_not_prev(n, text, re, re_prev, warning)
@@ -115,6 +106,16 @@ module Asciidoctor
115
106
  def section_validate(doc)
116
107
  super
117
108
  section_check(doc.root)
109
+ unnumbered_check(doc.root)
110
+ end
111
+
112
+ def unnumbered_check(xmldoc)
113
+ doctype = xmldoc&.at("//bibdata/ext/doctype")&.text
114
+ xmldoc.xpath("//clause[@unnumbered = 'true']").each do |c|
115
+ next if doctype == "resolution" and c.parent.name == "sections" and
116
+ !c.at("./preceding-sibling::clause")
117
+ @log.add("Style", c, "Unnumbered clause out of place")
118
+ end
118
119
  end
119
120
 
120
121
  # Editing Guidelines 7.2, 7.3
@@ -3,6 +3,7 @@ require "fileutils"
3
3
  require_relative "./ref.rb"
4
4
  require_relative "./xref.rb"
5
5
  require_relative "./terms.rb"
6
+ require_relative "./cleanup.rb"
6
7
 
7
8
  module IsoDoc
8
9
  module ITU
@@ -23,12 +24,6 @@ module IsoDoc
23
24
  end
24
25
  end
25
26
 
26
- def bracket_opt(b)
27
- return b if b.nil?
28
- return b if /^\[.+\]$/.match(b)
29
- "[#{b}]"
30
- end
31
-
32
27
  def clausedelim
33
28
  ""
34
29
  end
@@ -54,21 +49,19 @@ module IsoDoc
54
49
  div.h1 **{ class: r_a ? "RecommendationAnnex" : "Annex" } do |t|
55
50
  name&.children&.each { |c2| parse(c2, t) }
56
51
  end
57
- annex_obligation_subtitle(annex, div)
52
+ annex_obligation_subtitle(annex, div) unless @meta.get[:doctype_original] == "resolution"
58
53
  end
59
54
 
60
55
  def annex_obligation_subtitle(annex, div)
61
56
  info = annex["obligation"] == "informative"
62
57
  div.p **{class: "annex_obligation" } do |p|
63
- p << (info ? @i18n.inform_annex : @i18n.norm_annex).
64
- sub(/%/, @meta.get[:doctype] || "")
58
+ p << (info ? @i18n.inform_annex : @i18n.norm_annex).sub(/%/, @meta.get[:doctype] || "")
65
59
  end
66
60
  end
67
61
 
68
62
  def annex(isoxml, out)
69
63
  isoxml.xpath(ns("//annex")).each do |c|
70
- @meta.get[:doctype_original] == "recommendation-annex" or
71
- page_break(out)
64
+ @meta.get[:doctype_original] == "recommendation-annex" or page_break(out)
72
65
  out.div **attr_code(id: c["id"], class: "Section3") do |s|
73
66
  annex_name(c, nil, s) unless c.at(ns("./title"))
74
67
  c.elements.each do |c1|
@@ -81,67 +74,52 @@ module IsoDoc
81
74
  end
82
75
  end
83
76
 
84
- def cleanup(docxml)
77
+ def info(isoxml, out)
78
+ @meta.ip_notice_received isoxml, out
79
+ @meta.techreport isoxml, out
85
80
  super
86
- term_cleanup(docxml)
87
- refs_cleanup(docxml)
88
- title_cleanup(docxml)
89
- end
90
-
91
- def title_cleanup(docxml)
92
- docxml.xpath("//h1[@class = 'RecommendationAnnex']").each do |h|
93
- h.name = "p"
94
- h["class"] = "h1Annex"
95
- end
96
- docxml
97
- end
98
-
99
- def term_cleanup(docxml)
100
- term_cleanup1(docxml)
101
- term_cleanup2(docxml)
102
- docxml
103
81
  end
104
82
 
105
- def term_cleanup1(docxml)
106
- docxml.xpath("//p[@class = 'Terms']").each do |d|
107
- h2 = d.at("./preceding-sibling::*[@class = 'TermNum'][1]")
108
- d.children.first.previous = "<b>#{h2.children.to_xml}</b>&nbsp;"
109
- d["id"] = h2["id"]
110
- h2.remove
83
+ def middle_title(isoxml, out)
84
+ if @meta.get[:doctype] == "Resolution"
85
+ middle_title_resolution(isoxml, out)
86
+ else
87
+ middle_title_recommendation(isoxml, out)
111
88
  end
112
89
  end
113
90
 
114
- def term_cleanup2(docxml)
115
- docxml.xpath("//p[@class = 'TermNum']").each do |d|
116
- d1 = d.next_element and d1.name == "p" or next
117
- d1.children.each { |e| e.parent = d }
118
- d1.remove
91
+ def middle_title_resolution(isoxml, out)
92
+ res = isoxml.at(ns("//bibdata/title[@type = 'resolution']"))
93
+ out.p(**{ align: "center", style: "text-align:center;" }) do |p|
94
+ res.children.each { |n| parse(n, p) }
119
95
  end
96
+ out.p(**{ class: "zzSTDTitle2" }) { |p| p << @meta.get[:doctitle] }
97
+ middle_title_resolution_subtitle(isoxml, out)
120
98
  end
121
99
 
122
- def refs_cleanup(docxml)
123
- docxml.xpath("//tx[following-sibling::tx]").each do |tx|
124
- tx << tx.next_element.remove.children
125
- end
126
- docxml.xpath("//tx").each do |tx|
127
- tx.name = "td"
128
- tx["colspan"] = "2"
129
- tx.wrap("<tr></tr>")
100
+ def middle_title_resolution_subtitle(isoxml, out)
101
+ out.p(**{ align: "center", style: "text-align:center;" }) do |p|
102
+ p.i do |i|
103
+ i << "("
104
+ isoxml.at(ns("//bibdata/title[@type = 'resolution-placedate']")).children.each { |n| parse(n, i) }
105
+ i << ")"
106
+ end
107
+ isoxml.xpath(ns("//note[@type = 'title-footnote']")).each do |f|
108
+ footnote_parse(f, p)
109
+ end
130
110
  end
131
- docxml
132
- end
133
-
134
- def info(isoxml, out)
135
- @meta.ip_notice_received isoxml, out
136
- @meta.techreport isoxml, out
137
- super
138
111
  end
139
112
 
140
- def middle_title(out)
113
+ def middle_title_recommendation(isoxml, out)
141
114
  out.p(**{ class: "zzSTDTitle1" }) do |p|
142
115
  id = @meta.get[:docnumber] and p << "#{@meta.get[:doctype]} #{id}"
143
116
  end
144
- out.p(**{ class: "zzSTDTitle2" }) { |p| p << @meta.get[:doctitle] }
117
+ out.p(**{ class: "zzSTDTitle2" }) do |p|
118
+ p << @meta.get[:doctitle]
119
+ isoxml.xpath(ns("//note[@type = 'title-footnote']")).each do |f|
120
+ footnote_parse(f, p)
121
+ end
122
+ end
145
123
  s = @meta.get[:docsubtitle] and
146
124
  out.p(**{ class: "zzSTDTitle3" }) { |p| p << s }
147
125
  end
@@ -184,7 +162,6 @@ module IsoDoc
184
162
  div.p do |p|
185
163
  name and p.span **{ class: "note_label" } do |s|
186
164
  name.children.each { |n| parse(n, s) }
187
- #s << note_delim
188
165
  end
189
166
  end
190
167
  node.children.each { |n| parse(n, div) }
@@ -193,6 +170,36 @@ module IsoDoc
193
170
  def table_footnote_reference_format(a)
194
171
  a.content = a.content + ")"
195
172
  end
173
+
174
+ def note_parse(node, out)
175
+ return if node["type"] == "title-footnote"
176
+ super
177
+ end
178
+
179
+ # can have supertitle in resolution
180
+ def clause(isoxml, out)
181
+ isoxml.xpath(ns(middle_clause(isoxml))).each do |c|
182
+ clause_core(c, out)
183
+ end
184
+ end
185
+
186
+ def clause_core(c, out)
187
+ out.div **attr_code(clause_attrs(c)) do |s|
188
+ c.elements.each do |c1|
189
+ if c1.name == "title" then clause_name(nil, c1, s, nil)
190
+ else
191
+ parse(c1, s)
192
+ end
193
+ end
194
+ end
195
+ end
196
+
197
+ def scope(isoxml, out, num)
198
+ return super unless @meta.get[:doctype_original] == "resolution"
199
+ f = isoxml.at(ns("//clause[@type = 'scope']")) or return num
200
+ clause_core(f, out)
201
+ num + 1
202
+ end
196
203
  end
197
204
  end
198
205
  end
@@ -0,0 +1,55 @@
1
+ module IsoDoc
2
+ module ITU
3
+ module BaseConvert
4
+ def cleanup(docxml)
5
+ super
6
+ term_cleanup(docxml)
7
+ refs_cleanup(docxml)
8
+ title_cleanup(docxml)
9
+ end
10
+
11
+ def title_cleanup(docxml)
12
+ docxml.xpath("//h1[@class = 'RecommendationAnnex']").each do |h|
13
+ h.name = "p"
14
+ h["class"] = "h1Annex"
15
+ end
16
+ docxml
17
+ end
18
+
19
+ def term_cleanup(docxml)
20
+ term_cleanup1(docxml)
21
+ term_cleanup2(docxml)
22
+ docxml
23
+ end
24
+
25
+ def term_cleanup1(docxml)
26
+ docxml.xpath("//p[@class = 'Terms']").each do |d|
27
+ h2 = d.at("./preceding-sibling::*[@class = 'TermNum'][1]")
28
+ d.children.first.previous = "<b>#{h2.children.to_xml}</b>&nbsp;"
29
+ d["id"] = h2["id"]
30
+ h2.remove
31
+ end
32
+ end
33
+
34
+ def term_cleanup2(docxml)
35
+ docxml.xpath("//p[@class = 'TermNum']").each do |d|
36
+ d1 = d.next_element and d1.name == "p" or next
37
+ d1.children.each { |e| e.parent = d }
38
+ d1.remove
39
+ end
40
+ end
41
+
42
+ def refs_cleanup(docxml)
43
+ docxml.xpath("//tx[following-sibling::tx]").each do |tx|
44
+ tx << tx.next_element.remove.children
45
+ end
46
+ docxml.xpath("//tx").each do |tx|
47
+ tx.name = "td"
48
+ tx["colspan"] = "2"
49
+ tx.wrap("<tr></tr>")
50
+ end
51
+ docxml
52
+ end
53
+ end
54
+ end
55
+ end
@@ -115,8 +115,7 @@ MERGEFORMAT </span><span lang=EN-GB style='font-weight:normal'><span
115
115
  style='mso-element:field-separator'></span></span><![endif]--><span lang=FR-CH
116
116
  style='mso-ansi-language:FR-CH;font-weight:normal;mso-no-proof:yes'>ii</span><!--[if supportFields]><span
117
117
  lang=EN-GB style='font-weight:normal'><span style='mso-element:field-end'></span></span><![endif]--><span
118
- lang=FR-CH style='mso-ansi-language:FR-CH'><span style='mso-tab-count:1'>              </span>Rec.
119
- ITU‑{{ bureau }} {{ docnumeric }} {% if amendmentid %}{{ amendmentid }}{% endif %} {% if corrigendumid %}{{ corrigendumid }}{% endif %} ({{ pubdate_monthyear }})<o:p></o:p></span></p>
118
+ lang=FR-CH style='mso-ansi-language:FR-CH'><span style='mso-tab-count:1'>              </span>{% if doctype == "Resolution" %}{{ meeting_acronym }} &#x2013; {{ doctype }} {{ docnumber}}{% else %}{% if doctype_abbreviated %}{{ doctype_abbreviated }} {% endif %}{% if docnumber_lang %}{{docnumber_lang}}{% else %}{{ docnumber }}{% endif %} {% if amendmentid %}{{ amendmentid }}{% endif %} {% if corrigendumid %}{{ corrigendumid }}{% endif %} ({{ pubdate_monthyear }}){% endif %}<o:p></o:p></span></p>
120
119
  </div>
121
120
 
122
121
  <div style='mso-element:footer' id=ef2l>
@@ -128,13 +127,12 @@ MERGEFORMAT </span><span lang=EN-GB style='font-weight:normal'><span
128
127
  style='mso-element:field-separator'></span></span><![endif]--><span lang=FR-CH
129
128
  style='mso-ansi-language:FR-CH;font-weight:normal;mso-no-proof:yes'>ii</span><!--[if supportFields]><span
130
129
  lang=EN-GB style='font-weight:normal'><span style='mso-element:field-end'></span></span><![endif]--><span
131
- lang=FR-CH style='mso-ansi-language:FR-CH'><span style='mso-tab-count:1'>              </span>Rec.
132
- ITU‑{{ bureau }} {{ docnumeric }} {% if amendmentid %}{{ amendmentid }}{% endif %} {% if corrigendumid %}{{ corrigendumid }}{% endif %} ({{ pubdate_monthyear }})<o:p></o:p></span></p>
130
+ lang=FR-CH style='mso-ansi-language:FR-CH'><span style='mso-tab-count:1'>              </span>{% if doctype == "Resolution" %}{{ meeting_acronym }} &#x2013; {{ doctype }} {{ docnumber}}{% else %}{% if doctype_abbreviated %}{{ doctype_abbreviated }} {% endif %}{% if docnumber_lang %}{{docnumber_lang}}{% else %}{{ docnumber }}{% endif %} {% if amendmentid %}{{ amendmentid }}{% endif %} {% if corrigendumid %}{{ corrigendumid }}{% endif %} ({{ pubdate_monthyear }}){% endif %}</span></p>
133
131
  </div>
134
132
 
135
133
  <div style='mso-element:footer' id=f2>
136
- <p class=FooterQP style='line-height:12.0pt'><span lang=EN-GB><span style='mso-tab-count:2'>                                                                                                       </span>Rec.
137
- ITU‑{{ bureau }} {{docnumeric}} {% if amendmentid %}{{ amendmentid }}{% endif %} {% if corrigendumid %}{{ corrigendumid }}{% endif %} ({{ pubdate_monthyear }})<span style='mso-tab-count:1'>             </span></span><!--[if supportFields]><span
134
+ <p class=FooterQP style='line-height:12.0pt'><span lang=EN-GB><span style='mso-tab-count:2'>                                                                                                       </span>{% if doctype == "Resolution" %}{{ meeting_acronym }} &#x2013; {{ doctype }} {{ docnumber}}{% else %}{% if doctype_abbreviated %}{{ doctype_abbreviated }} {% endif %}{% if docnumber_lang %}{{docnumber_lang}}{% else %}{{ docnumber }}{% endif %} {% if amendmentid %}{{ amendmentid }}{% endif %} {% if corrigendumid %}{{ corrigendumid }}{% endif %} ({{ pubdate_monthyear }}){% endif %}
135
+ <span style='mso-tab-count:1'>             </span></span><!--[if supportFields]><span
138
136
  lang=EN-GB style='font-weight:normal'><span style='mso-element:field-begin'></span>
139
137
  PAGE<span style='mso-spacerun:yes'>  </span>\* MERGEFORMAT <span
140
138
  style='mso-element:field-separator'></span></span><![endif]--><span lang=EN-GB
@@ -144,8 +142,8 @@ lang=EN-GB style='font-weight:normal'><o:p></o:p></span></p>
144
142
  </div>
145
143
 
146
144
  <div style='mso-element:footer' id=f2l>
147
- <p class=FooterQPLandscape style='line-height:12.0pt'><span lang=EN-GB><span style='mso-tab-count:2'>                                                                                                       </span>Rec.
148
- ITU‑{{ bureau }} {{docnumeric}} {% if amendmentid %}{{ amendmentid }}{% endif %} {% if corrigendumid %}{{ corrigendumid }}{% endif %} ({{ pubdate_monthyear }})<span style='mso-tab-count:1'>             </span></span><!--[if supportFields]><span
145
+ <p class=FooterQPLandscape style='line-height:12.0pt'><span lang=EN-GB><span style='mso-tab-count:2'>                                                                                                       </span>{% if doctype == "Resolution" %}{{ meeting_acronym }} &#x2013; {{ doctype }} {{ docnumber}}{% else %}{% if doctype_abbreviated %}{{ doctype_abbreviated }} {% endif %}{% if docnumber_lang %}{{docnumber_lang}}{% else %}{{ docnumber }}{% endif %} {% if amendmentid %}{{ amendmentid }}{% endif %} {% if corrigendumid %}{{ corrigendumid }}{% endif %} ({{ pubdate_monthyear }}){% endif %}
146
+ <span style='mso-tab-count:1'>             </span></span><!--[if supportFields]><span
149
147
  lang=EN-GB style='font-weight:normal'><span style='mso-element:field-begin'></span>
150
148
  PAGE<span style='mso-spacerun:yes'>  </span>\* MERGEFORMAT <span
151
149
  style='mso-element:field-separator'></span></span><![endif]--><span lang=EN-GB
@@ -163,8 +161,7 @@ MERGEFORMAT </span><span lang=EN-GB style='font-weight:normal'><span
163
161
  style='mso-element:field-separator'></span></span><![endif]--><span lang=FR-CH
164
162
  style='mso-ansi-language:FR-CH;font-weight:normal;mso-no-proof:yes'>ii</span><!--[if supportFields]><span
165
163
  lang=EN-GB style='font-weight:normal'><span style='mso-element:field-end'></span></span><![endif]--><span
166
- lang=FR-CH style='mso-ansi-language:FR-CH'><span style='mso-tab-count:1'>              </span>Rec.
167
- ITU‑{{ bureau }} {{ docnumeric }} {% if amendmentid %}{{ amendmentid }}{% endif %} {% if corrigendumid %}{{ corrigendumid }}{% endif %} ({{ pubdate_monthyear }})<o:p></o:p></span></p>
164
+ lang=FR-CH style='mso-ansi-language:FR-CH'><span style='mso-tab-count:1'>              </span>{% if doctype == "Resolution" %}{{ meeting_acronym }} &#x2013; {{ doctype }} {{ docnumber}}{% else %}{% if doctype_abbreviated %}{{ doctype_abbreviated }} {% endif %}{% if docnumber_lang %}{{docnumber_lang}}{% else %}{{ docnumber }}{% endif %} {% if amendmentid %}{{ amendmentid }}{% endif %} {% if corrigendumid %}{{ corrigendumid }}{% endif %} ({{ pubdate_monthyear }}){% endif %}</span></p>
168
165
  </div>
169
166
 
170
167
  <div style='mso-element:footer' id=ef3l>
@@ -176,13 +173,12 @@ MERGEFORMAT </span><span lang=EN-GB style='font-weight:normal'><span
176
173
  style='mso-element:field-separator'></span></span><![endif]--><span lang=FR-CH
177
174
  style='mso-ansi-language:FR-CH;font-weight:normal;mso-no-proof:yes'>ii</span><!--[if supportFields]><span
178
175
  lang=EN-GB style='font-weight:normal'><span style='mso-element:field-end'></span></span><![endif]--><span
179
- lang=FR-CH style='mso-ansi-language:FR-CH'><span style='mso-tab-count:1'>              </span>Rec.
180
- ITU‑{{ bureau }} {{ docnumeric }} {% if amendmentid %}{{ amendmentid }}{% endif %} {% if corrigendumid %}{{ corrigendumid }}{% endif %} ({{ pubdate_monthyear }})<o:p></o:p></span></p>
176
+ lang=FR-CH style='mso-ansi-language:FR-CH'><span style='mso-tab-count:1'>              </span>{% if doctype == "Resolution" %}{{ meeting_acronym }} &#x2013; {{ doctype }} {{ docnumber}}{% else %}{% if doctype_abbreviated %}{{ doctype_abbreviated }} {% endif %}{% if docnumber_lang %}{{docnumber_lang}}{% else %}{{ docnumber }}{% endif %} {% if amendmentid %}{{ amendmentid }}{% endif %} {% if corrigendumid %}{{ corrigendumid }}{% endif %} ({{ pubdate_monthyear }}){% endif %}</span></p>
181
177
  </div>
182
178
 
183
179
  <div style='mso-element:footer' id=f3>
184
- <p class=FooterQP style='line-height:12.0pt'><span lang=EN-GB><span style='mso-tab-count:2'>                                                                                                       </span>Rec.
185
- ITU‑{{ bureau }} {{docnumeric}} {% if amendmentid %}{{ amendmentid }}{% endif %} {% if corrigendumid %}{{ corrigendumid }}{% endif %} ({{ pubdate_monthyear }})<span style='mso-tab-count:1'>             </span></span><!--[if supportFields]><span
180
+ <p class=FooterQP style='line-height:12.0pt'><span lang=EN-GB><span style='mso-tab-count:2'>                                                                                                       </span>{% if doctype == "Resolution" %}{{ meeting_acronym }} &#x2013; {{ doctype }} {{ docnumber}}{% else %}{% if doctype_abbreviated %}{{ doctype_abbreviated }} {% endif %}{% if docnumber_lang %}{{docnumber_lang}}{% else %}{{ docnumber }}{% endif %} {% if amendmentid %}{{ amendmentid }}{% endif %} {% if corrigendumid %}{{ corrigendumid }}{% endif %} ({{ pubdate_monthyear }}){% endif %}
181
+ <span style='mso-tab-count:1'>             </span></span><!--[if supportFields]><span
186
182
  lang=EN-GB style='font-weight:normal'><span style='mso-element:field-begin'></span>
187
183
  PAGE<span style='mso-spacerun:yes'>  </span>\* MERGEFORMAT <span
188
184
  style='mso-element:field-separator'></span></span><![endif]--><span lang=EN-GB
@@ -192,8 +188,8 @@ lang=EN-GB style='font-weight:normal'><o:p></o:p></span></p>
192
188
  </div>
193
189
 
194
190
  <div style='mso-element:footer' id=f3l>
195
- <p class=FooterQPLandscape style='line-height:12.0pt'><span lang=EN-GB><span style='mso-tab-count:2'>                                                                                                       </span>Rec.
196
- ITU‑{{ bureau }} {{docnumeric}} {% if amendmentid %}{{ amendmentid }}{% endif %} {% if corrigendumid %}{{ corrigendumid }}{% endif %} ({{ pubdate_monthyear }})<span style='mso-tab-count:1'>             </span></span><!--[if supportFields]><span
191
+ <p class=FooterQPLandscape style='line-height:12.0pt'><span lang=EN-GB><span style='mso-tab-count:2'>                                                                                                       </span>{% if doctype == "Resolution" %}{{ meeting_acronym }} &#x2013; {{ doctype }} {{ docnumber}}{% else %}{% if doctype_abbreviated %}{{ doctype_abbreviated }} {% endif %}{% if docnumber_lang %}{{docnumber_lang}}{% else %}{{ docnumber }}{% endif %} {% if amendmentid %}{{ amendmentid }}{% endif %} {% if corrigendumid %}{{ corrigendumid }}{% endif %} ({{ pubdate_monthyear }}){% endif %}
192
+ <span style='mso-tab-count:1'>             </span></span><!--[if supportFields]><span
197
193
  lang=EN-GB style='font-weight:normal'><span style='mso-element:field-begin'></span>
198
194
  PAGE<span style='mso-spacerun:yes'>  </span>\* MERGEFORMAT <span
199
195
  style='mso-element:field-separator'></span></span><![endif]--><span lang=EN-GB