metanorma-iec 1.0.3 → 1.0.8

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.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/macos.yml +8 -7
  3. data/.github/workflows/ubuntu.yml +12 -9
  4. data/.github/workflows/windows.yml +8 -8
  5. data/lib/asciidoctor/iec/biblio.rng +142 -37
  6. data/lib/asciidoctor/iec/converter.rb +22 -130
  7. data/lib/asciidoctor/iec/front.rb +220 -0
  8. data/lib/asciidoctor/iec/isodoc.rng +48 -2
  9. data/lib/asciidoctor/iec/isostandard.rng +17 -1
  10. data/lib/isodoc/iec/base_convert.rb +157 -0
  11. data/lib/isodoc/iec/html/htmlstyle.scss +11 -8
  12. data/lib/isodoc/iec/html/isodoc.scss +15 -9
  13. data/lib/isodoc/iec/html/scripts.html +23 -21
  14. data/lib/isodoc/iec/html/wordstyle.scss +0 -3
  15. data/lib/isodoc/iec/html_convert.rb +8 -0
  16. data/lib/isodoc/iec/i18n-en.yaml +2 -0
  17. data/lib/isodoc/iec/i18n-fr.yaml +2 -0
  18. data/lib/isodoc/iec/iec.international-standard.xsl +4133 -0
  19. data/lib/isodoc/iec/metadata.rb +3 -52
  20. data/lib/isodoc/iec/pdf_convert.rb +31 -0
  21. data/lib/isodoc/iec/word_convert.rb +17 -6
  22. data/lib/metanorma-iec.rb +1 -0
  23. data/lib/metanorma/iec/processor.rb +12 -1
  24. data/lib/metanorma/iec/version.rb +1 -1
  25. data/spec/asciidoctor-iec/base_spec.rb +20 -29
  26. data/spec/asciidoctor-iec/blocks_spec.rb +15 -7
  27. data/spec/asciidoctor-iec/cleanup_spec.rb +13 -7
  28. data/spec/asciidoctor-iec/iev_spec.rb +161 -0
  29. data/spec/asciidoctor-iec/inline_spec.rb +2 -1
  30. data/spec/asciidoctor-iec/section_spec.rb +8 -8
  31. data/spec/assets/iso.xml +65 -2
  32. data/spec/examples/rice.html +5 -5
  33. data/spec/examples/rice_img/rice_image1.png +0 -0
  34. data/spec/examples/rice_img/rice_image2.png +0 -0
  35. data/spec/examples/rice_img/rice_image3_1.png +0 -0
  36. data/spec/examples/rice_img/rice_image3_2.png +0 -0
  37. data/spec/examples/rice_img/rice_image3_3.png +0 -0
  38. data/spec/isodoc/blocks_spec.rb +160 -0
  39. data/spec/isodoc/i18n_spec.rb +15 -22
  40. data/spec/isodoc/iev_spec.rb +360 -0
  41. data/spec/isodoc/inline_spec.rb +2 -2
  42. data/spec/isodoc/iso_spec.rb +2 -19
  43. data/spec/isodoc/metadata_spec.rb +92 -9
  44. data/spec/isodoc/postproc_spec.rb +8 -2
  45. data/spec/isodoc/ref_spec.rb +249 -0
  46. data/spec/isodoc/section_spec.rb +49 -14
  47. data/spec/isodoc/terms_spec.rb +2 -2
  48. data/spec/metanorma/processor_spec.rb +3 -3
  49. data/spec/spec_helper.rb +3 -2
  50. metadata +14 -2
@@ -12,16 +12,14 @@ RSpec.describe IsoDoc do
12
12
  <introduction id="B" obligation="informative"><title>Introduction</title><clause id="C" inline-header="false" obligation="informative">
13
13
  <title>Introduction Subsection</title>
14
14
  </clause>
15
- <patent-notice>
16
15
  <p>This is patent boilerplate</p>
17
- </patent-notice>
18
16
  </introduction></preface><sections>
19
17
  <clause id="D" obligation="normative">
20
18
  <title>Scope</title>
21
19
  <p id="E">Text</p>
22
20
  </clause>
23
21
 
24
- <clause id="H" obligation="normative"><title>Terms, Definitions, Symbols and Abbreviated Terms</title><terms id="I" obligation="normative">
22
+ <clause id="H" obligation="normative"><title>Terms, definitions, symbols and abbreviated terms</title><terms id="I" obligation="normative">
25
23
  <title>Normal Terms</title>
