metanorma-iec 1.0.3 → 1.0.8

Sign up to get free protection for your applications and to get access to all the features.
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