metanorma-bsi 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +6 -0
  3. data/.hound.yml +3 -0
  4. data/.rubocop.yml +14 -0
  5. data/CODE_OF_CONDUCT.md +74 -0
  6. data/Gemfile +7 -0
  7. data/LICENSE +25 -0
  8. data/README.adoc +199 -0
  9. data/Rakefile +8 -0
  10. data/bin/rspec +18 -0
  11. data/lib/asciidoctor/bsi/basicdoc.rng +1131 -0
  12. data/lib/asciidoctor/bsi/biblio.rng +1235 -0
  13. data/lib/asciidoctor/bsi/bsi.rng +120 -0
  14. data/lib/asciidoctor/bsi/bsi_intro_en.xml +105 -0
  15. data/lib/asciidoctor/bsi/cleanup.rb +78 -0
  16. data/lib/asciidoctor/bsi/cleanup_ref.rb +183 -0
  17. data/lib/asciidoctor/bsi/converter.rb +83 -0
  18. data/lib/asciidoctor/bsi/front.rb +67 -0
  19. data/lib/asciidoctor/bsi/isodoc.rng +1870 -0
  20. data/lib/asciidoctor/bsi/isostandard.rng +477 -0
  21. data/lib/asciidoctor/bsi/reqt.rng +194 -0
  22. data/lib/asciidoctor/bsi/validate.rb +224 -0
  23. data/lib/asciidoctor/bsi/validate_list.rb +72 -0
  24. data/lib/asciidoctor/bsi/validate_requirement.rb +163 -0
  25. data/lib/isodoc/bsi/base_convert.rb +91 -0
  26. data/lib/isodoc/bsi/bsi.international-standard.xsl +6540 -0
  27. data/lib/isodoc/bsi/html/html_bsi_intro.html +8 -0
  28. data/lib/isodoc/bsi/html/html_bsi_titlepage.html +50 -0
  29. data/lib/isodoc/bsi/html/htmlstyle.css +968 -0
  30. data/lib/isodoc/bsi/html/htmlstyle.scss +699 -0
  31. data/lib/isodoc/bsi/html_convert.rb +56 -0
  32. data/lib/isodoc/bsi/i18n-en.yaml +56 -0
  33. data/lib/isodoc/bsi/i18n.rb +15 -0
  34. data/lib/isodoc/bsi/init.rb +24 -0
  35. data/lib/isodoc/bsi/metadata.rb +33 -0
  36. data/lib/isodoc/bsi/pdf_convert.rb +17 -0
  37. data/lib/isodoc/bsi/presentation_xml_convert.rb +72 -0
  38. data/lib/isodoc/bsi/sts_convert.rb +30 -0
  39. data/lib/isodoc/bsi/xref.rb +134 -0
  40. data/lib/metanorma-bsi.rb +15 -0
  41. data/lib/metanorma/bsi.rb +6 -0
  42. data/lib/metanorma/bsi/processor.rb +51 -0
  43. data/lib/metanorma/bsi/version.rb +6 -0
  44. data/metanorma-bsi.gemspec +47 -0
  45. data/spec/asciidoctor/base_spec.rb +778 -0
  46. data/spec/asciidoctor/blocks_spec.rb +553 -0
  47. data/spec/asciidoctor/cleanup_spec.rb +547 -0
  48. data/spec/asciidoctor/inline_spec.rb +176 -0
  49. data/spec/asciidoctor/lists_spec.rb +194 -0
  50. data/spec/asciidoctor/refs_spec.rb +318 -0
  51. data/spec/asciidoctor/section_spec.rb +382 -0
  52. data/spec/asciidoctor/validate_spec.rb +858 -0
  53. data/spec/assets/header.html +7 -0
  54. data/spec/assets/html.css +2 -0
  55. data/spec/assets/iso.xml +71 -0
  56. data/spec/assets/rice_image1.png +0 -0
  57. data/spec/assets/word.css +2 -0
  58. data/spec/assets/wordintro.html +4 -0
  59. data/spec/assets/xref_error.adoc +7 -0
  60. data/spec/isodoc/blocks_spec.rb +259 -0
  61. data/spec/isodoc/i18n_spec.rb +442 -0
  62. data/spec/isodoc/inline_spec.rb +287 -0
  63. data/spec/isodoc/iso_spec.rb +116 -0
  64. data/spec/isodoc/metadata_spec.rb +262 -0
  65. data/spec/isodoc/postproc_spec.rb +137 -0
  66. data/spec/isodoc/ref_spec.rb +376 -0
  67. data/spec/isodoc/section_spec.rb +467 -0
  68. data/spec/isodoc/terms_spec.rb +246 -0
  69. data/spec/isodoc/xref_spec.rb +1730 -0
  70. data/spec/metanorma/processor_spec.rb +76 -0
  71. data/spec/spec_helper.rb +291 -0
  72. data/spec/vcr_cassettes/iso-639.yml +182 -0
  73. data/spec/vcr_cassettes/isobib_get_639_1967.yml +136 -0
  74. data/spec/vcr_cassettes/multistandard.yml +352 -0
  75. metadata +343 -0
