metanorma-iso 2.6.4 → 2.7.1

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.
@@ -237,11 +237,13 @@ module IsoDoc
237
237
 
238
238
  def doctype(isoxml, _out)
239
239
  super
240
- ics = []
241
- isoxml.xpath(ns("//bibdata/ext/ics/code")).each { |i| ics << i.text }
240
+ ics = isoxml.xpath(ns("//bibdata/ext/ics/code"))
241
+ .each_with_object([]) { |i, m| m << i.text }
242
242
  set(:ics, ics.empty? ? nil : ics.join(", "))
243
243
  a = isoxml.at(ns("//bibdata/ext/horizontal")) and
244
244
  set(:horizontal, a.text)
245
+ a = isoxml.at(ns("//bibdata/ext/fast-track")) and
246
+ set(:fast_track, a.text)
245
247
  end
246
248
  end
247
249
  end
@@ -79,6 +79,18 @@ module Metanorma
79
79
  name
80
80
  end
81
81
 
82
+ def document_scheme(node)
83
+ node.attr("document-scheme") || "2024"
84
+ end
85
+
86
+ def metadata_attrs(node)
87
+ ret = super
88
+ a = document_scheme(node) and
89
+ ret += "<presentation-metadata><name>document-scheme</name>" \
90
+ "<value>#{a}</value></presentation-metadata>"
91
+ ret
92
+ end
93
+
82
94
  def outputs(node, ret)
83
95
  File.open("#{@filename}.xml", "w:UTF-8") { |f| f.write(ret) }
84
96
  presentation_xml_converter(node).convert("#{@filename}.xml")
@@ -95,8 +95,89 @@
95
95
  <ref name="pagebreak"/>
96
96
  <ref name="hr"/>
97
97
  <ref name="bookmark"/>
98
+ <ref name="amend"/>
98
99
  </choice>
99
100
  </define>
101
+ <define name="amend">
102
+ <element name="amend">
103
+ <ref name="AmendType"/>
104
+ </element>
105
+ </define>
106
+ <define name="AmendType">
107
+ <optional>
108
+ <attribute name="id">
109
+ <data type="ID"/>
110
+ </attribute>
111
+ </optional>
112
+ <attribute name="change">
113
+ <choice>
114
+ <value>add</value>
115
+ <value>modify</value>
116
+ <value>delete</value>
117
+ <value>replace</value>
118
+ </choice>
119
+ </attribute>
120
+ <optional>
121
+ <attribute name="path"/>
122
+ </optional>
123
+ <optional>
124
+ <attribute name="path_end"/>
125
+ </optional>
126
+ <optional>
127
+ <attribute name="title"/>
128
+ </optional>
129
+ <optional>
130
+ <element name="location">
131
+ <zeroOrMore>
132
+ <choice>
133
+ <ref name="locality"/>
134
+ <ref name="localityStack"/>
135
+ </choice>
136
+ </zeroOrMore>
137
+ </element>
138
+ </optional>
139
+ <optional>
140
+ <element name="description">
141
+ <zeroOrMore>
142
+ <ref name="BasicBlock"/>
143
+ </zeroOrMore>
144
+ </element>
145
+ </optional>
146
+ <optional>
147
+ <element name="newcontent">
148
+ <optional>
149
+ <attribute name="id">
150
+ <data type="ID"/>
151
+ </attribute>
152
+ </optional>
153
+ <zeroOrMore>
154
+ <ref name="BasicBlock"/>
155
+ </zeroOrMore>
156
+ </element>
157
+ </optional>
158
+ <zeroOrMore>
159
+ <ref name="classification"/>
160
+ </zeroOrMore>
161
+ <zeroOrMore>
162
+ <ref name="contributor"/>
163
+ </zeroOrMore>
164
+ </define>
165
+ <define name="classification">
166
+ <element name="classification">
167
+ <ref name="classification_tag"/>
168
+ <ref name="classification_value"/>
169
+ </element>
170
+ </define>
171
+ <define name="classification_tag">
172
+ <element name="tag">
173
+ <text/>
174
+ </element>
175
+ </define>
176
+ <define name="classification_value">
177
+ <element name="value">
178
+ <text/>
179
+ </element>
180
+ </define>
100
181
  <define name="paragraph">
101
182
  <element name="p">
102
183
  <ref name="ParagraphType"/>
@@ -163,6 +244,9 @@
163
244
  <data type="ID"/>
164
245
  </attribute>
165
246
  <attribute name="reviewer"/>
