metanorma-iso 1.7.4 → 1.8.4
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 +3 -7
- 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 +321 -4
- 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 +8 -2
- data/lib/isodoc/iso/html/style-human.css +7 -0
- data/lib/isodoc/iso/html/style-iso.css +7 -0
- data/lib/isodoc/iso/html_convert.rb +0 -1
- data/lib/isodoc/iso/iso.amendment.xsl +680 -198
- data/lib/isodoc/iso/iso.international-standard.xsl +680 -198
- data/lib/isodoc/iso/metadata.rb +1 -0
- data/lib/isodoc/iso/presentation_xml_convert.rb +44 -33
- data/lib/isodoc/iso/sts_convert.rb +10 -13
- data/lib/isodoc/iso/word_convert.rb +0 -1
- data/lib/isodoc/iso/xref.rb +52 -34
- data/lib/metanorma/iso/processor.rb +1 -0
- data/lib/metanorma/iso/version.rb +1 -1
- data/metanorma-iso.gemspec +7 -7
- 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/postproc_spec.rb +481 -438
- data/spec/spec_helper.rb +16 -15
- metadata +46 -46
- data/lib/isodoc/iso/html/scripts.html +0 -178
@@ -101,20 +101,6 @@ RSpec.describe Asciidoctor::ISO do
|
|
101
101
|
<title>Terms, definitions, symbols and abbreviated terms</title>
|
102
102
|
<terms id="_" obligation="normative">
|
103
103
|
<title>Normal Terms</title>
|
104
|
-
<p id="_">For the purposes of this document, the following terms and definitions apply.</p>
|
105
|
-
<p id="_">ISO and IEC maintain terminological databases for use in standardization at the following addresses:</p>
|
106
|
-
<ul id="_">
|
107
|
-
<li>
|
108
|
-
<p id="_">ISO Online browsing platform: available at
|
109
|
-
|
110
|
-
<link target="http://www.iso.org/obp"/></p>
|
111
|
-
</li>
|
112
|
-
<li>
|
113
|
-
<p id="_">IEC Electropedia: available at
|
114
|
-
|
115
|
-
<link target="http://www.electropedia.org"/></p>
|
116
|
-
</li>
|
117
|
-
</ul>
|
118
104
|
<term id="term-term2">
|
119
105
|
<preferred>Term2</preferred>
|
120
106
|
</term>
|
@@ -71,47 +71,67 @@ RSpec.describe Asciidoctor::ISO do
|
|
71
71
|
|
72
72
|
INPUT
|
73
73
|
expect(File.read("test.err")).to include \
|
74
|
-
"image name spec/examples/rice_images/rice_image1.png does not match
|
74
|
+
"image name spec/examples/rice_images/rice_image1.png does not match "\
|
75
|
+
"DRG requirements: expect 1000-1_ed2amd3fig"
|
75
76
|
expect(File.read("test.err")).to include \
|
76
|
-
"image name spec/examples/rice_images/1001_ed2amd3fig1.png does not
|
77
|
-
|
77
|
+
"image name spec/examples/rice_images/1001_ed2amd3fig1.png does not "\
|
78
|
+
"match DRG requirements: " \
|
79
|
+
"expect 1000-1_ed2amd3fig"
|
78
80
|
expect(File.read("test.err")).not_to include \
|
79
|
-
"image name spec/examples/rice_images/SL1000-1_ed2amd3fig1.png does not
|
80
|
-
|
81
|
+
"image name spec/examples/rice_images/SL1000-1_ed2amd3fig1.png does not "\
|
82
|
+
"match DRG requirements: " \
|
83
|
+
"expect 1000-1_ed2amd3fig"
|
81
84
|
expect(File.read("test.err")).not_to include \
|
82
|
-
"image name spec/examples/rice_images/ISO_1213_1.png does not match DRG
|
85
|
+
"image name spec/examples/rice_images/ISO_1213_1.png does not match DRG "\
|
86
|
+
"requirements: expect 1000-1_ed2amd3fig"
|
83
87
|
expect(File.read("test.err")).to include \
|
84
|
-
"image name spec/examples/rice_images/1000-1_ed2amd3figA.png does not
|
88
|
+
"image name spec/examples/rice_images/1000-1_ed2amd3figA.png does not "\
|
89
|
+
"match DRG requirements"
|
85
90
|
expect(File.read("test.err")).not_to include \
|
86
|
-
"image name spec/examples/rice_images/1000-1_ed2amd3figTab1.png does
|
91
|
+
"image name spec/examples/rice_images/1000-1_ed2amd3figTab1.png does "\
|
92
|
+
"not match DRG requirements"
|
87
93
|
expect(File.read("test.err")).not_to include \
|
88
|
-
"image name spec/examples/rice_images/1000-1_ed2amd3figTab1.png is
|
94
|
+
"image name spec/examples/rice_images/1000-1_ed2amd3figTab1.png is "\
|
95
|
+
"under a table but is not so labelled"
|
89
96
|
expect(File.read("test.err")).to include \
|
90
|
-
"image name spec/examples/rice_images/1000-1_ed2amd3fig2.png is under
|
97
|
+
"image name spec/examples/rice_images/1000-1_ed2amd3fig2.png is under "\
|
98
|
+
"a table but is not so labelled"
|
91
99
|
expect(File.read("test.err")).to include \
|
92
|
-
"image name spec/examples/rice_images/1000-1_ed2amd3figTab2.png is
|
100
|
+
"image name spec/examples/rice_images/1000-1_ed2amd3figTab2.png is "\
|
101
|
+
"labelled as under a table but is not"
|
93
102
|
expect(File.read("test.err")).not_to include \
|
94
|
-
"image name spec/examples/rice_images/1000-1_ed2amd3fig1.png is
|
103
|
+
"image name spec/examples/rice_images/1000-1_ed2amd3fig1.png is "\
|
104
|
+
"labelled as under a table but is not"
|
95
105
|
expect(File.read("test.err")).not_to include \
|
96
|
-
"image name spec/examples/rice_images/1000-1_ed2amd3figA2.png is
|
106
|
+
"image name spec/examples/rice_images/1000-1_ed2amd3figA2.png is "\
|
107
|
+
"under an annex but is not so labelled"
|
97
108
|
expect(File.read("test.err")).to include \
|
98
|
-
"image name spec/examples/rice_images/1000-1_ed2amd3fig3.png is
|
109
|
+
"image name spec/examples/rice_images/1000-1_ed2amd3fig3.png is "\
|
110
|
+
"under an annex but is not so labelled"
|
99
111
|
expect(File.read("test.err")).to include \
|
100
|
-
"image name spec/examples/rice_images/1000-1_ed2amd3figA1.png is
|
112
|
+
"image name spec/examples/rice_images/1000-1_ed2amd3figA1.png is "\
|
113
|
+
"labelled as under an annex but is not"
|
101
114
|
expect(File.read("test.err")).not_to include \
|
102
|
-
"image name spec/examples/rice_images/1000-1_ed2amd3fig1.png is
|
115
|
+
"image name spec/examples/rice_images/1000-1_ed2amd3fig1.png is "\
|
116
|
+
"labelled as under an annex but is not"
|
103
117
|
expect(File.read("test.err")).not_to include \
|
104
|
-
"image name spec/examples/rice_images/1000-1_ed2amd3fig1b.png has a
|
118
|
+
"image name spec/examples/rice_images/1000-1_ed2amd3fig1b.png has a "\
|
119
|
+
"subfigure letter but is not a subfigure"
|
105
120
|
expect(File.read("test.err")).to include \
|
106
|
-
"image name spec/examples/rice_images/1000-1_ed2amd3fig4.png does not
|
121
|
+
"image name spec/examples/rice_images/1000-1_ed2amd3fig4.png does not "\
|
122
|
+
"have a subfigure letter but is a subfigure"
|
107
123
|
expect(File.read("test.err")).to include \
|
108
|
-
"image name spec/examples/rice_images/1000-1_ed2amd3fig1a.png has a
|
124
|
+
"image name spec/examples/rice_images/1000-1_ed2amd3fig1a.png has a "\
|
125
|
+
"subfigure letter but is not a subfigure"
|
109
126
|
expect(File.read("test.err")).not_to include \
|
110
|
-
"image name spec/examples/rice_images/1000-1_ed2amd3fig1.png has a
|
127
|
+
"image name spec/examples/rice_images/1000-1_ed2amd3fig1.png has a "\
|
128
|
+
"subfigure letter but is not a subfigure"
|
111
129
|
expect(File.read("test.err")).to include \
|
112
|
-
"image name spec/examples/rice_images/1000-1_ed2amd3fig5_f.png expected
|
130
|
+
"image name spec/examples/rice_images/1000-1_ed2amd3fig5_f.png expected "\
|
131
|
+
"to have suffix _e"
|
113
132
|
expect(File.read("test.err")).not_to include \
|
114
|
-
"image name spec/examples/rice_images/1000-1_ed2amd3fig1.png expected
|
133
|
+
"image name spec/examples/rice_images/1000-1_ed2amd3fig1.png expected "\
|
134
|
+
"to have suffix _e"
|
115
135
|
end
|
116
136
|
|
117
137
|
context "Warns of missing scope" do
|
@@ -188,7 +208,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
188
208
|
[bibliography]
|
189
209
|
== Normative references
|
190
210
|
INPUT
|
191
|
-
expect(File.read("test.err"))
|
211
|
+
expect(File.read("test.err"))
|
212
|
+
.not_to include "Normative references missing"
|
192
213
|
end
|
193
214
|
|
194
215
|
it "Normative references not missing 2" do
|
@@ -202,7 +223,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
202
223
|
|
203
224
|
text
|
204
225
|
INPUT
|
205
|
-
expect(File.read("test.err"))
|
226
|
+
expect(File.read("test.err"))
|
227
|
+
.not_to include "Normative references missing"
|
206
228
|
end
|
207
229
|
end
|
208
230
|
|
@@ -262,7 +284,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
262
284
|
|
263
285
|
text
|
264
286
|
INPUT
|
265
|
-
expect(File.read("test.err"))
|
287
|
+
expect(File.read("test.err"))
|
288
|
+
.to include "pizza is not a recognised document type"
|
266
289
|
end
|
267
290
|
|
268
291
|
it "Warns of illegal script" do
|
@@ -305,7 +328,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
305
328
|
|
306
329
|
text
|
307
330
|
INPUT
|
308
|
-
expect(File.read("test.err"))
|
331
|
+
expect(File.read("test.err"))
|
332
|
+
.to include "pizza is not a recognised substage"
|
309
333
|
end
|
310
334
|
|
311
335
|
it "Warns of illegal iteration" do
|
@@ -320,7 +344,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
320
344
|
|
321
345
|
text
|
322
346
|
INPUT
|
323
|
-
expect(File.read("test.err"))
|
347
|
+
expect(File.read("test.err"))
|
348
|
+
.to include "pizza is not a recognised iteration"
|
324
349
|
end
|
325
350
|
|
326
351
|
it "Warns of illegal script" do
|
@@ -350,7 +375,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
350
375
|
|
351
376
|
The widget is required not to be larger than 15 cm.
|
352
377
|
INPUT
|
353
|
-
expect(File.read("test.err"))
|
378
|
+
expect(File.read("test.err"))
|
379
|
+
.to include "Technical Report clause may contain requirement"
|
354
380
|
end
|
355
381
|
|
356
382
|
it "warns that introduction may contain requirement" do
|
@@ -360,7 +386,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
360
386
|
|
361
387
|
The widget is required not to be larger than 15 cm.
|
362
388
|
INPUT
|
363
|
-
expect(File.read("test.err"))
|
389
|
+
expect(File.read("test.err"))
|
390
|
+
.to include "Introduction may contain requirement"
|
364
391
|
end
|
365
392
|
|
366
393
|
it "warns that foreword may contain recommendation" do
|
@@ -371,7 +398,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
371
398
|
|
372
399
|
== Clause
|
373
400
|
INPUT
|
374
|
-
expect(File.read("test.err"))
|
401
|
+
expect(File.read("test.err"))
|
402
|
+
.to include "Foreword may contain recommendation"
|
375
403
|
end
|
376
404
|
|
377
405
|
it "warns that foreword may contain permission" do
|
@@ -406,7 +434,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
406
434
|
It is required that there is a definition.
|
407
435
|
|
408
436
|
INPUT
|
409
|
-
expect(File.read("test.err"))
|
437
|
+
expect(File.read("test.err"))
|
438
|
+
.to include "Definition may contain requirement"
|
410
439
|
end
|
411
440
|
|
412
441
|
it "warns that term example may contain recommendation" do
|
@@ -420,7 +449,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
420
449
|
[example]
|
421
450
|
It is not recommended that widgets should be larger than 15 cm.
|
422
451
|
INPUT
|
423
|
-
expect(File.read("test.err"))
|
452
|
+
expect(File.read("test.err"))
|
453
|
+
.to include "Example may contain recommendation"
|
424
454
|
end
|
425
455
|
|
426
456
|
it "warns that note may contain recommendation" do
|
@@ -438,7 +468,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
438
468
|
|
439
469
|
footnote:[It is not recommended that widgets should be larger than 15 cm.]
|
440
470
|
INPUT
|
441
|
-
expect(File.read("test.err"))
|
471
|
+
expect(File.read("test.err"))
|
472
|
+
.to include "Footnote may contain recommendation"
|
442
473
|
end
|
443
474
|
|
444
475
|
it "warns that term source is not in expected format" do
|
@@ -448,7 +479,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
448
479
|
[.source]
|
449
480
|
I am a generic paragraph
|
450
481
|
INPUT
|
451
|
-
expect(File.read("test.err"))
|
482
|
+
expect(File.read("test.err"))
|
483
|
+
.to include "term reference not in expected format"
|
452
484
|
end
|
453
485
|
|
454
486
|
it "warns that figure does not have title" do
|
@@ -473,7 +505,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
473
505
|
<1> This is one callout
|
474
506
|
<2> This is another callout
|
475
507
|
INPUT
|
476
|
-
expect(File.read("test.err"))
|
508
|
+
expect(File.read("test.err"))
|
509
|
+
.to include "mismatch of callouts and annotations"
|
477
510
|
end
|
478
511
|
|
479
512
|
it "warns that term source is not a real reference" do
|
@@ -483,7 +516,9 @@ RSpec.describe Asciidoctor::ISO do
|
|
483
516
|
[.source]
|
484
517
|
<<iso123>>
|
485
518
|
INPUT
|
486
|
-
expect(File.read("test.err"))
|
519
|
+
expect(File.read("test.err"))
|
520
|
+
.to include "iso123 does not have a corresponding anchor ID "\
|
521
|
+
"in the bibliography"
|
487
522
|
end
|
488
523
|
|
489
524
|
it "warns that undated reference has locality" do
|
@@ -497,7 +532,9 @@ RSpec.describe Asciidoctor::ISO do
|
|
497
532
|
== Normative References
|
498
533
|
* [[[iso123,ISO 123]]] _Standard_
|
499
534
|
INPUT
|
500
|
-
expect(File.read("test.err"))
|
535
|
+
expect(File.read("test.err"))
|
536
|
+
.to include "undated reference ISO 123 should not contain "\
|
537
|
+
"specific elements"
|
501
538
|
end
|
502
539
|
|
503
540
|
it "do not warn that undated reference which is a bibliographic reference has locality" do
|
@@ -511,7 +548,9 @@ RSpec.describe Asciidoctor::ISO do
|
|
511
548
|
== Bibliography
|
512
549
|
* [[[iso123,1]]] _Standard_
|
513
550
|
INPUT
|
514
|
-
expect(File.read("test.err"))
|
551
|
+
expect(File.read("test.err"))
|
552
|
+
.not_to include "undated reference [1] should not contain specific "\
|
553
|
+
"elements"
|
515
554
|
end
|
516
555
|
|
517
556
|
it "do not warn that undated IEV reference has locality" do
|
@@ -525,7 +564,9 @@ RSpec.describe Asciidoctor::ISO do
|
|
525
564
|
== Normative References
|
526
565
|
* [[[iev,IEV]]] _Standard_
|
527
566
|
INPUT
|
528
|
-
expect(File.read("test.err"))
|
567
|
+
expect(File.read("test.err"))
|
568
|
+
.not_to include "undated reference IEV should not contain specific "\
|
569
|
+
"elements"
|
529
570
|
end
|
530
571
|
|
531
572
|
it "do not warn that in print has locality" do
|
@@ -539,7 +580,9 @@ RSpec.describe Asciidoctor::ISO do
|
|
539
580
|
== Normative References
|
540
581
|
* [[[iev,ISO 123:--]]] _Standard_
|
541
582
|
INPUT
|
542
|
-
expect(File.read("test.err"))
|
583
|
+
expect(File.read("test.err"))
|
584
|
+
.not_to include "undated reference ISO 123 should not contain specific "\
|
585
|
+
"elements"
|
543
586
|
end
|
544
587
|
|
545
588
|
it "warns of Non-reference in bibliography" do
|
@@ -560,7 +603,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
560
603
|
== Normative References
|
561
604
|
* [[[XYZ,IESO 121]]] _Standard_
|
562
605
|
INPUT
|
563
|
-
expect(File.read("test.err"))
|
606
|
+
expect(File.read("test.err"))
|
607
|
+
.to include "non-ISO/IEC reference not expected as normative"
|
564
608
|
end
|
565
609
|
|
566
610
|
it "warns that Scope contains subclauses" do
|
@@ -571,7 +615,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
571
615
|
|
572
616
|
=== Scope subclause
|
573
617
|
INPUT
|
574
|
-
expect(File.read("test.err"))
|
618
|
+
expect(File.read("test.err"))
|
619
|
+
.to include "Scope contains subclauses: should be succinct"
|
575
620
|
end
|
576
621
|
|
577
622
|
it "warns that Table should have title" do
|
@@ -602,7 +647,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
602
647
|
== Clause
|
603
648
|
ISO 12121
|
604
649
|
INPUT
|
605
|
-
expect(File.read("test.err"))
|
650
|
+
expect(File.read("test.err"))
|
651
|
+
.not_to include "number not broken up in threes"
|
606
652
|
end
|
607
653
|
|
608
654
|
it "Style warning if decimal point" do
|
@@ -642,7 +688,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
642
688
|
== Clause
|
643
689
|
95 ± 5 %
|
644
690
|
INPUT
|
645
|
-
expect(File.read("test.err"))
|
691
|
+
expect(File.read("test.err"))
|
692
|
+
.to include "unbracketed tolerance before percent sign"
|
646
693
|
end
|
647
694
|
|
648
695
|
it "Style warning if dots in abbreviation" do
|
@@ -682,7 +729,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
682
729
|
== Clause
|
683
730
|
5 °
|
684
731
|
INPUT
|
685
|
-
expect(File.read("test.err"))
|
732
|
+
expect(File.read("test.err"))
|
733
|
+
.to include "space between number and degrees/minutes/seconds"
|
686
734
|
end
|
687
735
|
|
688
736
|
it "Style warning if no space between number and SI unit" do
|
@@ -692,7 +740,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
692
740
|
== Clause
|
693
741
|
A measurement of 5Bq was taken.
|
694
742
|
INPUT
|
695
|
-
expect(File.read("test.err"))
|
743
|
+
expect(File.read("test.err"))
|
744
|
+
.to include "no space between number and SI unit"
|
696
745
|
end
|
697
746
|
|
698
747
|
it "Style warning if mins used" do
|
@@ -737,7 +786,9 @@ RSpec.describe Asciidoctor::ISO do
|
|
737
786
|
|
738
787
|
== Symbols and Abbreviated Terms
|
739
788
|
INPUT
|
740
|
-
expect(File.read("test.err"))
|
789
|
+
expect(File.read("test.err"))
|
790
|
+
.to include "Only one Symbols and Abbreviated Terms section "\
|
791
|
+
"in the standard"
|
741
792
|
end
|
742
793
|
|
743
794
|
it "Style warning if Symbols and Abbreviated Terms contains extraneous matter" do
|
@@ -748,7 +799,9 @@ RSpec.describe Asciidoctor::ISO do
|
|
748
799
|
|
749
800
|
Paragraph
|
750
801
|
INPUT
|
751
|
-
expect(File.read("test.err"))
|
802
|
+
expect(File.read("test.err"))
|
803
|
+
.to include "Symbols and Abbreviated Terms can only contain "\
|
804
|
+
"a definition list"
|
752
805
|
end
|
753
806
|
|
754
807
|
it "Warning if missing foreword" do
|
@@ -759,7 +812,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
759
812
|
|
760
813
|
Paragraph
|
761
814
|
INPUT
|
762
|
-
expect(File.read("test.err"))
|
815
|
+
expect(File.read("test.err"))
|
816
|
+
.to include "Initial section must be (content) Foreword"
|
763
817
|
|
764
818
|
Asciidoctor.convert(<<~"INPUT", *OPTIONS)
|
765
819
|
= Document title
|
@@ -773,7 +827,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
773
827
|
|
774
828
|
Paragraph
|
775
829
|
INPUT
|
776
|
-
expect(File.read("test.err"))
|
830
|
+
expect(File.read("test.err"))
|
831
|
+
.not_to include "Initial section must be (content) Foreword"
|
777
832
|
end
|
778
833
|
|
779
834
|
it "Warning if do not start with scope or introduction" do
|
@@ -785,7 +840,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
785
840
|
|
786
841
|
Paragraph
|
787
842
|
INPUT
|
788
|
-
expect(File.read("test.err"))
|
843
|
+
expect(File.read("test.err"))
|
844
|
+
.to include "Prefatory material must be followed by (clause) Scope"
|
789
845
|
|
790
846
|
Asciidoctor.convert(<<~"INPUT", *OPTIONS)
|
791
847
|
= Document title
|
@@ -801,7 +857,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
801
857
|
|
802
858
|
Paragraph
|
803
859
|
INPUT
|
804
|
-
expect(File.read("test.err"))
|
860
|
+
expect(File.read("test.err"))
|
861
|
+
.not_to include "Prefatory material must be followed by (clause) Scope"
|
805
862
|
end
|
806
863
|
|
807
864
|
it "Warning if introduction not followed by scope" do
|
@@ -817,7 +874,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
817
874
|
|
818
875
|
Paragraph
|
819
876
|
INPUT
|
820
|
-
expect(File.read("test.err"))
|
877
|
+
expect(File.read("test.err"))
|
878
|
+
.to include "Prefatory material must be followed by (clause) Scope"
|
821
879
|
|
822
880
|
Asciidoctor.convert(<<~"INPUT", *OPTIONS)
|
823
881
|
= Document title
|
@@ -836,7 +894,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
836
894
|
|
837
895
|
Paragraph
|
838
896
|
INPUT
|
839
|
-
expect(File.read("test.err"))
|
897
|
+
expect(File.read("test.err"))
|
898
|
+
.not_to include "Prefatory material must be followed by (clause) Scope"
|
840
899
|
end
|
841
900
|
|
842
901
|
it "Warning if normative references not followed by terms and definitions" do
|
@@ -855,7 +914,9 @@ RSpec.describe Asciidoctor::ISO do
|
|
855
914
|
|
856
915
|
Paragraph
|
857
916
|
INPUT
|
858
|
-
expect(File.read("test.err"))
|
917
|
+
expect(File.read("test.err"))
|
918
|
+
.to include "Normative References must be followed by "\
|
919
|
+
"Terms and Definitions"
|
859
920
|
|
860
921
|
Asciidoctor.convert(<<~"INPUT", *OPTIONS)
|
861
922
|
= Document title
|
@@ -877,7 +938,9 @@ RSpec.describe Asciidoctor::ISO do
|
|
877
938
|
|
878
939
|
Paragraph
|
879
940
|
INPUT
|
880
|
-
expect(File.read("test.err"))
|
941
|
+
expect(File.read("test.err"))
|
942
|
+
.not_to include "Normative References must be followed by "\
|
943
|
+
"Terms and Definitions"
|
881
944
|
end
|
882
945
|
|
883
946
|
it "Warning if there are no clauses in the document" do
|
@@ -897,7 +960,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
897
960
|
== Symbols and Abbreviated Terms
|
898
961
|
|
899
962
|
INPUT
|
900
|
-
expect(File.read("test.err"))
|
963
|
+
expect(File.read("test.err"))
|
964
|
+
.to include "Document must contain at least one clause"
|
901
965
|
|
902
966
|
Asciidoctor.convert(<<~"INPUT", *OPTIONS)
|
903
967
|
= Document title
|
@@ -920,7 +984,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
920
984
|
== Symbols and Abbreviated Terms
|
921
985
|
|
922
986
|
INPUT
|
923
|
-
expect(File.read("test.err"))
|
987
|
+
expect(File.read("test.err"))
|
988
|
+
.not_to include "Document must contain at least one clause"
|
924
989
|
end
|
925
990
|
|
926
991
|
it "Warning if scope occurs after Terms and Definitions" do
|
@@ -942,7 +1007,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
942
1007
|
== Scope
|
943
1008
|
|
944
1009
|
INPUT
|
945
|
-
expect(File.read("test.err"))
|
1010
|
+
expect(File.read("test.err"))
|
1011
|
+
.to include "Scope must occur before Terms and Definitions"
|
946
1012
|
|
947
1013
|
Asciidoctor.convert(<<~"INPUT", *OPTIONS)
|
948
1014
|
= Document title
|
@@ -967,7 +1033,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
967
1033
|
== Scope
|
968
1034
|
|
969
1035
|
INPUT
|
970
|
-
expect(File.read("test.err"))
|
1036
|
+
expect(File.read("test.err"))
|
1037
|
+
.not_to include "Scope must occur before Terms and Definitions"
|
971
1038
|
end
|
972
1039
|
|
973
1040
|
it "Warning if Symbols and Abbreviated Terms does not occur immediately after Terms and Definitions" do
|
@@ -989,7 +1056,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
989
1056
|
== Symbols and Abbreviated Terms
|
990
1057
|
|
991
1058
|
INPUT
|
992
|
-
expect(File.read("test.err"))
|
1059
|
+
expect(File.read("test.err"))
|
1060
|
+
.to include "Only annexes and references can follow clauses"
|
993
1061
|
|
994
1062
|
Asciidoctor.convert(<<~"INPUT", *OPTIONS)
|
995
1063
|
= Document title
|
@@ -1015,7 +1083,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
1015
1083
|
== Symbols and Abbreviated Terms
|
1016
1084
|
|
1017
1085
|
INPUT
|
1018
|
-
expect(File.read("test.err"))
|
1086
|
+
expect(File.read("test.err"))
|
1087
|
+
.not_to include "Only annexes and references can follow clauses"
|
1019
1088
|
end
|
1020
1089
|
|
1021
1090
|
it "Warning if no normative references" do
|
@@ -1041,7 +1110,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
1041
1110
|
== Appendix C
|
1042
1111
|
|
1043
1112
|
INPUT
|
1044
|
-
expect(File.read("test.err"))
|
1113
|
+
expect(File.read("test.err"))
|
1114
|
+
.to include "Document must include (references) Normative References"
|
1045
1115
|
|
1046
1116
|
Asciidoctor.convert(<<~"INPUT", *OPTIONS)
|
1047
1117
|
= Document title
|
@@ -1070,9 +1140,57 @@ RSpec.describe Asciidoctor::ISO do
|
|
1070
1140
|
== Appendix C
|
1071
1141
|
|
1072
1142
|
INPUT
|
1073
|
-
expect(File.read("test.err"))
|
1143
|
+
expect(File.read("test.err"))
|
1144
|
+
.not_to include "Document must include (references) Normative References"
|
1074
1145
|
end
|
1075
1146
|
|
1147
|
+
it "Warning if there are two Terms sections" do
|
1148
|
+
Asciidoctor.convert(<<~"INPUT", *OPTIONS)
|
1149
|
+
#{VALIDATING_BLANK_HDR}
|
1150
|
+
|
1151
|
+
== Scope
|
1152
|
+
|
1153
|
+
== Terms and definitions
|
1154
|
+
|
1155
|
+
== A Clause
|
1156
|
+
|
1157
|
+
[heading=terms and definitions]
|
1158
|
+
== Terms related to clinical psychology
|
1159
|
+
|
1160
|
+
INPUT
|
1161
|
+
expect(File.read("test.err"))
|
1162
|
+
.to include "Only annexes and references can follow clauses"
|
1163
|
+
end
|
1164
|
+
|
1165
|
+
it "No warning if there are two Terms sections in a Vocabulary document" do
|
1166
|
+
Asciidoctor.convert(<<~"INPUT", *OPTIONS)
|
1167
|
+
= Document title
|
1168
|
+
Author
|
1169
|
+
:docfile: test.adoc
|
1170
|
+
:nodoc:
|
1171
|
+
:no-isobib:
|
1172
|
+
:docsubtype: vocabulary
|
1173
|
+
|
1174
|
+
== Scope
|
1175
|
+
|
1176
|
+
== Terms and definitions
|
1177
|
+
|
1178
|
+
== A Clause
|
1179
|
+
|
1180
|
+
[heading=terms and definitions]
|
1181
|
+
== Terms related to clinical psychology
|
1182
|
+
|
1183
|
+
[heading=symbols and abbreviated terms]
|
1184
|
+
== Symbols related to clinical psychology
|
1185
|
+
|
1186
|
+
INPUT
|
1187
|
+
expect(File.read("test.err"))
|
1188
|
+
.not_to include "Only annexes and references can follow clauses"
|
1189
|
+
expect(File.read("test.err"))
|
1190
|
+
.to include "Only terms, annexes and references can follow clauses"
|
1191
|
+
end
|
1192
|
+
|
1193
|
+
|
1076
1194
|
it "Warning if final section is not named Bibliography" do
|
1077
1195
|
Asciidoctor.convert(<<~"INPUT", *OPTIONS)
|
1078
1196
|
#{VALIDATING_BLANK_HDR}
|
@@ -1102,7 +1220,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
1102
1220
|
== Appendix C
|
1103
1221
|
|
1104
1222
|
INPUT
|
1105
|
-
expect(File.read("test.err"))
|
1223
|
+
expect(File.read("test.err"))
|
1224
|
+
.to include "There are sections after the final Bibliography"
|
1106
1225
|
|
1107
1226
|
Asciidoctor.convert(<<~"INPUT", *OPTIONS)
|
1108
1227
|
= Document title
|
@@ -1137,7 +1256,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
1137
1256
|
== Appendix C
|
1138
1257
|
|
1139
1258
|
INPUT
|
1140
|
-
expect(File.read("test.err"))
|
1259
|
+
expect(File.read("test.err"))
|
1260
|
+
.not_to include "There are sections after the final Bibliography"
|
1141
1261
|
end
|
1142
1262
|
|
1143
1263
|
it "Warning if final section is not styled Bibliography" do
|
@@ -1165,7 +1285,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
1165
1285
|
== Bibliography
|
1166
1286
|
|
1167
1287
|
INPUT
|
1168
|
-
expect(File.read("test.err"))
|
1288
|
+
expect(File.read("test.err"))
|
1289
|
+
.to include "Section not marked up as [bibliography]"
|
1169
1290
|
end
|
1170
1291
|
|
1171
1292
|
it "Warning if final section is not styled Bibliography false" do
|
@@ -1198,7 +1319,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
1198
1319
|
== Bibliography
|
1199
1320
|
|
1200
1321
|
INPUT
|
1201
|
-
expect(File.read("test.err"))
|
1322
|
+
expect(File.read("test.err"))
|
1323
|
+
.not_to include "Section not marked up as [bibliography]"
|
1202
1324
|
end
|
1203
1325
|
|
1204
1326
|
it "Warning if English title intro and no French title intro" do
|
@@ -1280,7 +1402,7 @@ RSpec.describe Asciidoctor::ISO do
|
|
1280
1402
|
expect(File.read("test.err")).to include "No English Title Part"
|
1281
1403
|
end
|
1282
1404
|
|
1283
|
-
|
1405
|
+
it "No warning if French main title and English main title" do
|
1284
1406
|
Asciidoctor.convert(<<~"INPUT", *OPTIONS)
|
1285
1407
|
= Document title
|
1286
1408
|
Author
|
@@ -1307,7 +1429,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
1307
1429
|
:no-isobib:
|
1308
1430
|
|
1309
1431
|
INPUT
|
1310
|
-
expect(File.read("test.err"))
|
1432
|
+
expect(File.read("test.err"))
|
1433
|
+
.to include "Subpart defined on non-IEC document"
|
1311
1434
|
end
|
1312
1435
|
|
1313
1436
|
it "No warning if joint IEC/non-IEC document with subpart" do
|
@@ -1322,7 +1445,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
1322
1445
|
:no-isobib:
|
1323
1446
|
|
1324
1447
|
INPUT
|
1325
|
-
expect(File.read("test.err"))
|
1448
|
+
expect(File.read("test.err"))
|
1449
|
+
.not_to include "Subpart defined on non-IEC document"
|
1326
1450
|
end
|
1327
1451
|
|
1328
1452
|
it "Warning if main title contains document type" do
|
@@ -1348,7 +1472,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
1348
1472
|
:no-isobib:
|
1349
1473
|
|
1350
1474
|
INPUT
|
1351
|
-
expect(File.read("test.err"))
|
1475
|
+
expect(File.read("test.err"))
|
1476
|
+
.to include "Title Intro may name document type"
|
1352
1477
|
end
|
1353
1478
|
|
1354
1479
|
it "Each first-level subclause must have a title" do
|
@@ -1358,7 +1483,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
1358
1483
|
|
1359
1484
|
=== {blank}
|
1360
1485
|
INPUT
|
1361
|
-
expect(File.read("test.err"))
|
1486
|
+
expect(File.read("test.err"))
|
1487
|
+
.to include "each first-level subclause must have a title"
|
1362
1488
|
end
|
1363
1489
|
|
1364
1490
|
it "All subclauses must have a title, or none" do
|
@@ -1372,7 +1498,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
1372
1498
|
|
1373
1499
|
==== Subsubclause
|
1374
1500
|
INPUT
|
1375
|
-
expect(File.read("test.err"))
|
1501
|
+
expect(File.read("test.err"))
|
1502
|
+
.to include "all subclauses must have a title, or none"
|
1376
1503
|
end
|
1377
1504
|
|
1378
1505
|
it "Warning if subclause is only child of its parent, or none" do
|
@@ -1434,7 +1561,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
1434
1561
|
== Clause
|
1435
1562
|
See <<terms>>
|
1436
1563
|
INPUT
|
1437
|
-
expect(File.read("test.err"))
|
1564
|
+
expect(File.read("test.err"))
|
1565
|
+
.to include "'see terms' is pointing to a normative section"
|
1438
1566
|
end
|
1439
1567
|
|
1440
1568
|
it "Warning if 'see' reference points to normative reference" do
|
@@ -1447,7 +1575,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
1447
1575
|
== Clause
|
1448
1576
|
See <<terms>>
|
1449
1577
|
INPUT
|
1450
|
-
expect(File.read("test.err"))
|
1578
|
+
expect(File.read("test.err"))
|
1579
|
+
.to include "is pointing to a normative reference"
|
1451
1580
|
end
|
1452
1581
|
|
1453
1582
|
it "Warning if term definition starts with article" do
|
@@ -1459,7 +1588,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
1459
1588
|
|
1460
1589
|
The definition of a term is a part of the specialized vocabulary of a particular field
|
1461
1590
|
INPUT
|
1462
|
-
expect(File.read("test.err"))
|
1591
|
+
expect(File.read("test.err"))
|
1592
|
+
.to include "term definition starts with article"
|
1463
1593
|
end
|
1464
1594
|
|
1465
1595
|
it "Warning if term definition ends with period" do
|
@@ -1481,7 +1611,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
1481
1611
|
[align=mid-air]
|
1482
1612
|
Para
|
1483
1613
|
INPUT
|
1484
|
-
expect(File.read("test.err"))
|
1614
|
+
expect(File.read("test.err"))
|
1615
|
+
.to include 'value of attribute "align" is invalid; must be equal to'
|
1485
1616
|
end
|
1486
1617
|
|
1487
1618
|
it "Warn if more than 7 levels of subclause" do
|
@@ -1513,7 +1644,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
1513
1644
|
====== Clause
|
1514
1645
|
|
1515
1646
|
INPUT
|
1516
|
-
expect(File.read("test.err"))
|
1647
|
+
expect(File.read("test.err"))
|
1648
|
+
.to include "Exceeds the maximum clause depth of 7"
|
1517
1649
|
end
|
1518
1650
|
|
1519
1651
|
it "Do not warn if not more than 7 levels of subclause" do
|
@@ -1542,7 +1674,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
1542
1674
|
====== Clause
|
1543
1675
|
|
1544
1676
|
INPUT
|
1545
|
-
expect(File.read("test.err"))
|
1677
|
+
expect(File.read("test.err"))
|
1678
|
+
.not_to include "exceeds the maximum clause depth of 7"
|
1546
1679
|
end
|
1547
1680
|
|
1548
1681
|
it "Warn if term citation in Terms & Definitions not preceded with italicised term" do
|
@@ -1555,7 +1688,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
1555
1688
|
|
1556
1689
|
The definition of a term (<<term>>) is a part of the specialized vocabulary of a particular field
|
1557
1690
|
INPUT
|
1558
|
-
expect(File.read("test.err"))
|
1691
|
+
expect(File.read("test.err"))
|
1692
|
+
.to include "term citation not preceded with italicised term"
|
1559
1693
|
end
|
1560
1694
|
|
1561
1695
|
it "Warn if an undated reference has no associated footnote" do
|
@@ -1566,7 +1700,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
1566
1700
|
== Bibliography
|
1567
1701
|
* [[[ISO8,ISO 8:--]]], _Title_
|
1568
1702
|
INPUT
|
1569
|
-
expect(File.read("test.err"))
|
1570
|
-
"Reference ISO8 does not have an associated footnote
|
1703
|
+
expect(File.read("test.err"))
|
1704
|
+
.to include "Reference ISO8 does not have an associated footnote "\
|
1705
|
+
"indicating unpublished status"
|
1571
1706
|
end
|
1572
1707
|
end
|