metanorma-iso 1.8.0 → 1.8.5
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/.github/workflows/rake.yml +3 -13
- data/.hound.yml +3 -1
- data/.rubocop.yml +4 -8
- data/lib/asciidoctor/iso/base.rb +14 -11
- data/lib/asciidoctor/iso/biblio.rng +1 -0
- data/lib/asciidoctor/iso/cleanup.rb +40 -24
- data/lib/asciidoctor/iso/front.rb +28 -16
- data/lib/asciidoctor/iso/front_id.rb +66 -50
- data/lib/asciidoctor/iso/isodoc.rng +191 -3
- data/lib/asciidoctor/iso/isostandard-amd.rng +3 -0
- data/lib/asciidoctor/iso/isostandard.rng +12 -0
- data/lib/asciidoctor/iso/section.rb +2 -1
- data/lib/asciidoctor/iso/validate.rb +22 -110
- data/lib/asciidoctor/iso/validate_image.rb +97 -0
- data/lib/asciidoctor/iso/validate_requirements.rb +26 -20
- data/lib/asciidoctor/iso/validate_section.rb +55 -29
- data/lib/asciidoctor/iso/validate_style.rb +36 -24
- data/lib/asciidoctor/iso/validate_title.rb +2 -4
- data/lib/isodoc/iso/base_convert.rb +20 -14
- data/lib/isodoc/iso/html/isodoc.css +475 -20
- data/lib/isodoc/iso/html/isodoc.scss +456 -23
- data/lib/isodoc/iso/html/wordstyle.css +202 -31
- data/lib/isodoc/iso/html/wordstyle.scss +194 -32
- data/lib/isodoc/iso/iso.amendment.xsl +666 -193
- data/lib/isodoc/iso/iso.international-standard.xsl +666 -193
- data/lib/isodoc/iso/metadata.rb +3 -2
- data/lib/isodoc/iso/presentation_xml_convert.rb +15 -14
- data/lib/isodoc/iso/sts_convert.rb +10 -13
- data/lib/isodoc/iso/word_convert.rb +153 -39
- data/lib/isodoc/iso/xref.rb +44 -29
- data/lib/metanorma/iso/processor.rb +1 -0
- data/lib/metanorma/iso/version.rb +1 -1
- data/metanorma-iso.gemspec +3 -3
- data/spec/asciidoctor/base_spec.rb +426 -305
- data/spec/asciidoctor/blocks_spec.rb +96 -34
- data/spec/asciidoctor/cleanup_spec.rb +383 -25
- data/spec/asciidoctor/section_spec.rb +0 -14
- data/spec/asciidoctor/validate_spec.rb +218 -83
- data/spec/isodoc/amd_spec.rb +193 -201
- data/spec/isodoc/blocks_spec.rb +100 -88
- data/spec/isodoc/i18n_spec.rb +36 -36
- data/spec/isodoc/inline_spec.rb +2 -2
- data/spec/isodoc/iso_spec.rb +86 -138
- data/spec/isodoc/postproc_spec.rb +492 -442
- data/spec/isodoc/ref_spec.rb +6 -6
- data/spec/isodoc/section_spec.rb +301 -306
- data/spec/isodoc/table_spec.rb +166 -231
- data/spec/isodoc/terms_spec.rb +11 -8
- data/spec/isodoc/xref_spec.rb +147 -118
- data/spec/spec_helper.rb +16 -15
- metadata +8 -7
data/metanorma-iso.gemspec
CHANGED
@@ -27,11 +27,11 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.require_paths = ["lib"]
|
28
28
|
spec.files = `git ls-files`.split("\n")
|
29
29
|
spec.test_files = `git ls-files -- {spec}/*`.split("\n")
|
30
|
-
spec.required_ruby_version = Gem::Requirement.new(">= 2.
|
30
|
+
spec.required_ruby_version = Gem::Requirement.new(">= 2.5.0")
|
31
31
|
|
32
|
-
spec.add_dependency "isodoc", "~> 1.6.
|
32
|
+
spec.add_dependency "isodoc", "~> 1.6.2"
|
33
33
|
spec.add_dependency "metanorma-standoc", "~> 1.9.0"
|
34
|
-
spec.add_dependency "mn2sts", "~> 1.
|
34
|
+
spec.add_dependency "mn2sts", "~> 1.8.0"
|
35
35
|
spec.add_dependency "ruby-jing"
|
36
36
|
spec.add_dependency "tokenizer", "~> 0.3.0"
|
37
37
|
spec.add_dependency "twitter_cldr"
|
@@ -6,27 +6,33 @@ RSpec.describe Asciidoctor::ISO do
|
|
6
6
|
end
|
7
7
|
|
8
8
|
it "processes a blank document" do
|
9
|
-
|
9
|
+
input = <<~INPUT
|
10
10
|
#{ASCIIDOC_BLANK_HDR}
|
11
11
|
INPUT
|
12
|
+
output = <<~OUTPUT
|
12
13
|
#{BLANK_HDR}
|
13
14
|
<sections/>
|
14
15
|
</iso-standard>
|
15
16
|
OUTPUT
|
17
|
+
expect(xmlpp(Asciidoctor.convert(input, *OPTIONS)))
|
18
|
+
.to be_equivalent_to xmlpp(output)
|
16
19
|
end
|
17
20
|
|
18
21
|
it "converts a blank document" do
|
19
|
-
|
22
|
+
input = <<~INPUT
|
20
23
|
= Document title
|
21
24
|
Author
|
22
25
|
:docfile: test.adoc
|
23
26
|
:novalid:
|
24
27
|
:no-isobib:
|
25
28
|
INPUT
|
29
|
+
output = <<~OUTPUT
|
26
30
|
#{BLANK_HDR}
|
27
31
|
<sections/>
|
28
32
|
</iso-standard>
|
29
33
|
OUTPUT
|
34
|
+
expect(xmlpp(Asciidoctor.convert(input, *OPTIONS)))
|
35
|
+
.to be_equivalent_to xmlpp(output)
|
30
36
|
expect(File.exist?("test_alt.html")).to be true
|
31
37
|
expect(File.exist?("test.html")).to be true
|
32
38
|
expect(File.exist?("test.doc")).to be true
|
@@ -35,7 +41,7 @@ RSpec.describe Asciidoctor::ISO do
|
|
35
41
|
end
|
36
42
|
|
37
43
|
it "converts a blank document in French" do
|
38
|
-
|
44
|
+
input = <<~INPUT
|
39
45
|
= Document title
|
40
46
|
Author
|
41
47
|
:docfile: test.adoc
|
@@ -44,10 +50,13 @@ RSpec.describe Asciidoctor::ISO do
|
|
44
50
|
:no-pdf:
|
45
51
|
:language: fr
|
46
52
|
INPUT
|
53
|
+
output = <<~OUTPUT
|
47
54
|
#{BLANK_HDR_FR}
|
48
55
|
<sections/>
|
49
56
|
</iso-standard>
|
50
57
|
OUTPUT
|
58
|
+
expect(xmlpp(Asciidoctor.convert(input, *OPTIONS)))
|
59
|
+
.to be_equivalent_to xmlpp(output)
|
51
60
|
end
|
52
61
|
|
53
62
|
it "processes default metadata" do
|
@@ -96,87 +105,88 @@ RSpec.describe Asciidoctor::ISO do
|
|
96
105
|
:copyright-year: 2000
|
97
106
|
:horizontal: true
|
98
107
|
INPUT
|
99
|
-
expect(xmlpp(output.sub(%r{<boilerplate>.*</boilerplate>}m, "")))
|
100
|
-
|
101
|
-
|
102
|
-
<
|
103
|
-
<
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
<
|
117
|
-
|
118
|
-
<name>International Organization for Standardization</name>
|
119
|
-
<abbreviation>ISO</abbreviation>
|
120
|
-
</organization>
|
121
|
-
</contributor>
|
122
|
-
<contributor>
|
123
|
-
<role type="publisher"/>
|
124
|
-
<organization>
|
125
|
-
<name>International Organization for Standardization</name>
|
126
|
-
<abbreviation>ISO</abbreviation>
|
127
|
-
</organization>
|
128
|
-
</contributor>
|
129
|
-
<edition>2</edition>
|
130
|
-
<version>
|
131
|
-
<revision-date>2000-01-01</revision-date>
|
132
|
-
<draft>0.3.4</draft>
|
133
|
-
</version>
|
134
|
-
<language>en</language>
|
135
|
-
<script>Latn</script>
|
136
|
-
<status>
|
137
|
-
<stage abbreviation="WD">20</stage>
|
138
|
-
<substage>20</substage>
|
139
|
-
<iteration>3</iteration>
|
140
|
-
</status>
|
141
|
-
<copyright>
|
142
|
-
<from>2000</from>
|
143
|
-
<owner>
|
108
|
+
expect(xmlpp(output.sub(%r{<boilerplate>.*</boilerplate>}m, "")))
|
109
|
+
.to be_equivalent_to xmlpp(<<~"OUTPUT")
|
110
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
111
|
+
<iso-standard type="semantic" version="#{Metanorma::ISO::VERSION}" xmlns="https://www.metanorma.org/ns/iso">
|
112
|
+
<bibdata type="standard">
|
113
|
+
<title format="text/plain" language="en" type="main">Introduction — Main Title — Title — Title Part</title>
|
114
|
+
<title format="text/plain" language="en" type="title-intro">Introduction</title>
|
115
|
+
<title format="text/plain" language="en" type="title-main">Main Title — Title</title>
|
116
|
+
<title format="text/plain" language="en" type="title-part">Title Part</title>
|
117
|
+
<title format="text/plain" language="fr" type="main">Introduction Française — Titre Principal — Part du Titre</title>
|
118
|
+
<title format="text/plain" language="fr" type="title-intro">Introduction Française</title>
|
119
|
+
<title format="text/plain" language="fr" type="title-main">Titre Principal</title>
|
120
|
+
<title format="text/plain" language="fr" type="title-part">Part du Titre</title>
|
121
|
+
<docidentifier type="ISO">ISO/PreWD3 1000-1</docidentifier>
|
122
|
+
<docidentifier type="iso-with-lang">ISO/PreWD3 1000-1(E)</docidentifier>
|
123
|
+
<docidentifier type="iso-reference">ISO/PreWD3 1000-1:2000(E)</docidentifier>
|
124
|
+
<docnumber>1000</docnumber>
|
125
|
+
<contributor>
|
126
|
+
<role type="author"/>
|
144
127
|
<organization>
|
145
128
|
<name>International Organization for Standardization</name>
|
146
129
|
<abbreviation>ISO</abbreviation>
|
147
130
|
</organization>
|
148
|
-
</
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
<
|
159
|
-
<
|
160
|
-
|
161
|
-
</
|
162
|
-
<
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
<
|
167
|
-
</
|
168
|
-
<
|
169
|
-
<
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
131
|
+
</contributor>
|
132
|
+
<contributor>
|
133
|
+
<role type="publisher"/>
|
134
|
+
<organization>
|
135
|
+
<name>International Organization for Standardization</name>
|
136
|
+
<abbreviation>ISO</abbreviation>
|
137
|
+
</organization>
|
138
|
+
</contributor>
|
139
|
+
<edition>2</edition>
|
140
|
+
<version>
|
141
|
+
<revision-date>2000-01-01</revision-date>
|
142
|
+
<draft>0.3.4</draft>
|
143
|
+
</version>
|
144
|
+
<language>en</language>
|
145
|
+
<script>Latn</script>
|
146
|
+
<status>
|
147
|
+
<stage abbreviation="WD">20</stage>
|
148
|
+
<substage>20</substage>
|
149
|
+
<iteration>3</iteration>
|
150
|
+
</status>
|
151
|
+
<copyright>
|
152
|
+
<from>2000</from>
|
153
|
+
<owner>
|
154
|
+
<organization>
|
155
|
+
<name>International Organization for Standardization</name>
|
156
|
+
<abbreviation>ISO</abbreviation>
|
157
|
+
</organization>
|
158
|
+
</owner>
|
159
|
+
</copyright>
|
160
|
+
<ext>
|
161
|
+
<doctype>article</doctype>
|
162
|
+
<horizontal>true</horizontal>
|
163
|
+
<editorialgroup>
|
164
|
+
<technical-committee number="1" type="A">TC</technical-committee>
|
165
|
+
<technical-committee number="11" type="A1">TC1</technical-committee>
|
166
|
+
<subcommittee number="2" type="B">SC</subcommittee>
|
167
|
+
<subcommittee number="21" type="B1">SC1</subcommittee>
|
168
|
+
<workgroup number="3" type="C">WG</workgroup>
|
169
|
+
<workgroup number="31" type="C1">WG1</workgroup>
|
170
|
+
<secretariat>SECRETARIAT</secretariat>
|
171
|
+
</editorialgroup>
|
172
|
+
<ics>
|
173
|
+
<code>1</code>
|
174
|
+
</ics>
|
175
|
+
<ics>
|
176
|
+
<code>2</code>
|
177
|
+
</ics>
|
178
|
+
<ics>
|
179
|
+
<code>3</code>
|
180
|
+
</ics>
|
181
|
+
<structuredidentifier>
|
182
|
+
<project-number part="1">ISO 1000</project-number>
|
183
|
+
</structuredidentifier>
|
184
|
+
<stagename>Third working draft</stagename>
|
185
|
+
</ext>
|
186
|
+
</bibdata>
|
187
|
+
<sections/>
|
188
|
+
</iso-standard>
|
189
|
+
OUTPUT
|
180
190
|
end
|
181
191
|
|
182
192
|
it "processes complex metadata" do
|
@@ -203,95 +213,132 @@ RSpec.describe Asciidoctor::ISO do
|
|
203
213
|
:pub-email: x@example.com
|
204
214
|
:pub-uri: http://www.example.com
|
205
215
|
INPUT
|
206
|
-
expect(xmlpp(output.sub(%r{<boilerplate>.*</boilerplate>}m, "")))
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
<
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
216
|
+
expect(xmlpp(output.sub(%r{<boilerplate>.*</boilerplate>}m, "")))
|
217
|
+
.to be_equivalent_to xmlpp(<<~"OUTPUT")
|
218
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
219
|
+
<iso-standard type="semantic" version="#{Metanorma::ISO::VERSION}" xmlns="https://www.metanorma.org/ns/iso">
|
220
|
+
<bibdata type="standard">
|
221
|
+
<docidentifier type="ISO">ISO/IEC/IETF/TR 1000-1-1:2001</docidentifier>
|
222
|
+
<docidentifier type="iso-with-lang">ISO/IEC/IETF/TR 1000-1-1:2001(X)</docidentifier>
|
223
|
+
<docidentifier type="iso-reference">ISO/IEC/IETF/TR 1000-1-1:2001(X)</docidentifier>
|
224
|
+
<docidentifier type="iso-tc">2000</docidentifier>
|
225
|
+
<docidentifier type="iso-tc">2003</docidentifier>
|
226
|
+
<docnumber>1000</docnumber>
|
227
|
+
<contributor>
|
228
|
+
<role type="author"/>
|
229
|
+
<organization>
|
230
|
+
<name>International Electrotechnical Commission</name>
|
231
|
+
<abbreviation>IEC</abbreviation>
|
232
|
+
</organization>
|
233
|
+
</contributor>
|
234
|
+
<contributor>
|
235
|
+
<role type="author"/>
|
236
|
+
<organization>
|
237
|
+
<name>IETF</name>
|
238
|
+
</organization>
|
239
|
+
</contributor>
|
240
|
+
<contributor>
|
241
|
+
<role type="author"/>
|
242
|
+
<organization>
|
243
|
+
<name>International Organization for Standardization</name>
|
244
|
+
<abbreviation>ISO</abbreviation>
|
245
|
+
</organization>
|
246
|
+
</contributor>
|
247
|
+
<contributor>
|
248
|
+
<role type="publisher"/>
|
249
|
+
<organization>
|
250
|
+
<name>International Electrotechnical Commission</name>
|
251
|
+
<abbreviation>IEC</abbreviation>
|
252
|
+
<address>
|
253
|
+
<formattedAddress>1 Infinity Loop + California</formattedAddress>
|
254
|
+
</address>
|
255
|
+
<phone>3333333</phone>
|
256
|
+
<phone type='fax'>4444444</phone>
|
257
|
+
<email>x@example.com</email>
|
258
|
+
<uri>http://www.example.com</uri>
|
259
|
+
</organization>
|
260
|
+
</contributor>
|
261
|
+
<contributor>
|
262
|
+
<role type="publisher"/>
|
263
|
+
<organization>
|
264
|
+
<name>IETF</name>
|
265
|
+
<address>
|
266
|
+
<formattedAddress>1 Infinity Loop + California</formattedAddress>
|
267
|
+
</address>
|
268
|
+
<phone>3333333</phone>
|
269
|
+
<phone type='fax'>4444444</phone>
|
270
|
+
<email>x@example.com</email>
|
271
|
+
<uri>http://www.example.com</uri>
|
272
|
+
</organization>
|
273
|
+
</contributor>
|
274
|
+
<contributor>
|
275
|
+
<role type="publisher"/>
|
276
|
+
<organization>
|
277
|
+
<name>International Organization for Standardization</name>
|
278
|
+
<abbreviation>ISO</abbreviation>
|
279
|
+
<address>
|
280
|
+
<formattedAddress>1 Infinity Loop + California</formattedAddress>
|
281
|
+
</address>
|
282
|
+
<phone>3333333</phone>
|
283
|
+
<phone type='fax'>4444444</phone>
|
284
|
+
<email>x@example.com</email>
|
285
|
+
<uri>http://www.example.com</uri>
|
286
|
+
</organization>
|
287
|
+
</contributor>
|
288
|
+
<language>el</language>
|
289
|
+
<script>Grek</script>
|
290
|
+
<status>
|
291
|
+
<stage abbreviation="IS">60</stage>
|
292
|
+
<substage>60</substage>
|
293
|
+
</status>
|
294
|
+
<copyright>
|
295
|
+
<from>2001</from>
|
296
|
+
<owner>
|
297
|
+
<organization>
|
298
|
+
<name>International Organization for Standardization</name>
|
299
|
+
<abbreviation>ISO</abbreviation>
|
300
|
+
<address>
|
301
|
+
<formattedAddress>1 Infinity Loop + California</formattedAddress>
|
302
|
+
</address>
|
303
|
+
<phone>3333333</phone>
|
304
|
+
<phone type='fax'>4444444</phone>
|
305
|
+
<email>x@example.com</email>
|
306
|
+
<uri>http://www.example.com</uri>
|
307
|
+
#{' '}
|
308
|
+
</organization>
|
309
|
+
</owner>
|
310
|
+
</copyright>
|
311
|
+
<copyright>
|
312
|
+
<from>2001</from>
|
313
|
+
<owner>
|
314
|
+
<organization>
|
315
|
+
<name>IETF</name>
|
316
|
+
<address>
|
317
|
+
<formattedAddress>1 Infinity Loop + California</formattedAddress>
|
318
|
+
</address>
|
319
|
+
<phone>3333333</phone>
|
320
|
+
<phone type='fax'>4444444</phone>
|
321
|
+
<email>x@example.com</email>
|
322
|
+
<uri>http://www.example.com</uri>
|
323
|
+
</organization>
|
324
|
+
</owner>
|
325
|
+
</copyright>
|
326
|
+
<ext>
|
327
|
+
<doctype>technical-report</doctype>
|
328
|
+
<editorialgroup>
|
329
|
+
<technical-committee/>
|
330
|
+
<subcommittee/>
|
331
|
+
<workgroup/>
|
332
|
+
</editorialgroup>
|
333
|
+
<structuredidentifier>
|
334
|
+
<project-number part="1" subpart="1">ISO/IEC/IETF 1000</project-number>
|
335
|
+
</structuredidentifier>
|
336
|
+
<stagename>International standard</stagename>
|
337
|
+
</ext>
|
338
|
+
</bibdata>
|
339
|
+
<sections/>
|
340
|
+
</iso-standard>
|
341
|
+
OUTPUT
|
295
342
|
end
|
296
343
|
|
297
344
|
it "processes subdivisions" do
|
@@ -318,7 +365,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
318
365
|
:pub-email: x@example.com
|
319
366
|
:pub-uri: http://www.example.com
|
320
367
|
INPUT
|
321
|
-
expect(xmlpp(strip_guid(output
|
368
|
+
expect(xmlpp(strip_guid(output
|
369
|
+
.sub(%r{<boilerplate>.*</boilerplate>}m, ""))))
|
322
370
|
.to be_equivalent_to xmlpp(<<~"OUTPUT")
|
323
371
|
<iso-standard xmlns="https://www.metanorma.org/ns/iso" type="semantic" version="#{Metanorma::ISO::VERSION}">
|
324
372
|
<bibdata type='standard'>
|
@@ -336,13 +384,6 @@ RSpec.describe Asciidoctor::ISO do
|
|
336
384
|
<name>International Organization for Standardization</name>
|
337
385
|
<subdivision>Subdivision</subdivision>
|
338
386
|
<abbreviation>SD</abbreviation>
|
339
|
-
<address>
|
340
|
-
<formattedAddress>1 Infinity Loop <br/>California</formattedAddress>
|
341
|
-
</address>
|
342
|
-
<phone>3333333</phone>
|
343
|
-
<phone type='fax'>4444444</phone>
|
344
|
-
<email>x@example.com</email>
|
345
|
-
<uri>http://www.example.com</uri>
|
346
387
|
</organization>
|
347
388
|
</contributor>
|
348
389
|
<contributor>
|
@@ -420,12 +461,81 @@ RSpec.describe Asciidoctor::ISO do
|
|
420
461
|
:doctype: international-standard
|
421
462
|
:iteration: 2
|
422
463
|
INPUT
|
423
|
-
expect(xmlpp(output.sub(%r{<boilerplate>.*</boilerplate>}m, "")))
|
424
|
-
|
464
|
+
expect(xmlpp(output.sub(%r{<boilerplate>.*</boilerplate>}m, "")))
|
465
|
+
.to be_equivalent_to xmlpp(<<~"OUTPUT")
|
466
|
+
<iso-standard type="semantic" version="#{Metanorma::ISO::VERSION}" xmlns="https://www.metanorma.org/ns/iso">
|
467
|
+
<bibdata type="standard">
|
468
|
+
<docidentifier type='ISO'>ISO/FDIS 1000.2</docidentifier>
|
469
|
+
<docidentifier type='iso-with-lang'>ISO/FDIS 1000.2(F)</docidentifier>
|
470
|
+
<docidentifier type='iso-reference'>ISO/FDIS 1000.2(F)</docidentifier>
|
471
|
+
<docnumber>1000</docnumber>
|
472
|
+
<contributor>
|
473
|
+
<role type="author"/>
|
474
|
+
<organization>
|
475
|
+
<name>International Organization for Standardization</name>
|
476
|
+
<abbreviation>ISO</abbreviation>
|
477
|
+
</organization>
|
478
|
+
</contributor>
|
479
|
+
<contributor>
|
480
|
+
<role type="publisher"/>
|
481
|
+
<organization>
|
482
|
+
<name>International Organization for Standardization</name>
|
483
|
+
<abbreviation>ISO</abbreviation>
|
484
|
+
</organization>
|
485
|
+
</contributor>
|
486
|
+
<language>fr</language>
|
487
|
+
<script>Latn</script>
|
488
|
+
<status>
|
489
|
+
<stage abbreviation="FDIS">50</stage>
|
490
|
+
<substage>00</substage>
|
491
|
+
<iteration>2</iteration>
|
492
|
+
</status>
|
493
|
+
<copyright>
|
494
|
+
<from>#{Date.today.year}</from>
|
495
|
+
<owner>
|
496
|
+
<organization>
|
497
|
+
<name>International Organization for Standardization</name>
|
498
|
+
<abbreviation>ISO</abbreviation>
|
499
|
+
</organization>
|
500
|
+
</owner>
|
501
|
+
</copyright>
|
502
|
+
<ext>
|
503
|
+
<doctype>international-standard</doctype>
|
504
|
+
<editorialgroup>
|
505
|
+
<technical-committee/>
|
506
|
+
<subcommittee/>
|
507
|
+
<workgroup/>
|
508
|
+
</editorialgroup>
|
509
|
+
<structuredidentifier>
|
510
|
+
<project-number>ISO 1000</project-number>
|
511
|
+
</structuredidentifier>
|
512
|
+
<stagename>Final draft</stagename>
|
513
|
+
</ext>
|
514
|
+
</bibdata>
|
515
|
+
<sections/>
|
516
|
+
</iso-standard>
|
517
|
+
OUTPUT
|
518
|
+
end
|
519
|
+
|
520
|
+
it "defaults substage for stage 60" do
|
521
|
+
output = Asciidoctor.convert(<<~"INPUT", *OPTIONS)
|
522
|
+
= Document title
|
523
|
+
Author
|
524
|
+
:docfile: test.adoc
|
525
|
+
:nodoc:
|
526
|
+
:novalid:
|
527
|
+
:no-isobib:
|
528
|
+
:docnumber: 1000
|
529
|
+
:docstage: 60
|
530
|
+
INPUT
|
531
|
+
|
532
|
+
expect(xmlpp(output.sub(%r{<boilerplate>.*</boilerplate>}m, "")))
|
533
|
+
.to be_equivalent_to xmlpp(<<~"OUTPUT")
|
534
|
+
<iso-standard xmlns="https://www.metanorma.org/ns/iso" type="semantic" version="#{Metanorma::ISO::VERSION}">
|
425
535
|
<bibdata type="standard">
|
426
|
-
|
427
|
-
<docidentifier type='iso-with-lang'>ISO
|
428
|
-
<docidentifier type='iso-reference'>ISO
|
536
|
+
<docidentifier type="ISO">ISO 1000</docidentifier>
|
537
|
+
<docidentifier type='iso-with-lang'>ISO 1000(E)</docidentifier>
|
538
|
+
<docidentifier type='iso-reference'>ISO 1000(E)</docidentifier>
|
429
539
|
<docnumber>1000</docnumber>
|
430
540
|
<contributor>
|
431
541
|
<role type="author"/>
|
@@ -441,12 +551,12 @@ RSpec.describe Asciidoctor::ISO do
|
|
441
551
|
<abbreviation>ISO</abbreviation>
|
442
552
|
</organization>
|
443
553
|
</contributor>
|
444
|
-
|
554
|
+
|
555
|
+
<language>en</language>
|
445
556
|
<script>Latn</script>
|
446
557
|
<status>
|
447
|
-
<stage abbreviation="
|
448
|
-
<substage>
|
449
|
-
<iteration>2</iteration>
|
558
|
+
<stage abbreviation="IS">60</stage>
|
559
|
+
<substage>60</substage>
|
450
560
|
</status>
|
451
561
|
<copyright>
|
452
562
|
<from>#{Date.today.year}</from>
|
@@ -458,7 +568,7 @@ RSpec.describe Asciidoctor::ISO do
|
|
458
568
|
</owner>
|
459
569
|
</copyright>
|
460
570
|
<ext>
|
461
|
-
<doctype>
|
571
|
+
<doctype>article</doctype>
|
462
572
|
<editorialgroup>
|
463
573
|
<technical-committee/>
|
464
574
|
<subcommittee/>
|
@@ -467,15 +577,15 @@ RSpec.describe Asciidoctor::ISO do
|
|
467
577
|
<structuredidentifier>
|
468
578
|
<project-number>ISO 1000</project-number>
|
469
579
|
</structuredidentifier>
|
470
|
-
<stagename>
|
580
|
+
<stagename>International standard</stagename>
|
471
581
|
</ext>
|
472
582
|
</bibdata>
|
473
583
|
<sections/>
|
474
|
-
|
475
|
-
|
584
|
+
</iso-standard>
|
585
|
+
OUTPUT
|
476
586
|
end
|
477
587
|
|
478
|
-
it "
|
588
|
+
it "populates metadata for PRF" do
|
479
589
|
output = Asciidoctor.convert(<<~"INPUT", *OPTIONS)
|
480
590
|
= Document title
|
481
591
|
Author
|
@@ -485,64 +595,65 @@ RSpec.describe Asciidoctor::ISO do
|
|
485
595
|
:no-isobib:
|
486
596
|
:docnumber: 1000
|
487
597
|
:docstage: 60
|
598
|
+
:docsubstage: 00
|
488
599
|
INPUT
|
600
|
+
expect(xmlpp(output.sub(%r{<boilerplate>.*</boilerplate>}m, "")))
|
601
|
+
.to be_equivalent_to xmlpp(<<~"OUTPUT")
|
602
|
+
<iso-standard xmlns="https://www.metanorma.org/ns/iso" type="semantic" version="#{Metanorma::ISO::VERSION}">
|
603
|
+
<bibdata type="standard">
|
604
|
+
<docidentifier type="ISO">ISO 1000</docidentifier>
|
605
|
+
<docidentifier type='iso-with-lang'>ISO 1000(E)</docidentifier>
|
606
|
+
<docidentifier type='iso-reference'>ISO 1000(E)</docidentifier>
|
607
|
+
<docnumber>1000</docnumber>
|
608
|
+
<contributor>
|
609
|
+
<role type="author"/>
|
610
|
+
<organization>
|
611
|
+
<name>International Organization for Standardization</name>
|
612
|
+
<abbreviation>ISO</abbreviation>
|
613
|
+
</organization>
|
614
|
+
</contributor>
|
615
|
+
<contributor>
|
616
|
+
<role type="publisher"/>
|
617
|
+
<organization>
|
618
|
+
<name>International Organization for Standardization</name>
|
619
|
+
<abbreviation>ISO</abbreviation>
|
620
|
+
</organization>
|
621
|
+
</contributor>
|
489
622
|
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
|
500
|
-
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
|
511
|
-
|
512
|
-
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
|
517
|
-
|
518
|
-
|
519
|
-
|
520
|
-
|
521
|
-
<organization>
|
522
|
-
<name>International Organization for Standardization</name>
|
523
|
-
<abbreviation>ISO</abbreviation>
|
524
|
-
</organization>
|
525
|
-
</owner>
|
526
|
-
</copyright>
|
527
|
-
<ext>
|
528
|
-
<doctype>article</doctype>
|
529
|
-
<editorialgroup>
|
530
|
-
<technical-committee/>
|
531
|
-
<subcommittee/>
|
532
|
-
<workgroup/>
|
533
|
-
</editorialgroup>
|
534
|
-
<structuredidentifier>
|
535
|
-
<project-number>ISO 1000</project-number>
|
536
|
-
</structuredidentifier>
|
537
|
-
<stagename>International standard</stagename>
|
538
|
-
</ext>
|
539
|
-
</bibdata>
|
540
|
-
<sections/>
|
541
|
-
</iso-standard>
|
542
|
-
OUTPUT
|
623
|
+
<language>en</language>
|
624
|
+
<script>Latn</script>
|
625
|
+
<status>
|
626
|
+
<stage abbreviation="PRF">60</stage>
|
627
|
+
<substage>00</substage>
|
628
|
+
</status>
|
629
|
+
<copyright>
|
630
|
+
<from>#{Date.today.year}</from>
|
631
|
+
<owner>
|
632
|
+
<organization>
|
633
|
+
<name>International Organization for Standardization</name>
|
634
|
+
<abbreviation>ISO</abbreviation>
|
635
|
+
</organization>
|
636
|
+
</owner>
|
637
|
+
</copyright>
|
638
|
+
<ext>
|
639
|
+
<doctype>article</doctype>
|
640
|
+
<editorialgroup>
|
641
|
+
<technical-committee/>
|
642
|
+
<subcommittee/>
|
643
|
+
<workgroup/>
|
644
|
+
</editorialgroup>
|
645
|
+
<structuredidentifier>
|
646
|
+
<project-number>ISO 1000</project-number>
|
647
|
+
</structuredidentifier>
|
648
|
+
<stagename>Proof</stagename>
|
649
|
+
</ext>
|
650
|
+
</bibdata>
|
651
|
+
<sections/>
|
652
|
+
</iso-standard>
|
653
|
+
OUTPUT
|
543
654
|
end
|
544
655
|
|
545
|
-
it "
|
656
|
+
it "defaults metadata for DIR" do
|
546
657
|
output = Asciidoctor.convert(<<~"INPUT", *OPTIONS)
|
547
658
|
= Document title
|
548
659
|
Author
|
@@ -551,62 +662,62 @@ RSpec.describe Asciidoctor::ISO do
|
|
551
662
|
:novalid:
|
552
663
|
:no-isobib:
|
553
664
|
:docnumber: 1000
|
554
|
-
:
|
555
|
-
:docsubstage: 00
|
665
|
+
:doctype: directive
|
556
666
|
INPUT
|
557
|
-
expect(xmlpp(output.sub(%r{<boilerplate>.*</boilerplate>}m, ""))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
558
|
-
<iso-standard xmlns="https://www.metanorma.org/ns/iso" type="semantic" version="#{Metanorma::ISO::VERSION}">
|
559
|
-
<bibdata type="standard">
|
560
|
-
<docidentifier type="ISO">ISO 1000</docidentifier>
|
561
|
-
<docidentifier type='iso-with-lang'>ISO 1000(E)</docidentifier>
|
562
|
-
<docidentifier type='iso-reference'>ISO 1000(E)</docidentifier>
|
563
|
-
<docnumber>1000</docnumber>
|
564
|
-
<contributor>
|
565
|
-
<role type="author"/>
|
566
|
-
<organization>
|
567
|
-
<name>International Organization for Standardization</name>
|
568
|
-
<abbreviation>ISO</abbreviation>
|
569
|
-
</organization>
|
570
|
-
</contributor>
|
571
|
-
<contributor>
|
572
|
-
<role type="publisher"/>
|
573
|
-
<organization>
|
574
|
-
<name>International Organization for Standardization</name>
|
575
|
-
<abbreviation>ISO</abbreviation>
|
576
|
-
</organization>
|
577
|
-
</contributor>
|
578
667
|
|
579
|
-
|
580
|
-
|
581
|
-
|
582
|
-
|
583
|
-
<
|
584
|
-
|
585
|
-
|
586
|
-
<
|
587
|
-
<
|
668
|
+
expect(xmlpp(output.sub(%r{<boilerplate>.*</boilerplate>}m, "")))
|
669
|
+
.to be_equivalent_to xmlpp(<<~"OUTPUT")
|
670
|
+
<iso-standard xmlns="https://www.metanorma.org/ns/iso" type="semantic" version="#{Metanorma::ISO::VERSION}">
|
671
|
+
<bibdata type='standard'>
|
672
|
+
<docidentifier type='ISO'>ISO DIR 1000</docidentifier>
|
673
|
+
<docidentifier type='iso-with-lang'>ISO DIR 1000(E)</docidentifier>
|
674
|
+
<docidentifier type='iso-reference'>ISO DIR 1000(E)</docidentifier>
|
675
|
+
<docnumber>1000</docnumber>
|
676
|
+
<contributor>
|
677
|
+
<role type='author'/>
|
588
678
|
<organization>
|
589
679
|
<name>International Organization for Standardization</name>
|
590
680
|
<abbreviation>ISO</abbreviation>
|
591
681
|
</organization>
|
592
|
-
</
|
593
|
-
|
594
|
-
|
595
|
-
|
596
|
-
|
597
|
-
|
598
|
-
|
599
|
-
|
600
|
-
</
|
601
|
-
<
|
602
|
-
|
603
|
-
|
604
|
-
|
605
|
-
|
606
|
-
|
607
|
-
|
608
|
-
|
609
|
-
|
682
|
+
</contributor>
|
683
|
+
<contributor>
|
684
|
+
<role type='publisher'/>
|
685
|
+
<organization>
|
686
|
+
<name>International Organization for Standardization</name>
|
687
|
+
<abbreviation>ISO</abbreviation>
|
688
|
+
</organization>
|
689
|
+
</contributor>
|
690
|
+
<language>en</language>
|
691
|
+
<script>Latn</script>
|
692
|
+
<status>
|
693
|
+
<stage abbreviation='IS'>60</stage>
|
694
|
+
<substage>60</substage>
|
695
|
+
</status>
|
696
|
+
<copyright>
|
697
|
+
<from>2021</from>
|
698
|
+
<owner>
|
699
|
+
<organization>
|
700
|
+
<name>International Organization for Standardization</name>
|
701
|
+
<abbreviation>ISO</abbreviation>
|
702
|
+
</organization>
|
703
|
+
</owner>
|
704
|
+
</copyright>
|
705
|
+
<ext>
|
706
|
+
<doctype>directive</doctype>
|
707
|
+
<editorialgroup>
|
708
|
+
<technical-committee/>
|
709
|
+
<subcommittee/>
|
710
|
+
<workgroup/>
|
711
|
+
</editorialgroup>
|
712
|
+
<structuredidentifier>
|
713
|
+
<project-number>ISO 1000</project-number>
|
714
|
+
</structuredidentifier>
|
715
|
+
<stagename>International standard</stagename>
|
716
|
+
</ext>
|
717
|
+
</bibdata>
|
718
|
+
<sections> </sections>
|
719
|
+
</iso-standard>
|
720
|
+
OUTPUT
|
610
721
|
end
|
611
722
|
|
612
723
|
it "reads scripts into blank HTML document" do
|
@@ -632,9 +743,12 @@ RSpec.describe Asciidoctor::ISO do
|
|
632
743
|
:no-pdf:
|
633
744
|
INPUT
|
634
745
|
html = File.read("test.html", encoding: "utf-8")
|
635
|
-
expect(html)
|
636
|
-
|
637
|
-
expect(html)
|
746
|
+
expect(html)
|
747
|
+
.to match(%r[\bpre[^{]+\{[^{]+font-family: "Courier New", monospace;]m)
|
748
|
+
expect(html)
|
749
|
+
.to match(%r[blockquote[^{]+\{[^{]+font-family: "Cambria", serif;]m)
|
750
|
+
expect(html)
|
751
|
+
.to match(%r[\.h2Annex[^{]+\{[^{]+font-family: "Cambria", serif;]m)
|
638
752
|
end
|
639
753
|
|
640
754
|
it "uses default fonts for alt doc" do
|
@@ -647,9 +761,12 @@ RSpec.describe Asciidoctor::ISO do
|
|
647
761
|
:no-pdf:
|
648
762
|
INPUT
|
649
763
|
html = File.read("test_alt.html", encoding: "utf-8")
|
650
|
-
expect(html)
|
651
|
-
|
652
|
-
expect(html)
|
764
|
+
expect(html)
|
765
|
+
.to match(%r[\bpre[^{]+\{[^{]+font-family: "Space Mono", monospace;]m)
|
766
|
+
expect(html)
|
767
|
+
.to match(%r[blockquote[^{]+\{[^{]+font-family: "Lato", sans-serif;]m)
|
768
|
+
expect(html)
|
769
|
+
.to match(%r[\.h2Annex[^{]+\{[^{]+font-family: "Lato", sans-serif;]m)
|
653
770
|
end
|
654
771
|
|
655
772
|
it "uses Chinese fonts" do
|
@@ -663,9 +780,12 @@ RSpec.describe Asciidoctor::ISO do
|
|
663
780
|
:no-pdf:
|
664
781
|
INPUT
|
665
782
|
html = File.read("test.html", encoding: "utf-8")
|
666
|
-
expect(html)
|
667
|
-
|
668
|
-
expect(html)
|
783
|
+
expect(html)
|
784
|
+
.to match(%r[\bpre[^{]+\{[^{]+font-family: "Courier New", monospace;]m)
|
785
|
+
expect(html)
|
786
|
+
.to match(%r[blockquote[^{]+\{[^{]+font-family: "Source Han Sans", serif;]m)
|
787
|
+
expect(html)
|
788
|
+
.to match(%r[\.h2Annex[^{]+\{[^{]+font-family: "Source Han Sans", sans-serif;]m)
|
669
789
|
end
|
670
790
|
|
671
791
|
it "uses specified fonts" do
|
@@ -683,7 +803,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
683
803
|
INPUT
|
684
804
|
html = File.read("test.html", encoding: "utf-8")
|
685
805
|
expect(html).to match(%r[\bpre[^{]+\{[^{]+font-family: Andale Mono;]m)
|
686
|
-
expect(html)
|
806
|
+
expect(html)
|
807
|
+
.to match(%r[blockquote[^{]+\{[^{]+font-family: Zapf Chancery;]m)
|
687
808
|
expect(html).to match(%r[\.h2Annex[^{]+\{[^{]+font-family: Comic Sans;]m)
|
688
809
|
end
|
689
810
|
|