metanorma-iso 1.5.10 → 1.5.11
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/macos.yml +9 -1
- data/.github/workflows/ubuntu.yml +8 -0
- data/.github/workflows/windows.yml +7 -0
- data/lib/asciidoctor/iso/boilerplate-fr.xml +40 -0
- data/lib/asciidoctor/iso/boilerplate.xml +1 -0
- data/lib/asciidoctor/iso/cleanup.rb +5 -0
- data/lib/asciidoctor/iso/isodoc.rng +1 -43
- data/lib/isodoc/iso/html/header.html +8 -16
- data/lib/isodoc/iso/html/style-human.css +4 -0
- data/lib/isodoc/iso/html/style-iso.css +4 -0
- data/lib/isodoc/iso/i18n-en.yaml +3 -0
- data/lib/isodoc/iso/i18n-fr.yaml +3 -0
- data/lib/isodoc/iso/i18n-zh-Hans.yaml +4 -0
- data/lib/isodoc/iso/iso.amendment.xsl +27 -3
- data/lib/isodoc/iso/iso.international-standard.xsl +27 -3
- data/lib/isodoc/iso/metadata.rb +19 -19
- data/lib/metanorma/iso/version.rb +1 -1
- data/spec/asciidoctor-iso/base_spec.rb +22 -12
- data/spec/isodoc/amd_spec.rb +187 -22
- data/spec/isodoc/i18n_spec.rb +9 -22
- data/spec/isodoc/inline_spec.rb +1 -1
- data/spec/isodoc/metadata_spec.rb +168 -3
- data/spec/isodoc/postproc_spec.rb +2 -5
- data/spec/isodoc/ref_spec.rb +2 -5
- data/spec/spec_helper.rb +17 -1
- metadata +3 -2
@@ -81,6 +81,9 @@ INPUT
|
|
81
81
|
{:accesseddate=>"2012",
|
82
82
|
:activateddate=>"2013",
|
83
83
|
:agency=>"ISO",
|
84
|
+
:circulateddate=>"XXX",
|
85
|
+
:confirmeddate=>"XXX",
|
86
|
+
:copieddate=>"XXX",
|
84
87
|
:createddate=>"2010–2011",
|
85
88
|
:docnumber=>"ISO/PreCD3 17301-1",
|
86
89
|
:docnumber_lang=>"ISO/PreCD3 17301-1 (E)",
|
@@ -97,18 +100,24 @@ INPUT
|
|
97
100
|
:doctitlepart=>"Rice",
|
98
101
|
:doctitlepartlabel=>"Part 1",
|
99
102
|
:doctype=>"International Standard",
|
103
|
+
:doctype_display=>"International Standard",
|
100
104
|
:docyear=>"2016",
|
101
105
|
:draft=>"0.4",
|
102
106
|
:draftinfo=>" (draft 0.4, 2016-05-01)",
|
103
107
|
:edition=>"2",
|
104
108
|
:editorialgroup=>["TC 34", "SC 4", "WG 3"],
|
109
|
+
:implementeddate=>"XXX",
|
110
|
+
:issueddate=>"XXX",
|
105
111
|
:keywords=>["kw2", "kw1"],
|
112
|
+
:lang=>"en",
|
106
113
|
:obsoleteddate=>"2014",
|
107
114
|
:publisheddate=>"2011",
|
108
115
|
:publisher=>"International Organization for Standardization",
|
116
|
+
:receiveddate=>"XXX",
|
109
117
|
:revdate=>"2016-05-01",
|
110
118
|
:revdate_monthyear=>"May 2016",
|
111
119
|
:sc=>"SC 4",
|
120
|
+
:script=>"Latn",
|
112
121
|
:secretariat=>"GB",
|
113
122
|
:stage=>"30",
|
114
123
|
:stage_int=>30,
|
@@ -116,12 +125,17 @@ INPUT
|
|
116
125
|
:statusabbr=>"PreCD3",
|
117
126
|
:tc=>"TC 34",
|
118
127
|
:tc_docnumber=>["17301", "17302"],
|
128
|
+
:transmitteddate=>"XXX",
|
129
|
+
:unchangeddate=>"XXX",
|
119
130
|
:unpublished=>true,
|
131
|
+
:updateddate=>"XXX",
|
132
|
+
:vote_endeddate=>"XXX",
|
133
|
+
:vote_starteddate=>"XXX",
|
120
134
|
:wg=>"WG 3"}
|
121
135
|
OUTPUT
|
122
136
|
end
|
123
137
|
|
124
|
-
it "processes IsoXML metadata" do
|
138
|
+
it "processes IsoXML metadata #2" do
|
125
139
|
c = IsoDoc::Iso::HtmlConvert.new({})
|
126
140
|
arr = c.convert_init(<<~"INPUT", "test", false)
|
127
141
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
@@ -198,7 +212,12 @@ OUTPUT
|
|
198
212
|
</bibdata>
|
199
213
|
</iso-standard>
|
200
214
|
INPUT
|
201
|
-
{:
|
215
|
+
{:accesseddate=>"XXX",
|
216
|
+
:agency=>"ISO/IEC",
|
217
|
+
:circulateddate=>"XXX",
|
218
|
+
:confirmeddate=>"XXX",
|
219
|
+
:copieddate=>"XXX",
|
220
|
+
:createddate=>"XXX",
|
202
221
|
:docnumber=>"ISO/IEC/CD 17301-1-3",
|
203
222
|
:docnumber_lang=>"ISO/IEC/CD 17301-1-3 (E)",
|
204
223
|
:docnumber_reference=>"ISO/IEC/CD 17301-1-3 (E)",
|
@@ -213,20 +232,166 @@ INPUT
|
|
213
232
|
:doctitlepart=>"Rice",
|
214
233
|
:doctitlepartlabel=>"Part 1–3",
|
215
234
|
:doctype=>"International Standard",
|
235
|
+
:doctype_display=>"International Standard",
|
216
236
|
:docyear=>"2016",
|
217
237
|
:editorialgroup=>["ABC 34", "DEF 4", "GHI 3"],
|
218
238
|
:ics=>"1.2.3, 1.2.3",
|
239
|
+
:implementeddate=>"XXX",
|
240
|
+
:issueddate=>"XXX",
|
241
|
+
:lang=>"en",
|
242
|
+
:obsoleteddate=>"XXX",
|
219
243
|
:obsoletes=>"IEC 8121",
|
220
244
|
:obsoletes_part=>"3.1",
|
245
|
+
:publisheddate=>"XXX",
|
221
246
|
:publisher=>"International Organization for Standardization and International Electrotechnical Commission",
|
247
|
+
:receiveddate=>"XXX",
|
248
|
+
:sc=>"DEF 4",
|
249
|
+
:script=>"Latn",
|
250
|
+
:secretariat=>"XXX",
|
251
|
+
:stage=>"60",
|
252
|
+
:stage_int=>60,
|
253
|
+
:statusabbr=>"IS",
|
254
|
+
:tc=>"ABC 34",
|
255
|
+
:tc_docnumber=>["17301"],
|
256
|
+
:transmitteddate=>"XXX",
|
257
|
+
:unchangeddate=>"XXX",
|
258
|
+
:unpublished=>false,
|
259
|
+
:updateddate=>"XXX",
|
260
|
+
:vote_endeddate=>"XXX",
|
261
|
+
:vote_starteddate=>"XXX",
|
262
|
+
:wg=>"GHI 3"}
|
263
|
+
OUTPUT
|
264
|
+
end
|
265
|
+
|
266
|
+
it "processes IsoXML metadata in French" do
|
267
|
+
c = IsoDoc::Iso::HtmlConvert.new({})
|
268
|
+
arr = c.convert_init(<<~"INPUT", "test", false)
|
269
|
+
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
270
|
+
<bibdata>
|
271
|
+
<language>fr</language>
|
272
|
+
</bibdata>
|
273
|
+
</iso-standard>
|
274
|
+
INPUT
|
275
|
+
expect(metadata(c.info(Nokogiri::XML(<<~"INPUT"), nil))).to be_equivalent_to <<~"OUTPUT"
|
276
|
+
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
277
|
+
<bibdata type="standard">
|
278
|
+
<title>
|
279
|
+
<title type="title-intro" language="en" format="text/plain">Cereals and pulses</title>
|
280
|
+
<title type="title-main" language="en" format="text/plain">Specifications and test methods</title>
|
281
|
+
<title type="title-part" language="en" format="text/plain">Rice</title>
|
282
|
+
</title>
|
283
|
+
<title>
|
284
|
+
<title type="title-intro" language="fr" format="text/plain">Céréales et légumineuses</title>
|
285
|
+
<title type="title-main" language="fr" format="text/plain">Spécification et méthodes d'essai</title>
|
286
|
+
<title type="title-part" language="fr" format="text/plain">Riz</title>
|
287
|
+
</title>
|
288
|
+
<docidentifier type="ISO">ISO/IEC/CD 17301-1-3</docidentifier>
|
289
|
+
<docidentifier type="iso-with-lang">ISO/IEC/CD 17301-1-3 (E)</docidentifier>
|
290
|
+
<docidentifier type="iso-reference">ISO/IEC/CD 17301-1-3 (E)</docidentifier>
|
291
|
+
<docidentifier type="iso-tc">17301</docidentifier>
|
292
|
+
<contributor>
|
293
|
+
<role type="author"/>
|
294
|
+
<organization>
|
295
|
+
<name>ISO</name>
|
296
|
+
</organization>
|
297
|
+
</contributor>
|
298
|
+
<contributor>
|
299
|
+
<role type="publisher"/>
|
300
|
+
<organization>
|
301
|
+
<name>International Organization for Standardization</name>
|
302
|
+
<abbreviation>ISO</abbreviation>
|
303
|
+
</organization>
|
304
|
+
</contributor>
|
305
|
+
<contributor>
|
306
|
+
<role type="publisher"/>
|
307
|
+
<organization>
|
308
|
+
<name>International Electrotechnical Commission</name>
|
309
|
+
<abbreviation>IEC</abbreviation>
|
310
|
+
</organization>
|
311
|
+
</contributor>
|
312
|
+
<language>fr</language>
|
313
|
+
<script>Latn</script>
|
314
|
+
<status>
|
315
|
+
<stage abbreviation="IS">60</stage>
|
316
|
+
<substage>92</substage>
|
317
|
+
</status>
|
318
|
+
<copyright>
|
319
|
+
<from>2016</from>
|
320
|
+
<owner>
|
321
|
+
<organization>
|
322
|
+
<name>International Organization for Standardization</name>
|
323
|
+
</organization>
|
324
|
+
</owner>
|
325
|
+
</copyright>
|
326
|
+
<relation type="obsoletes">
|
327
|
+
<locality type="clause"><referenceFrom>3.1</referenceFrom></locality>
|
328
|
+
<docidentifier>IEC 8121</docidentifier>
|
329
|
+
</relation>
|
330
|
+
<ext>
|
331
|
+
<doctype language="">international-standard</doctype>
|
332
|
+
<doctype language="fr">Standard International</doctype>
|
333
|
+
<editorialgroup>
|
334
|
+
<technical-committee number="34" type="ABC">Food products</technical-committee>
|
335
|
+
<subcommittee number="4" type="DEF">Cereals and pulses</subcommittee>
|
336
|
+
<workgroup number="3" type="GHI">Rice Group</workgroup>
|
337
|
+
</editorialgroup>
|
338
|
+
<ics><code>1.2.3</code></ics>
|
339
|
+
<ics><code>1.2.3</code></ics>
|
340
|
+
<structuredidentifier>
|
341
|
+
<project-number part="1" subpart="3">ISO/IEC/CD 17301</project-number>
|
342
|
+
</strucuredidentifier>
|
343
|
+
<stagename>International standard</stagename>
|
344
|
+
</ext>
|
345
|
+
</bibdata>
|
346
|
+
</iso-standard>
|
347
|
+
INPUT
|
348
|
+
{:accesseddate=>"XXX",
|
349
|
+
:agency=>"ISO/IEC",
|
350
|
+
:circulateddate=>"XXX",
|
351
|
+
:confirmeddate=>"XXX",
|
352
|
+
:copieddate=>"XXX",
|
353
|
+
:createddate=>"XXX",
|
354
|
+
:docnumber=>"ISO/IEC/CD 17301-1-3",
|
355
|
+
:docnumber_lang=>"ISO/IEC/CD 17301-1-3 (E)",
|
356
|
+
:docnumber_reference=>"ISO/IEC/CD 17301-1-3 (E)",
|
357
|
+
:docsubtitle=>"Cereals and pulses — Specifications and test methods — Part 1–3: Rice",
|
358
|
+
:docsubtitleintro=>"Cereals and pulses",
|
359
|
+
:docsubtitlemain=>"Specifications and test methods",
|
360
|
+
:docsubtitlepart=>"Rice",
|
361
|
+
:docsubtitlepartlabel=>"Part 1–3",
|
362
|
+
:doctitle=>"Céréales et légumineuses — Spécification et méthodes d'essai — Partie 1–3: Riz",
|
363
|
+
:doctitleintro=>"Céréales et légumineuses",
|
364
|
+
:doctitlemain=>"Spécification et méthodes d'essai",
|
365
|
+
:doctitlepart=>"Riz",
|
366
|
+
:doctitlepartlabel=>"Partie 1–3",
|
367
|
+
:doctype=>"International Standard",
|
368
|
+
:doctype_display=>"Standard International",
|
369
|
+
:docyear=>"2016",
|
370
|
+
:editorialgroup=>["ABC 34", "DEF 4", "GHI 3"],
|
371
|
+
:ics=>"1.2.3, 1.2.3",
|
372
|
+
:implementeddate=>"XXX",
|
373
|
+
:issueddate=>"XXX",
|
374
|
+
:lang=>"fr",
|
375
|
+
:obsoleteddate=>"XXX",
|
376
|
+
:obsoletes=>"IEC 8121",
|
377
|
+
:obsoletes_part=>"3.1",
|
378
|
+
:publisheddate=>"XXX",
|
379
|
+
:publisher=>"International Organization for Standardization et International Electrotechnical Commission",
|
380
|
+
:receiveddate=>"XXX",
|
222
381
|
:sc=>"DEF 4",
|
223
|
-
:
|
382
|
+
:script=>"Latn",
|
383
|
+
:secretariat=>"XXX",
|
224
384
|
:stage=>"60",
|
225
385
|
:stage_int=>60,
|
226
386
|
:statusabbr=>"IS",
|
227
387
|
:tc=>"ABC 34",
|
228
388
|
:tc_docnumber=>["17301"],
|
389
|
+
:transmitteddate=>"XXX",
|
390
|
+
:unchangeddate=>"XXX",
|
229
391
|
:unpublished=>false,
|
392
|
+
:updateddate=>"XXX",
|
393
|
+
:vote_endeddate=>"XXX",
|
394
|
+
:vote_starteddate=>"XXX",
|
230
395
|
:wg=>"GHI 3"}
|
231
396
|
OUTPUT
|
232
397
|
end
|
@@ -613,11 +613,8 @@ documentation.</p>
|
|
613
613
|
presxml = <<~OUTPUT
|
614
614
|
<iso-standard xmlns="http://riboseinc.com/isoxml" type="presentation">
|
615
615
|
<bibdata type="standard">
|
616
|
-
<status><stage>30</stage></status>
|
616
|
+
<status><stage language="">30</stage></status>
|
617
617
|
</bibdata>
|
618
|
-
<local_bibdata type="standard">
|
619
|
-
<status><stage>30</stage></status>
|
620
|
-
</local_bibdata>
|
621
618
|
<boilerplate>
|
622
619
|
<copyright-statement>
|
623
620
|
<clause inline-header="true">
|
@@ -664,7 +661,7 @@ documentation.</p>
|
|
664
661
|
|
665
662
|
FileUtils.rm_f "test.doc"
|
666
663
|
FileUtils.rm_f "test.html"
|
667
|
-
expect((IsoDoc::Iso::PresentationXMLConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.css"}).convert("test", input, true))).to be_equivalent_to xmlpp(presxml)
|
664
|
+
expect(xmlpp(IsoDoc::Iso::PresentationXMLConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.css"}).convert("test", input, true)).sub(%r{<localized-strings>.*</localized-strings>}m, "")).to be_equivalent_to xmlpp(presxml)
|
668
665
|
IsoDoc::Iso::HtmlConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.css"}).convert("test", presxml, false)
|
669
666
|
word = File.read("test.html", encoding: "UTF-8")
|
670
667
|
expect((word)).to include '<h1 class="IntroTitle">Warning for Stuff</h1>'
|
data/spec/isodoc/ref_spec.rb
CHANGED
@@ -123,11 +123,8 @@ RSpec.describe IsoDoc do
|
|
123
123
|
presxml = <<~OUTPUT
|
124
124
|
<iso-standard xmlns='http://riboseinc.com/isoxml' type="presentation">
|
125
125
|
<bibdata>
|
126
|
-
<language>en</language>
|
126
|
+
<language current="true">en</language>
|
127
127
|
</bibdata>
|
128
|
-
<local_bibdata>
|
129
|
-
<language>en</language>
|
130
|
-
</local_bibdata>
|
131
128
|
<preface>
|
132
129
|
<foreword>
|
133
130
|
<p id='_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f'>
|
@@ -342,7 +339,7 @@ html = <<~OUTPUT
|
|
342
339
|
</body>
|
343
340
|
</html>
|
344
341
|
OUTPUT
|
345
|
-
expect(xmlpp(IsoDoc::Iso::PresentationXMLConvert.new({}).convert("test", input, true))).to be_equivalent_to xmlpp(presxml)
|
342
|
+
expect(xmlpp(IsoDoc::Iso::PresentationXMLConvert.new({}).convert("test", input, true)).sub(%r{<localized-strings>.*</localized-strings>}m, "")).to be_equivalent_to xmlpp(presxml)
|
346
343
|
expect(xmlpp(IsoDoc::Iso::HtmlConvert.new({}).convert("test", presxml, true))).to be_equivalent_to xmlpp(html)
|
347
344
|
end
|
348
345
|
|
data/spec/spec_helper.rb
CHANGED
@@ -118,8 +118,15 @@ BOILERPLATE =
|
|
118
118
|
gsub(/(?<=\p{Alnum})'(?=\p{Alpha})/, "’")
|
119
119
|
)
|
120
120
|
|
121
|
+
BOILERPLATE_FR =
|
122
|
+
HTMLEntities.new.decode(
|
123
|
+
File.read(File.join(File.dirname(__FILE__), "..", "lib", "asciidoctor", "iso", "boilerplate-fr.xml"), encoding: "utf-8").
|
124
|
+
gsub(/\{\{ agency \}\}/, "ISO").gsub(/\{\{ docyear \}\}/, Date.today.year.to_s).
|
125
|
+
gsub(/\{% if unpublished %\}.*\{% endif %\}/m, "").
|
126
|
+
gsub(/(?<=\p{Alnum})'(?=\p{Alpha})/, "’")
|
127
|
+
)
|
121
128
|
|
122
|
-
|
129
|
+
BLANK_HDR1 = <<~"HDR"
|
123
130
|
<?xml version="1.0" encoding="UTF-8"?>
|
124
131
|
<iso-standard xmlns="https://www.metanorma.org/ns/iso" type="semantic" version="#{Metanorma::ISO::VERSION}">
|
125
132
|
<bibdata type="standard">
|
@@ -162,9 +169,18 @@ BLANK_HDR = <<~"HDR"
|
|
162
169
|
<stagename>International standard</stagename>
|
163
170
|
</ext>
|
164
171
|
</bibdata>
|
172
|
+
HDR
|
173
|
+
|
174
|
+
BLANK_HDR = <<~"HDR"
|
175
|
+
#{BLANK_HDR1}
|
165
176
|
#{BOILERPLATE}
|
166
177
|
HDR
|
167
178
|
|
179
|
+
BLANK_HDR_FR = <<~"HDR"
|
180
|
+
#{BLANK_HDR1.sub(%r{<language>en</language>}, "<language>fr</language>")}
|
181
|
+
#{BOILERPLATE_FR}
|
182
|
+
HDR
|
183
|
+
|
168
184
|
TERM_BOILERPLATE = <<~END
|
169
185
|
<p id="_">For the purposes of this document,
|
170
186
|
the following terms and definitions apply.</p>
|
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: 1.5.
|
4
|
+
version: 1.5.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-10-
|
11
|
+
date: 2020-10-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ruby-jing
|
@@ -284,6 +284,7 @@ files:
|
|
284
284
|
- lib/asciidoctor/iso/base.rb
|
285
285
|
- lib/asciidoctor/iso/basicdoc.rng
|
286
286
|
- lib/asciidoctor/iso/biblio.rng
|
287
|
+
- lib/asciidoctor/iso/boilerplate-fr.xml
|
287
288
|
- lib/asciidoctor/iso/boilerplate.xml
|
288
289
|
- lib/asciidoctor/iso/cleanup.rb
|
289
290
|
- lib/asciidoctor/iso/converter.rb
|