26
24
  <term id="J">
27
25
  <preferred>Term2</preferred>
@@ -58,11 +56,11 @@ RSpec.describe IsoDoc do
58
56
  <appendix id="Q2" inline-header="false" obligation="normative">
59
57
  <title>An Appendix</title>
60
58
  </appendix>
61
- </annex><bibliography><references id="R" obligation="informative">
59
+ </annex><bibliography><references id="R" obligation="informative" normative="true">
62
60
  <title>Normative References</title>
63
61
  </references><clause id="S" obligation="informative">
64
62
  <title>Bibliography</title>
65
- <references id="T" obligation="informative">
63
+ <references id="T" obligation="informative" normative="false">
66
64
  <title>Bibliography Subsection</title>
67
65
  </references>
68
66
  </clause>
@@ -169,16 +167,14 @@ OUTPUT
169
167
  <introduction id="B" obligation="informative"><title>Introduction</title><clause id="C" inline-header="false" obligation="informative">
170
168
  <title>Introduction Subsection</title>
171
169
  </clause>
172
- <patent-notice>
173
170
  <p>This is patent boilerplate</p>
174
- </patent-notice>
175
171
  </introduction></preface><sections>
176
172
  <clause id="D" obligation="normative">
177
173
  <title>Scope</title>
178
174
  <p id="E">Text</p>
179
175
  </clause>
180
176
 
181
- <clause id="H" obligation="normative"><title>Terms, Definitions, Symbols and Abbreviated Terms</title><terms id="I" obligation="normative">
177
+ <clause id="H" obligation="normative"><title>Terms, definitions, symbols and abbreviated terms</title><terms id="I" obligation="normative">
182
178
  <title>Normal Terms</title>
183
179
  <term id="J">
184
180
  <preferred>Term2</preferred>
@@ -215,11 +211,11 @@ OUTPUT
215
211
  <appendix id="Q2" inline-header="false" obligation="normative">
216
212
  <title>An Appendix</title>
217
213
  </appendix>
218
- </annex><bibliography><references id="R" obligation="informative">
214
+ </annex><bibliography><references id="R" obligation="informative" normative="true">
219
215
  <title>Normative References</title>
220
216
  </references><clause id="S" obligation="informative">
221
217
  <title>Bibliography</title>
222
- <references id="T" obligation="informative">
218
+ <references id="T" obligation="informative" normative="false">
223
219
  <title>Bibliography Subsection</title>
224
220
  </references>
225
221
  </clause>
@@ -311,6 +307,43 @@ OUTPUT
311
307
  OUTPUT
312
308
  end
313
309
 