247
+ <optional>
248
+ <attribute name="type"/>
249
+ </optional>
166
250
  <optional>
167
251
  <attribute name="date">
168
252
  <data type="dateTime"/>
@@ -939,18 +1023,12 @@
939
1023
  </optional>
940
1024
  <optional>
941
1025
  <attribute name="width">
942
- <choice>
943
- <data type="int"/>
944
- <value>auto</value>
945
- </choice>
1026
+ <ref name="ImageSize"/>
946
1027
  </attribute>
947
1028
  </optional>
948
1029
  <optional>
949
1030
  <attribute name="height">
950
- <choice>
951
- <data type="int"/>
952
- <value>auto</value>
953
- </choice>
1031
+ <ref name="ImageSize"/>
954
1032
  </attribute>
955
1033
  </optional>
956
1034
  <optional>
@@ -965,6 +1043,14 @@
965
1043
  </attribute>
966
1044
  </optional>
967
1045
  </define>
1046
+ <define name="ImageSize">
1047
+ <choice>
1048
+ <data type="string">
1049
+ <param name="pattern">\d+([.]\d+)?(%?)</param>
1050
+ </data>
1051
+ <value>auto</value>
1052
+ </choice>
1053
+ </define>
968
1054
  <define name="video">
969
1055
  <element name="video">
970
1056
  <attribute name="id">
@@ -9,11 +9,42 @@
9
9
  -->
10
10
  <include href="biblio.rng">
11
11
  <define name="BibData">
12
- <ref name="BibliographicItem"/>
12
+ <ref name="StandardBibliographicItem"/>
13
13
  <optional>
14
14
  <ref name="ext"/>
15
15
  </optional>
16
16
  </define>
17
+ <define name="docrelation">
18
+ <element name="relation">
19
+ <attribute name="type">
20
+ <ref name="DocRelationType"/>
21
+ </attribute>
22
+ <optional>
23
+ <element name="description">
24
+ <ref name="FormattedString"/>
25
+ </element>
26
+ </optional>
27
+ <element name="bibitem">
28
+ <ref name="StandardReducedBibliographicItem"/>
29
+ </element>
30
+ <choice>
31
+ <zeroOrMore>
32
+ <ref name="locality"/>
33
+ </zeroOrMore>
34
+ <zeroOrMore>
35
+ <ref name="localityStack"/>
36
+ </zeroOrMore>
37
+ </choice>
38
+ <choice>
39
+ <zeroOrMore>
40
+ <ref name="sourceLocality"/>
41
+ </zeroOrMore>
42
+ <zeroOrMore>
43
+ <ref name="sourceLocalityStack"/>
44
+ </zeroOrMore>
45
+ </choice>
46
+ </element>
47
+ </define>
17
48
  </include>
18
49
  <define name="ext">
19
50
  <element name="ext">
@@ -161,4 +192,16 @@
161
192
  </optional>
162
193
  </element>
163
194
  </define>
195
+ <define name="StandardBibliographicItem">
196
+ <ref name="BibliographicItem"/>
197
+ <zeroOrMore>
198
+ <ref name="amend"/>
199
+ </zeroOrMore>
200
+ </define>
201
+ <define name="StandardReducedBibliographicItem">
202
+ <ref name="ReducedBibliographicItem"/>
203
+ <zeroOrMore>
204
+ <ref name="amend"/>
205
+ </zeroOrMore>
206
+ </define>
164
207
  </grammar>
@@ -241,6 +241,9 @@
241
241
  </element>
242
242
  </define>
243
243
  <define name="FullNameType">
244
+ <optional>
245
+ <ref name="name_abbreviation"/>
246
+ </optional>
244
247
  <choice>
245
248
  <group>
246
249
  <zeroOrMore>
@@ -266,6 +269,11 @@
266
269
  <ref name="variantname"/>
267
270
  </zeroOrMore>
268
271
  </define>
272
+ <define name="name_abbreviation">
273
+ <element name="abbreviation">
274
+ <ref name="LocalizedString"/>
275
+ </element>
276
+ </define>
269
277
  <define name="prefix">
270
278
  <element name="prefix">
271
279
  <ref name="LocalizedString"/>
@@ -870,6 +878,9 @@
870
878
  <optional>
871
879
  <ref name="validity"/>
872
880
  </optional>
881
+ <optional>
882
+ <ref name="depiction"/>
883
+ </optional>
873
884
  </define>
874
885
  <define name="btitle">
875
886
  <element name="title">
@@ -16,6 +16,7 @@ module Metanorma
16
16
  metadata_stage(node, xml)