@@ -0,0 +1,699 @@
1
+ /*
2
+ 0 CSS RESET
3
+ */
4
+
5
+ /* http://meyerweb.com/eric/tools/css/reset/
6
+ v2.0 | 20110126
7
+ License: none (public domain)
8
+ */
9
+
10
+ @import 'base_style/all';
11
+
12
+ body {
13
+ line-height: 1.3;
14
+ }
15
+
16
+ /* New CSS */
17
+
18
+ div.Symbols dl {
19
+ grid-template-columns: 25% 75%;
20
+
21
+ dt {
22
+ font-weight: bold;
23
+ }
24
+ }
25
+
26
+ body {
27
+ margin-left: 298px;
28
+ margin-right: 2em;
29
+ }
30
+
31
+ main {
32
+ padding-left: 4em;
33
+ padding-right: 2em;
34
+ }
35
+
36
+ .title-section, .prefatory-section {
37
+ padding-left: 4em;
38
+ padding-top: 2em;
39
+ }
40
+
41
+ .coverpage_docnumber, .coverpage_techcommittee {
42
+ text-align: right;
43
+ font-size: 0.9em;
44
+ line-height: 0.5em;
45
+ }
46
+
47
+ .doctitle-en, .doctitle-fr {
48
+ margin-top: 2em;
49
+ text-align: left;
50
+ }
51
+
52
+ .doctitle-en {
53
+ padding-left: 3em;
54
+ margin-left: -3em;
55
+ /*padding-top: 2em;*/
56
+ padding-bottom: 2em;
57
+
58
+ }
59
+
60
+ .doctitle-en span {
61
+ font-size: 2em;
62
+ line-height: 1.5em;
63
+ }
64
+
65
+
66
+ .doctitle-fr span {
67
+ font-size: 1.5em;
68
+ line-height: 1.2em;
69
+ font-style: italic;
70
+ }
71
+
72
+ .doctitle-part {
73
+ margin-top: 1em;
74
+ }
75
+
76
+ /*
77
+ span.title {
78
+ text-transform: uppercase;
79
+ font-size: 1em;
80
+ font-weight: 800;
81
+ }
82
+ */
83
+
84
+ span.title, span.subtitle, span.part {
85
+ font-weight: 800;
86
+ }
87
+
88
+ span.partlabel {
89
+ display: block;
90
+ }
91
+
92
+ .coverpage_docstage {
93
+ margin-top: 2em;
94
+ margin-bottom: 2em;
95
+ }
96
+
97
+ .coverpage_warning {
98
+ font-size: 0.9em;
99
+ font-style: italic;
100
+ padding-bottom: 1em;
101
+ }
102
+
103
+ .boilerplate-copyright p {
104
+ margin-top: 1em;
105
+ display: block;
106
+ }
107
+
108
+ #boilerplate-message, #boilerplate-name,
109
+ #boilerplate-address {
110
+ font-size: 0.9em;
111
+ }
112
+
113
+ /* TYPOGRAPHY */
114
+
115
+ h1 {
116
+ font-size: 1.5em;
117
+ line-height: 2em;
118
+ margin-top: 2em;
119
+ margin-bottom: 1em;
120
+ }
121
+
122
+ h2 {
123
+ font-size: 1.2em;
124
+ line-height: 1.5em;
125
+ margin-top: 2em;
126
+ margin-bottom: 1em;
127
+ }
128
+
129
+ h1, h2, h3, h4, h5, h6 {
130
+ line-height: 1.2;
131
+ }
132
+
133
+ p {
134
+ margin-top: 1em;
135
+ margin-bottom: 1em;
136
+ }
137
+
138
+ p.zzSTDTitle1 {
139
+ font-weight: 700;
140
+ font-size: 1.5em;
141
+ text-transform: uppercase;
142
+ }
143
+
144
+ p.zzSTDTitle2 {
145
+ font-weight: 700;
146
+ font-size: 1.5em;
147
+ }
148
+
149
+ span.obligation {
150
+ font-weight: 400;
151
+ }
152
+
153
+ a {
154
+ color: black;
155
+ text-decoration-color: black;
156
+ }
157
+
158
+ nav a {
159
+ text-decoration: none;
160
+ color: black;
161
+ }
162
+
163
+ h2 p {
164
+ display: inline;
165
+ }
166
+
167
+
168
+ li p {
169
+ /* display: inline-block; */
170
+ margin-bottom: 0.6em;
171
+ line-height: 1.2;
172
+ }
173
+
174
+
175
+ #toc li:before {
176
+ content: " ";
177
+ display: none;
178
+ }
179
+
180
+ p.AltTerms {
181
+ margin-bottom: 0;
182
+ font-style: italic;
183
+ margin-left: 2em;
184
+ }
185
+
186
+ p.Terms {
187
+ font-weight: bold;
188
+ margin-top: 0em;
189
+ }
190
+
191
+ /* Navigation*/
192
+
193
+ nav {
194
+ @include sidebarNav(#f5faff, 278px, 20px);
195
+ }
196
+
197
+ #toggle {
198
+ @include sidebarNavToggle(black, #f5faff)
199
+ }
200
+
201
+ #toc {
202
+ @include toc(black, black, black);
203
+ @include sidebarToc();
204
+
205
+ .toc-active,
206
+ li:hover {
207
+ box-shadow: 0px 1px 0px 0px black !important;
208
+ color: black;
209
+ background: none;
210
+ }
211
+
212
+ ul {
213
+ a:hover {
214
+ box-shadow: none;
215
+ color: black;
216
+ }
217
+ }
218
+ }
219
+
220
+ @media screen and (min-width: 768px) {
221
+ nav {
222
+ line-height: 1.2em;
223
+ }
224
+
225
+ #toggle {
226
+ border-right: solid black 1px;
227
+ margin-left: -4em;
228
+ margin-top: -2em;
229
+ }
230
+
231
+ .container {
232
+ padding-left: 360px;
233
+ }
234
+
235
+ .rule.toc {
236
+ display: none;
237
+ }
238
+
239
+ h1.toc-contents {
240
+ margin-top: 1em;
241
+ }
242
+
243
+ ul#toc-list {
244
+ padding:0;
245
+ margin:0;
246
+ }
247
+ }
248
+
249
+ @media screen and (max-width: 768px) {
250
+ #toggle {
251
+ display: none;
252
+ margin-left: -4em;
253
+ margin-top: -2em;
254
+ }
255
+
256
+ body {
257
+ margin-left: 2em;
258
+ }
259
+
260
+ main {
261
+ padding: 0;
262
+ }
263
+
264
+ .title-section, .prefatory-section {
265
+ padding-left: 0;
266
+ padding-top: 0;
267
+ width: 100%;
268
+ }
269
+ }
270
+
271
+ div.figure > img {
272
+ margin-left: auto;
273
+ margin-right: auto;
274
+ display: block;
275
+ max-width: 100%;
276
+ height: auto;
277
+ }
278
+
279
+ /*
280
+ Document types + stages
281
+ */
282
+
283
+ .document-type-band {
284
+ @include docBand($order: 2, $offset: 180px);
285
+
286
+ .document-type {
287
+ top: 20px;
288
+ }
289
+ }
290
+
291
+ .document-stage-band {
292
+ @include docBand(1, 210px);
293
+ }
294
+
295
+ p.document-stage {
296
+ @include docBandTitle(210px);
297
+ }
298
+
299
+ #governance-band p.document-type {
300
+ font-weight: 400;
301
+ height: 230px!important;
302
+ }
303
+
304
+ p.document-stage {
305
+ font-weight: 300;
306
+ height:160px;
307
+ }
308
+
309
+ #standard-band {
310
+ background-color: #0ac442;
311
+ }
312
+
313
+ #standard {
314
+ border-bottom: solid 3px #0ac442;
315
+ }
316
+
317
+ #governance {
318
+ border-bottom: solid 3px #750697;
319
+ }
320
+
321
+ #governance-band {
322
+ background-color: #750697;
323
+ }
324
+
325
+ #guide {
326
+ border-bottom: solid 3px #48a0e7;
327
+ }
328
+
329
+ #guide-band {
330
+ background-color: #48a0e7;
331
+ }
332
+
333
+ .coverpage-maturity {
334
+ font-family: 'Overpass', sans-serif;
335
+ font-weight: 400;
336
+ font-size: 1em;
337
+ margin: 0 0 2em 0;
338
+ text-transform: uppercase;
339
+ }
340
+
341
+ #working-draft {
342
+ border-bottom: solid 3px #fda706;
343
+ }
344
+
345
+ #working-draft-band {
346
+ background-color: #fda706;
347
+ }
348
+
349
+ #committee-draft {
350
+ border-bottom: solid 3px #fd06fd;
351
+ }
352
+
353
+ #committee-draft-band {
354
+ background-color: #fd06fd;
355
+ }
356
+
357
+ #draft-standard {
358
+ border-bottom: solid 3px #fdf906;
359
+ }
360
+
361
+ #draft-standard {
362
+ border-bottom: solid 3px #fdf906;
363
+ }
364
+
365
+ #standard {
366
+ border-bottom: solid 3px #0ac442;
367
+ }
368
+
369
+ #standard-band {
370
+ background-color: #0ac442;
371
+ }
372
+
373
+ #obsolete {
374
+ border-bottom: solid 3px #7e0d13;
375
+ }
376
+
377
+ #obsolete-band {
378
+ background-color: #7e0d13;
379
+ }
380
+
381
+
382
+ /* 3 Other styles */
383
+
384
+ /*
385
+ 3.3 Lists
386
+ */
387
+
388
+ ul, ol {margin-left: 2em;}
389
+
390
+ #toc-list ul {margin-bottom: 0.25em;}
391
+
392
+ #toc-list ol li {list-style-type: none;}
393
+
394
+ /* https://github.com/metanorma/metanorma-iso/issues/319 : ordered list rendering */
395
+
396
+ ol[type="alphabet"] {
397
+ counter-reset: alphabet;
398
+ }
399
+ ol[type="arabic"] {
400
+ counter-reset: arabic;
401
+ }
402
+ ol[type="roman"] {
403
+ counter-reset: roman;
404
+ }
405
+ ol[type="alphabet_upper"] {
406
+ counter-reset: alphabet_upper;
407
+ }
408
+ ol[type="roman_upper"] {
409
+ counter-reset: roman_upper;
410
+ }
411
+ ol[type="alphabet"] ol[type="alphabet"] {
412
+ counter-reset: alphabet2;
413
+ }
414
+ ol[type="arabic"] ol[type="arabic"] {
415
+ counter-reset: arabic2;
416
+ }
417
+ ol[type="roman"] ol[type="roman"] {
418
+ counter-reset: roman2;
419
+ }
420
+ ol[type="alphabet_upper"] ol[type="alphabet_upper"] {
421
+ counter-reset: alphabet_upper2;
422
+ }
423
+ ol[type="roman_upper"] ol[type="roman_upper"] {
424
+ counter-reset: roman_upper2;
425
+ }
426
+ ol {
427
+ counter-reset: alphabet;
428
+ }
429
+
430
+ ol > li {
431
+ list-style: none;
432
+ position: relative;
433
+ }
434
+ ol > li:before {
435
+ position: absolute;
436
+ left: -1.4em;
437
+ }
438
+ ol[type="roman"] > li:before {
439
+ left: -2.0em;
440
+ }
441
+ ol[type="roman_upper"] > li:before {
442
+ left: -2.3em;
443
+ }
444
+ ol[type="alphabet"] > li:before {
445
+ counter-increment: alphabet;
446
+ content: counter(alphabet, lower-alpha)") "
447
+ }
448
+ ol[type="arabic"] > li:before {
449
+ counter-increment: arabic;
450
+ content: counter(arabic, decimal)") "
451
+ }
452
+ ol[type="roman"] > li:before {
453
+ counter-increment: roman;
454
+ content: counter(roman, lower-roman)") "
455
+ }
456
+ ol[type="alphabet_upper"] > li:before {
457
+ counter-increment: alphabet_upper;
458
+ content: counter(alphabet_upper, upper-alpha)") "
459
+ }
460
+ ol[type="roman_upper"] > li:before {
461
+ counter-increment: roman_upper;
462
+ content: counter(roman_upper, upper-roman)") "
463
+ }
464
+ ol > li:before {
465
+ counter-increment: alphabet;
466
+ content: counter(alphabet, lower-alpha)") "
467
+ }
468
+ ol[type="alphabet"] ol[type="alphabet"] > li:before {
469
+ counter-increment: alphabet2;
470
+ content: counter(alphabet2, lower-alpha)") "
471
+ }
472
+ ol[type="arabic"] ol[type="arabic"] > li:before {
473
+ counter-increment: arabic2;
474
+ content: counter(arabic2, decimal)") "
475
+ }
476
+ ol[type="roman"] ol[type="roman"] > li:before {
477
+ counter-increment: roman2;
478
+ content: counter(roman2, lower-roman)") "
479
+ }
480
+ ol[type="alphabet_upper"] ol[type="alphabet_upper"] > li:before {
481
+ counter-increment: alphabet_upper2;
482
+ content: counter(alphabet_upper2, upper-alpha)") "
483
+ }
484
+ ol[type="roman_upper"] ol[type="roman_upper"] > li:before {
485
+ counter-increment: roman_upper2;
486
+ content: counter(roman_upper2, upper-roman)") "
487
+ }
488
+
489
+
490
+ /*
491
+ 3.4 Rules
492
+ */
493
+
494
+ .rule {
495
+ @include rule(1px, #0e1a85)
496
+ }
497
+
498
+ /*
499
+ 3.5 Bibliograhy
500
+ */
501
+
502
+ p.Biblio,
503
+ p.NormRef {
504
+ margin-top: 1em;
505
+ margin-left: 2em;
506
+ }
507
+
508
+ /*
509
+ 3.6 Source Code + figures
510
+ */
511
+
512
+ .figure,
513
+ pre,
514
+ .pseudocode {
515
+ @include pseudocodeBlock(#f5faff);
516
+ font-size: $monospacefontsize;
517
+ }
518
+
519
+ pre {
520
+ @include monospaceBlockStyle()
521
+ }
522
+
523
+ @include admonitionBlock();
524
+ @include recommendationBlock();
525
+
526
+ .FigureTitle,
527
+ .SourceTitle {
528
+ @include blockTitle()
529
+ }
530
+
531
+ /*
532
+ 3.7 Notes
533
+ */
534
+
535
+ .Note, .note {
536
+ background-color: #fff495;
537
+ color: #47430c;
538
+ padding: 0.5em;
539
+ margin: 1.5em 0 1.5em 0;
540
+ text-align: left;
541
+ }
542
+
543
+ .Note p, .note p {
544
+ margin: 0;
545
+ }
546
+
547
+ .Admonition {
548
+ background-color: #ffcccc;
549
+ color: #47430c;
550
+ padding: 0.5em;
551
+ margin: 1.5em 0 1.5em 0;
552
+ text-align: left;
553
+ }
554
+
555
+ .Admonition p {
556
+ margin: 0;
557
+ }
558
+
559
+
560
+ /*
561
+ 3.8 Examples
562
+ */
563
+
564
+ .example {
565
+ @include exampleBlock(#e1eef1, #424242, 0.5em);
566
+ text-align: left;
567
+
568
+ .example-title {
569
+ margin-top: 0;
570
+ }
571
+
572
+ pre,
573
+ .pseudocode {
574
+ background: none;
575
+ }
576
+ }
577
+
578
+ /*
579
+ 3.9 Tables
580
+ */
581
+
582
+ /*
583
+ 3.9 Tables
584
+ */
585
+
586
+ table {
587
+ @include table(1px solid black);
588
+ text-align: center;
589
+ td,
590
+ th {
591
+ font-size: 0.95em;
592
+ padding: 1em !important;
593
+ }
594
+ }
595
+
596
+ p.TableTitle {
597
+ text-align: center;
598
+ margin-top: 2.5em;
599
+ font-weight: 800;
600
+ font-size: 1.1em;
601
+ }
602
+
603
+ .TableFootnote {
604
+ text-align: left!important;
605
+ }
606
+
607
+ /*
608
+ 3.10 Footnotes
609
+ */
610
+
611
+ a.footnote-number, a.TableFootnoteRef, span.TableFootnoteRef {
612
+ vertical-align: super;
613
+ font-size: 0.8em;
614
+ }
615
+
616
+ .footnote {
617
+ font-size: $footnotefontsize;
618
+ }
619
+
620
+ sup a {
621
+ vertical-align: super;
622
+ font-size: 0.8em;
623
+ }
624
+ #footnote_box {
625
+ font-size: $footnotefontsize;
626
+ background: white;
627
+ padding: 0 10px;
628
+ margin: 10px;
629
+ border: 1px solid #888;
630
+ -moz-box-shadow: 0px 0px 5px #888;
631
+ -webkit-box-shadow: 0px 0px 5px #888;
632
+ box-shadow: 0px 0px 5px #888;
633
+ }
634
+
635
+ ol.footnotes-list, aside.footnote {
636
+ margin-left: 1em;
637
+
638
+ }
639
+
640
+ ol.footnotes-list li, aside.footnote {
641
+ font-size: $footnotefontsize;
642
+ vertical-align: top;
643
+ list-style:decimal;
644
+ margin-bottom: 1em;
645
+ }
646
+
647
+ ol.footnotes-list:first-child {
648
+ margin-top: 2em;
649
+ }
650
+
651
+ ol.footnotes-list p, aside.footnote p {
652
+ display: inline;
653
+ }
654
+
655
+ ol > li > p:before {
656
+ content: "";
657
+ display: none;
658
+ }
659
+
660
+
661
+ /*
662
+ 3.11 Blockquotes
663
+ */
664
+
665
+ .Quote {
666
+ @include blockquoteBlock(#f5faff);
667
+ }
668
+
669
+ /*
670
+ 3.12 Formulas
671
+ */
672
+
673
+ .formula {
674
+ @include formulaBlock(#f5faff)
675
+ }
676
+
677
+ dl.formula_dl {
678
+ background-color: #f5faff;
679
+ }
680
+
681
+ /*
682
+ Keywords
683
+ */
684
+
685
+ span.keyword {
686
+ font-weight: 600;
687
+ }
688
+
689
+ .Admonition, .admonition {
690
+ background-color: #ffb3b3;
691
+ /* color: #47430c;*/
692
+ padding: 0.5em;
693
+ margin: 1.5em 0 1.5em 0;
694
+ text-align: left;
695
+ }
696
+
697
+ .Admonition p, .admonition p {
698
+ margin: 0;
699
+ }