310
+ it "processes subclauses with and without titles" do
311
+ expect(xmlpp(IsoDoc::Iec::HtmlConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
312
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
313
+ <sections>
314
+ <clause id="D" obligation="normative">
315
+ <title>Scope</title>
316
+ <clause id="D1" obligation="normative">
317
+ <title>Scope 1</title>
318
+ </clause>
319
+ <clause id="D2" obligation="normative">
320
+ </clause>
321
+ </clause>
322
+ </sections>
323
+ </iso-standard>
324
+ INPUT
325
+ #{HTML_HDR}
326
+ <div id=''>
327
+ <h1 class='ForewordTitle'>FOREWORD</h1>
328
+ <div class='boilerplate_legal'/>
329
+ </div>
330
+ #{IEC_TITLE}
331
+ <div id='D'>
332
+ <h1>1&#160; Scope</h1>
333
+ <div id='D1'>
334
+ <h2>1.1&#160; Scope 1</h2>
335
+ </div>
336
+ <div id='D2'>
337
+ <h2>1.2&#160; </h2>
338
+ </div>
339
+ </div>
340
+ </div>
341
+ </body>
342
+ </html>
343
+ OUTPUT
344
+ end
345
+
346
+
314
347
  it "processes simple terms & definitions" do
315
348
  expect(xmlpp(IsoDoc::Iec::HtmlConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
316
349
  <iso-standard xmlns="http://riboseinc.com/isoxml">
@@ -329,7 +362,7 @@ OUTPUT
329
362
  <div class="boilerplate_legal"/>
330
363
  </div>
331
364
  #{IEC_TITLE}
332
- <div id="H"><h1>1&#160; Terms and definitions</h1>
365
+ <div id="H"><h1>1&#160; Terms, Definitions, Symbols and Abbreviated Terms</h1>
333
366
  <p class="TermNum" id="J">1.1</p>
334
367
  <p class="Terms" style="text-align:left;">Term2</p>
335
368
  </div>
@@ -365,7 +398,7 @@ OUTPUT
365
398
  <h2>1.1&#160; Introduction</h2>
366
399
  </div>
367
400
  <div id="O">
368
- <span class="zzMoveToFollowing"><b>1.2&#160; Clause 4.2 </b></span>
401
+ <span class="zzMoveToFollowing"><b>1.2&#160; Clause 4.2&#160; </b></span>
369
402
  </div>
370
403
  </div>
371
404
  </div>
@@ -379,7 +412,8 @@ OUTPUT
379
412
  <iso-standard xmlns="http://riboseinc.com/isoxml">
380
413
  <bibdata>
381
414
  <status>
382
- <stage>60</stage>
415
+ <stage abbreviation="PPUB">60</stage>
416
+ <substage abbreviation="PPUB">60</substage>
383
417
  </status>
384
418
  </bibdata>
385
419
  <sections>
@@ -413,7 +447,8 @@ OUTPUT
413
447
  <iso-standard xmlns="http://riboseinc.com/isoxml">
414
448
  <bibdata>
415
449
  <status>
416
- <stage>30</stage>
450
+ <stage abbreviation="CD">30</stage>
451
+ <substage abbreviation="CD">00</substage>
417
452
  </status>
418
453
  </bibdata>
419
454
  <sections>
@@ -5,7 +5,7 @@ RSpec.describe IsoDoc do
5
5
  expect(xmlpp(IsoDoc::Iec::HtmlConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
6
6
  <iso-standard xmlns="http://riboseinc.com/isoxml">
7
7
  <sections>
8
- <terms id="_terms_and_definitions" obligation="normative"><title>Terms and Definitions</title>
8
+ <terms id="_terms_and_definitions" obligation="normative"><title>Terms and definitions</title>
9
9
 
10
10
  <term id="paddy1"><preferred>paddy</preferred>
11
11
  <domain>rice</domain>
@@ -98,7 +98,7 @@ OUTPUT
98
98
  expect((IsoDoc::Iec::WordConvert.new({}).convert("test", <<~"INPUT", true).sub(%r{^.*<div id="_terms_and_definitions">}m, '<div id="_terms_and_definitions">').sub(%r{<br[^>]*>\s*<div class="colophon"/>.*$}m, ""))).to be_equivalent_to xmlpp(<<~"OUTPUT")
99
99
  <iso-standard xmlns="http://riboseinc.com/isoxml">
100
100
  <sections>
101
- <terms id="_terms_and_definitions" obligation="normative"><title>Terms and Definitions</title>
101
+ <terms id="_terms_and_definitions" obligation="normative"><title>Terms and definitions</title>
102
102
 
103
103
  <term id="paddy1"><preferred>paddy</preferred>
104
104
  <domain>rice</domain>
@@ -15,7 +15,7 @@ RSpec.describe Metanorma::Iec::Processor do
15
15
 
16
16
  it "registers output formats against metanorma" do
17
17
  expect(processor.output_formats.sort.to_s).to be_equivalent_to <<~"OUTPUT"
18
- [[:doc, "doc"], [:html, "html"], [:rxl, "rxl"], [:xml, "xml"]]
18
+ [[:doc, "doc"], [:html, "html"], [:pdf, "pdf"], [:rxl, "rxl"], [:xml, "xml"]]
19
19
  OUTPUT
20
20
  end
21
21
 
@@ -57,7 +57,7 @@ RSpec.describe Metanorma::Iec::Processor do
57
57
  </p>
58
58
  <p class="zzSTDTitle1">&#xA0;</p>
59
59
  <div id="">
60
- <h1 class="ForewordTitle">FOREWORD</h1>
60
+ <h1 class="ForewordTitle" id="toc0">FOREWORD</h1>
61
61
  <div class="boilerplate_legal"></div>
62
62
  </div>
63
63
  <p class="zzSTDTitle1">INTERNATIONAL ELECTROTECHNICAL COMMISSION</p>
@@ -67,7 +67,7 @@ RSpec.describe Metanorma::Iec::Processor do
67
67
  <b></b>
68
68
  </p>
69
69
  <p class="zzSTDTitle1">&#xA0;</p>
70
- <div id="H"><h1>1&#xA0; Terms and definitions</h1>
70
+ <div id="H"><h1 id="toc1">1&#xA0; Terms, Definitions, Symbols and Abbreviated Terms</h1>
71
71
  <h2 class="TermNum" id="J">1.1</h2>
72
72
  <p class="Terms" style="text-align:left;">Term2</p>
73
73
  </div>
@@ -160,8 +160,8 @@ BLANK_HDR = <<~"HDR"
160
160
  <language>en</language>
161
161
  <script>Latn</script>
162
162
  <status>
163
- <stage>60</stage>
164
- <substage>60</substage>
163
+ <stage abbreviation="PPUB">60</stage>
164
+ <substage abbreviation="PPUB">60</substage>
165
165
  </status>
166
166
  <copyright>
167
167
  <from>#{Time.new.year}</from>
@@ -179,6 +179,7 @@ BLANK_HDR = <<~"HDR"
179
179
  <subcommittee/>
180
180
  <workgroup/>
181
181
  </editorialgroup>
182
+ <stagename>International standard</stagename>
182
183
  </ext>
183
184
  </bibdata>
184
185
  #{BOILERPLATE}
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-iec
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.8
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-04-03 00:00:00.000000000 Z
11
+ date: 2020-06-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ruby-jing
@@ -217,6 +217,7 @@ files:
217
217
  - lib/asciidoctor/iec/basicdoc.rng
218
218
  - lib/asciidoctor/iec/biblio.rng
219
219
  - lib/asciidoctor/iec/converter.rb
220
+ - lib/asciidoctor/iec/front.rb
220
221
  - lib/asciidoctor/iec/i18n-en.yaml
221
222
  - lib/asciidoctor/iec/i18n-fr.yaml
222
223
  - lib/asciidoctor/iec/i18n-zh-Hans.yaml
@@ -240,7 +241,9 @@ files:
240
241
  - lib/isodoc/iec/i18n-en.yaml
241
242
  - lib/isodoc/iec/i18n-fr.yaml
242
243
  - lib/isodoc/iec/i18n-zh-Hans.yaml
244
+ - lib/isodoc/iec/iec.international-standard.xsl
243
245
  - lib/isodoc/iec/metadata.rb
246
+ - lib/isodoc/iec/pdf_convert.rb
244
247
  - lib/isodoc/iec/word_convert.rb
245
248
  - lib/metanorma-iec.rb
246
249
  - lib/metanorma/iec.rb
@@ -250,6 +253,7 @@ files:
250
253
  - spec/asciidoctor-iec/base_spec.rb
251
254
  - spec/asciidoctor-iec/blocks_spec.rb
252
255
  - spec/asciidoctor-iec/cleanup_spec.rb
256
+ - spec/asciidoctor-iec/iev_spec.rb
253
257
  - spec/asciidoctor-iec/inline_spec.rb
254
258
  - spec/asciidoctor-iec/lists_spec.rb
255
259
  - spec/asciidoctor-iec/section_spec.rb
@@ -264,11 +268,19 @@ files:
264
268
  - spec/examples/rice.doc
265
269
  - spec/examples/rice.html
266
270
  - spec/examples/rice.xml
271
+ - spec/examples/rice_img/rice_image1.png
272
+ - spec/examples/rice_img/rice_image2.png
273
+ - spec/examples/rice_img/rice_image3_1.png
274
+ - spec/examples/rice_img/rice_image3_2.png
275
+ - spec/examples/rice_img/rice_image3_3.png
276
+ - spec/isodoc/blocks_spec.rb
267
277
  - spec/isodoc/i18n_spec.rb
278
+ - spec/isodoc/iev_spec.rb
268
279
  - spec/isodoc/inline_spec.rb
269
280
  - spec/isodoc/iso_spec.rb
270
281
  - spec/isodoc/metadata_spec.rb
271
282
  - spec/isodoc/postproc_spec.rb
283
+ - spec/isodoc/ref_spec.rb
272
284
  - spec/isodoc/section_spec.rb
273
285
  - spec/isodoc/terms_spec.rb
274
286
  - spec/metanorma/processor_spec.rb