17
17
  @amd && a = node.attr("updates-document-type") and
18
18
  xml.updates_document_type a
19
+ a = node.attr("fast-track") and xml.send "fast-track", a != "false"
19
20
  end
20
21
 
21
22
  STAGE_ERROR = [Pubid::Core::Errors::HarmonizedStageCodeInvalidError,
@@ -24,9 +25,12 @@ module Metanorma
24
25
 
25
26
  def metadata_stage(node, xml)
26
27
  id = iso_id_default(iso_id_params(node))
27
- id.stage and
28
- xml.stagename metadata_stagename(id)&.strip,
29
- **attr_code(abbreviation: id.typed_stage_abbrev&.strip)
28
+ id.stage or return
29
+ if abbr = id.typed_stage_abbrev
30
+ abbr = abbr.to_s.upcase.strip
31
+ end
32
+ xml.stagename metadata_stagename(id)&.strip,
33
+ **attr_code(abbreviation: abbr)
30
34
  rescue *STAGE_ERROR
31
35
  end
32
36
 
@@ -51,7 +55,7 @@ module Metanorma
51
55
  def metadata_status(node, xml)
52
56
  stage = get_stage(node)
53
57
  substage = get_substage(node)
54
- abbrev = iso_id_default(iso_id_params(node)).stage&.abbr
58
+ abbrev = iso_id_default(iso_id_params(node)).stage&.abbr&.upcase
55
59
  xml.status do |s|
56
60
  s.stage stage, **attr_code(abbreviation: abbrev)
57
61
  s.substage substage
@@ -82,7 +82,7 @@ module Metanorma
82
82
 
83
83
  # unpublished is for internal use
84
84
  def iso_id_params_core(node)
85
- pub = (node.attr("publisher") || "ISO").split(/[;,]/)
85
+ pub = iso_id_pub(node)
86
86
  ret = { number: node.attr("docnumber"),
87
87
  part: node.attr("partnumber"),
88
88
  language: node.attr("language") || "en",
@@ -94,6 +94,11 @@ module Metanorma
94
94
  ret
95
95
  end
96
96
 
97
+ def iso_id_pub(node)
98
+ (node.attr("publisher") || default_publisher).split(/[;,]/)
99
+ .map(&:strip).map { |x| org_abbrev[x] || x }
100
+ end
101
+
97
102
  def iso_id_params_add(node)
98
103
  stage = iso_id_stage(node)
99
104
  ret = { number: node.attr("amendment-number") ||
@@ -136,7 +141,7 @@ module Metanorma
136
141
  iso_id_out_common(xml, params, with_prf)
137
142
  @amd and return
138
143
  iso_id_out_non_amd(xml, params, with_prf)
139
- rescue StandardError => e
144
+ rescue StandardError, *STAGE_ERROR => e
140
145
  clean_abort("Document identifier: #{e}", xml)
141
146
  end
142
147
 
@@ -17,10 +17,19 @@
17
17
  these elements; we just want one namespace for any child grammars
18
18
  of this.
19
19
  -->
20
- <!-- VERSION v1.2.9 -->
20
+ <!-- VERSION v1.3.0 -->
21
21
  <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">
22
22
  <include href="reqt.rng"/>
23
23
  <include href="basicdoc.rng">
24
+ <define name="amend">
25
+ <element name="amend">
26
+ <ref name="BlockAttributes"/>
27
+ <ref name="AmendType"/>
28
+ <zeroOrMore>
29
+ <ref name="autonumber"/>
30
+ </zeroOrMore>
31
+ </element>
32
+ </define>
24
33
  <define name="admonition">
25
34
  <element name="admonition">
26
35
  <attribute name="type">
@@ -137,6 +146,9 @@
137
146
  <data type="boolean"/>
138
147
  </attribute>
139
148
  </optional>
149
+ <optional>
150
+ <attribute name="style"/>
151
+ </optional>
140
152
  <oneOrMore>
141
153
  <ref name="PureTextElement"/>
142
154
  </oneOrMore>
@@ -2319,69 +2331,6 @@
2319
2331
  <ref name="CitationType"/>
2320
2332
  </element>
2321
2333
  </define>
2322
- <define name="amend">
2323
- <element name="amend">
2324
- <optional>
2325
- <attribute name="id">
2326
- <data type="ID"/>
2327
- </attribute>
2328
- </optional>
2329
- <attribute name="change">
2330
- <choice>
2331
- <value>add</value>
2332
- <value>modify</value>
2333
- <value>delete</value>
2334
- <value>replace</value>
2335
- </choice>
2336
- </attribute>
2337
- <optional>
2338
- <attribute name="path"/>
2339
- </optional>
2340
- <optional>
2341
- <attribute name="path_end"/>
2342
- </optional>
2343
- <optional>
2344
- <attribute name="title"/>
2345
- </optional>
2346
- <ref name="BlockAttributes"/>
2347
- <optional>
2348
- <element name="location">
2349
- <zeroOrMore>
2350
- <ref name="locality"/>
2351
- </zeroOrMore>
2352
- </element>
2353
- </optional>
2354
- <zeroOrMore>
2355
- <ref name="autonumber"/>
2356
- </zeroOrMore>
2357
- <optional>
2358
- <element name="description">
2359
- <zeroOrMore>
2360
- <ref name="BasicBlock"/>
2361
- </zeroOrMore>
2362
- </element>
2363
- </optional>
2364
- <optional>
2365
- <element name="newcontent">
2366
- <optional>
2367
- <attribute name="id">
2368
- <data type="ID"/>
2369
- </attribute>
2370
- </optional>
2371
- <zeroOrMore>
2372
- <ref name="BasicBlock"/>
2373
- </zeroOrMore>
2374
- </element>
2375
- </optional>
2376
- <optional>
2377
- <element name="description">
2378
- <zeroOrMore>
2379
- <ref name="BasicBlock"/>
2380
- </zeroOrMore>
2381
- </element>
2382
- </optional>
2383
- </element>
2384
- </define>
2385
2334
  <define name="autonumber">
2386
2335
  <element name="autonumber">
2387
2336
  <attribute name="type">
@@ -33,6 +33,7 @@ module Metanorma
33
33
  "Source Han Sans" => nil,
34
34
  "Source Han Sans Normal" => nil,
35
35
  "Courier New" => nil,
36
+ "Inter" => nil,
36
37
  }
37
38
  end
38
39
 
@@ -26,6 +26,9 @@
26
26
  <optional>
27
27
  <ref name="updates_document_type"/>
28
28
  </optional>
29
+ <optional>
30
+ <ref name="fast_track"/>
31
+ </optional>
29
32
  </define>
30
33
  <define name="bdate">
31
34
  <element name="date">
@@ -222,4 +225,9 @@
222
225
  <text/>
223
226
  </element>
224
227
  </define>
228
+ <define name="fast_track">
229
+ <element name="fast-track">
230
+ <data type="boolean"/>
231
+ </element>
232
+ </define>
225
233
  </grammar>
@@ -207,20 +207,4 @@
207
207
  <value>permission</value>
208
208
  </choice>
209
209
  </define>
210
- <define name="classification">
211
- <element name="classification">
212
- <ref name="classification_tag"/>
213
- <ref name="classification_value"/>
214
- </element>
215
- </define>
216
- <define name="classification_tag">
217
- <element name="tag">
218
- <text/>
219
- </element>
220
- </define>
221
- <define name="classification_value">
222
- <element name="value">
223
- <text/>
224
- </element>
225
- </define>
226
210
  </grammar>
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module ISO
3
- VERSION = "2.6.4".freeze
3
+ VERSION = "2.7.1".freeze
4
4
  end
5
5
  end
@@ -32,9 +32,9 @@ Gem::Specification.new do |spec|
32
32
  spec.test_files = `git ls-files -- {spec}/*`.split("\n")
33
33
  spec.required_ruby_version = Gem::Requirement.new(">= 2.7.0")
34
34
 
35
- spec.add_dependency "metanorma-standoc", "~> 2.7.0"
35
+ spec.add_dependency "metanorma-standoc", "~> 2.8.0"
36
36
  spec.add_dependency "mnconvert", "~> 1.14"
37
- spec.add_dependency "pubid-iso", "~> 0.6.0"
37
+ spec.add_dependency "pubid-iso"
38
38
  spec.add_dependency "pubid-cen"
39
39
  spec.add_dependency "pubid-iec"
40
40
  spec.add_dependency "ruby-jing"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-iso
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.4
4
+ version: 2.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-12-22 00:00:00.000000000 Z
11
+ date: 2024-02-05 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: 2.7.0
19
+ version: 2.8.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: 2.7.0
26
+ version: 2.8.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: mnconvert
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -42,16 +42,16 @@ dependencies:
42
42
  name: pubid-iso
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: 0.6.0
47
+ version: '0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: 0.6.0
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: pubid-cen
57
57
  requirement: !ruby/object:Gem::Requirement