metanorma-standoc 1.9.3 → 1.10.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rake.yml +3 -13
  3. data/.hound.yml +3 -1
  4. data/.rubocop.yml +4 -6
  5. data/lib/asciidoctor/standoc/base.rb +3 -1
  6. data/lib/asciidoctor/standoc/blocks.rb +1 -1
  7. data/lib/asciidoctor/standoc/cleanup.rb +1 -2
  8. data/lib/asciidoctor/standoc/cleanup_block.rb +0 -1
  9. data/lib/asciidoctor/standoc/cleanup_boilerplate.rb +2 -2
  10. data/lib/asciidoctor/standoc/cleanup_footnotes.rb +0 -1
  11. data/lib/asciidoctor/standoc/cleanup_inline.rb +117 -77
  12. data/lib/asciidoctor/standoc/cleanup_maths.rb +0 -1
  13. data/lib/asciidoctor/standoc/cleanup_ref.rb +7 -0
  14. data/lib/asciidoctor/standoc/cleanup_section.rb +13 -81
  15. data/lib/asciidoctor/standoc/cleanup_section_names.rb +75 -0
  16. data/lib/asciidoctor/standoc/cleanup_terms.rb +19 -18
  17. data/lib/asciidoctor/standoc/converter.rb +1 -0
  18. data/lib/asciidoctor/standoc/front.rb +0 -1
  19. data/lib/asciidoctor/standoc/front_contributor.rb +66 -42
  20. data/lib/asciidoctor/standoc/inline.rb +45 -34
  21. data/lib/asciidoctor/standoc/isodoc.rng +65 -7
  22. data/lib/asciidoctor/standoc/macros.rb +7 -5
  23. data/lib/asciidoctor/standoc/macros_plantuml.rb +21 -23
  24. data/lib/asciidoctor/standoc/macros_terms.rb +60 -23
  25. data/lib/asciidoctor/standoc/section.rb +19 -12
  26. data/lib/asciidoctor/standoc/term_lookup_cleanup.rb +69 -30
  27. data/lib/asciidoctor/standoc/terms.rb +1 -1
  28. data/lib/asciidoctor/standoc/utils.rb +0 -1
  29. data/lib/asciidoctor/standoc/validate.rb +22 -8
  30. data/lib/isodoc/html/html_titlepage.html +81 -0
  31. data/lib/isodoc/html/htmlstyle.css +983 -0
  32. data/lib/isodoc/html/htmlstyle.scss +714 -0
  33. data/lib/isodoc/html/scripts.html +71 -0
  34. data/lib/metanorma/standoc/processor.rb +16 -7
  35. data/lib/metanorma/standoc/version.rb +1 -1
  36. data/metanorma-standoc.gemspec +2 -2
  37. data/spec/asciidoctor/base_spec.rb +693 -553
  38. data/spec/asciidoctor/blocks_spec.rb +6 -6
  39. data/spec/asciidoctor/cleanup_spec.rb +899 -688
  40. data/spec/asciidoctor/inline_spec.rb +62 -14
  41. data/spec/asciidoctor/isobib_cache_spec.rb +4 -6
  42. data/spec/asciidoctor/lists_spec.rb +147 -135
  43. data/spec/asciidoctor/macros_json2text_spec.rb +1 -1
  44. data/spec/asciidoctor/macros_spec.rb +714 -168
  45. data/spec/asciidoctor/refs_spec.rb +1527 -1532
  46. data/spec/asciidoctor/validate_spec.rb +352 -304
  47. data/spec/vcr_cassettes/dated_iso_ref_joint_iso_iec.yml +51 -51
  48. data/spec/vcr_cassettes/isobib_get_123.yml +14 -14
  49. data/spec/vcr_cassettes/isobib_get_123_1.yml +27 -27
  50. data/spec/vcr_cassettes/isobib_get_123_1_fr.yml +36 -36
  51. data/spec/vcr_cassettes/isobib_get_123_2001.yml +12 -12
  52. data/spec/vcr_cassettes/isobib_get_124.yml +13 -13
  53. data/spec/vcr_cassettes/rfcbib_get_rfc8341.yml +14 -14
  54. data/spec/vcr_cassettes/separates_iev_citations_by_top_level_clause.yml +46 -46
  55. metadata +10 -5
@@ -0,0 +1,714 @@
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
+ $doctype-colors-list: (
11
+ brochure: #0AC442,
12
+ mise-en-pratique: #540D6E,
13
+ rapport: #D183C9,
14
+ monographie: #65AFFF,
15
+ guide: #3A405A,
16
+ meeting-report: #F26430,
17
+ technical-report: #C84630,
18
+ working-part-note: #BFAE48,
19
+ strategy: #BD9391,
20
+ cipm-mra: #004E64,
21
+ resolution: #53C170
22
+ );
23
+
24
+
25
+ $docstage-colors-list: (
26
+ draft-proposal: #39A0ED,
27
+ draft-development: #2D7393,
28
+ in-force: #53C170,
29
+ retired: #2E382E
30
+ );
31
+
32
+ @import 'base_style/all';
33
+
34
+ /*
35
+ 1. HTML & Body
36
+ */
37
+
38
+ body {
39
+ @include bodyStyle1($normalfontsize, 1.4em, #1d1d1d, #ffffff, 300);
40
+ font-weight: 400;
41
+
42
+ pre * {
43
+ font-family: $bodyfont !important;
44
+ }
45
+ }
46
+
47
+ /*
48
+ 2. Responsive navigation layout
49
+ */
50
+
51
+ #toc {
52
+ @include toc(#485094, #C70039, #485094);
53
+ @include sidebarToc();
54
+
55
+ .toc-active a {
56
+ color: white;
57
+ }
58
+
59
+ .toc-active,
60
+ li:hover {
61
+ box-shadow: none !important;
62
+
63
+ a {
64
+ color: white;
65
+ background: none;
66
+ box-shadow: none;
67
+ }
68
+ }
69
+
70
+ li a {
71
+ text-transform: uppercase;
72
+ }
73
+
74
+ ul {
75
+ a:hover {
76
+ box-shadow: none;
77
+ color: white;
78
+ }
79
+ }
80
+ }
81
+
82
+ nav {
83
+ @include sidebarNav(#f7f7f7, 323px, 45px);
84
+ }
85
+
86
+ #toggle {
87
+ @include sidebarNavToggle(white, #C70039)
88
+ }
89
+
90
+ @media screen and (min-width: 768px) {
91
+ .container {
92
+ padding-left: 360px;
93
+ }
94
+
95
+ .rule.toc {
96
+ display: none;
97
+ }
98
+
99
+ h1.toc-contents {
100
+ margin-top: 1em;
101
+ }
102
+
103
+ ul#toc-list {
104
+ padding: 0;
105
+ margin: 0;
106
+ }
107
+ }
108
+
109
+ div.figure {
110
+ @include figureBlock();
111
+ }
112
+
113
+ /*
114
+ Document types + stages
115
+ */
116
+
117
+ .document-type-band {
118
+ @include docBand($order: 2, $offset: 180px);
119
+
120
+ .document-type {
121
+ top: 20px;
122
+ }
123
+ }
124
+
125
+ .document-stage-band {
126
+ @include docBand(1, 150);
127
+ }
128
+
129
+ .document-stage-band> :first-child {
130
+ font-weight: 300;
131
+ }
132
+
133
+ p.document-stage {
134
+ @include docBandTitle(150);
135
+ }
136
+
137
+ #governance-band p.document-type {
138
+ height: 230px !important;
139
+ }
140
+
141
+ p.document-stage {
142
+ font-weight: 300;
143
+ height: 160px;
144
+ }
145
+
146
+ .coverpage-maturity {
147
+ @include coverpageStageBlock();
148
+ }
149
+
150
+ /*
151
+ 3. TYPOGRAPHY
152
+ */
153
+
154
+ /*
155
+ 3.1 Titles
156
+ */
157
+
158
+ h1,h2,h3,h4,h5,h6 {
159
+ font-family: $headerfont;
160
+ color: #C70039;
161
+ font-weight: 300;
162
+ margin-top: 1.6em;
163
+ margin-bottom: 0.3em;
164
+ }
165
+
166
+ h1 {
167
+ font-size: 1.6em;
168
+ text-transform: uppercase;
169
+ margin-top: 2em;
170
+ }
171
+
172
+ h1#content {
173
+ margin-top: 2em;
174
+ }
175
+
176
+ h2 {
177
+ margin-top: 1.3em;
178
+ font-size: 1.3em;
179
+ font-weight: 400;
180
+ }
181
+
182
+ h3 {
183
+ margin-top: 1.1em;
184
+ font-size: 1.1em;
185
+ font-weight: 100;
186
+ }
187
+
188
+ .TermNum, .Terms, .AltTerms {
189
+ color: #C70039;
190
+ font-weight: 100;
191
+ }
192
+
193
+ h2.TermNum {
194
+ margin-bottom: 0;
195
+ }
196
+
197
+ p.Terms {
198
+ font-size: 1.1em;
199
+ line-height: 1.5em;
200
+ margin: 0;
201
+ }
202
+
203
+ p.AltTerms {
204
+ /*
205
+ font-style: italic;
206
+ */
207
+ font-size: 1.1em;
208
+ margin: 0;
209
+ }
210
+
211
+ /*
212
+ 3.2 Links
213
+ */
214
+ @include elementStyles(#485094, #C70039, white);
215
+
216
+ /*
217
+ 3.3 Lists
218
+ */
219
+
220
+ ul, ol {
221
+ margin-left: 1.2em;
222
+ }
223
+
224
+ ul li {
225
+ list-style: none;
226
+ }
227
+
228
+ ul li:before {
229
+ content: "—";
230
+ display: inline-block; width: 1em;
231
+ margin-left: -1.2em;
232
+ }
233
+
234
+ ul li p {
235
+ display: inline;
236
+ }
237
+
238
+ ul li:first-child {
239
+ margin-top: 1em;
240
+ }
241
+
242
+ #toc-list ul {
243
+ margin-bottom: 0.25em;
244
+ }
245
+
246
+ #toc-list li {
247
+ list-style-type: none;
248
+ }
249
+
250
+ #toc li:before {
251
+ content: " ";
252
+ display: none;
253
+ }
254
+
255
+ /* https://github.com/metanorma/metanorma-bipm/issues/47 */
256
+
257
+ ol[class="alphabet"] {
258
+ counter-reset: alphabet;
259
+ }
260
+ ol[class="roman"] {
261
+ counter-reset: roman;
262
+ }
263
+ ol[class="alphabet"] ol[class="alphabet"] {
264
+ counter-reset: none;
265
+ }
266
+ ol[class="alphabet"] > li {
267
+ list-style: none;
268
+ position: relative;
269
+ }
270
+ ol[class="alphabet"] ol[class="alphabet"] > li {
271
+ list-style: inherit;
272
+ }
273
+ ol[class="alphabet"] > li:before {
274
+ counter-increment: alphabet;
275
+ content: counter(alphabet, lower-alpha)") ";
276
+ position: absolute;
277
+ left: -1.4em;
278
+ }
279
+ ol[class="alphabet"] ol[class="alphabet"] > li:before {
280
+ counter-increment: none;
281
+ content: initial;
282
+ }
283
+ ol[class="roman"] ol[class="roman"] {
284
+ counter-reset: none;
285
+ }
286
+ ol[class="roman"] > li {
287
+ list-style: none;
288
+ position: relative;
289
+ }
290
+ ol[class="roman"] ol[class="roman"] > li {
291
+ list-style: inherit;
292
+ }
293
+ ol[class="roman"] > li:before {
294
+ counter-increment: roman;
295
+ content: "("counter(roman, lower-roman)") ";
296
+ position: absolute;
297
+ left: -2.0em;
298
+ }
299
+ ol[class="roman"] ol[class="roman"] > li:before {
300
+ counter-increment: none;
301
+ content: initial;
302
+ }
303
+
304
+
305
+
306
+ /*
307
+ 3.4 Rules
308
+ */
309
+ .rule {
310
+ @include rule(1px, #0e1a85)
311
+ }
312
+
313
+ /*
314
+ 3.5 Bibliograhy
315
+ */
316
+
317
+ p.Biblio, p.NormRef {
318
+ margin-top: 1em;
319
+ margin-left: 2em;
320
+ }
321
+
322
+ /*
323
+ 3.6 Source Code + figures
324
+ */
325
+
326
+ .figure,
327
+ pre,
328
+ .pseudocode {
329
+ @include pseudocodeBlock(#f7f7f7);
330
+ }
331
+
332
+ pre {
333
+ @include monospaceBlockStyle()
334
+ }
335
+
336
+ @include admonitionBlock();
337
+ @include recommendationBlock();
338
+
339
+ .FigureTitle,
340
+ .SourceTitle {
341
+ @include blockTitle()
342
+ }
343
+
344
+ /*
345
+ 3.7 Notes
346
+ */
347
+
348
+ .Note {
349
+ background-color: #fff495;
350
+ color: #47430c;
351
+ padding: 1.2em;
352
+ margin: 1em 0 1em 0;
353
+
354
+ p {
355
+ margin: 0;
356
+ }
357
+ }
358
+
359
+ /*
360
+ 3.8 Examples
361
+ */
362
+
363
+ .example {
364
+ @include exampleBlock(#e1eef1, #424242, 1.2em);
365
+
366
+ .example-title {
367
+ margin-top: 0;
368
+ }
369
+
370
+ pre,
371
+ .pseudocode {
372
+ background: none;
373
+ }
374
+ }
375
+
376
+ /*
377
+ 3.9 Tables
378
+ */
379
+
380
+ table {
381
+ @include table(1px solid black);
382
+ }
383
+
384
+ p.TableTitle {
385
+ text-align: center;
386
+ margin-top: 2.5em;
387
+ font-weight: 400;
388
+ }
389
+
390
+ /*
391
+ 3.10 Footnotes
392
+ */
393
+
394
+ a.footnote-number {
395
+ vertical-align: super;
396
+ font-size: 0.8em;
397
+ }
398
+
399
+ .footnote {
400
+ font-size: $footnotefontsize;
401
+ }
402
+
403
+
404
+ /*
405
+ 3.11 Blockquotes
406
+ */
407
+
408
+ .Quote {
409
+ @include blockquoteBlock(#f2f2f2);
410
+ }
411
+
412
+ /*
413
+ 3.12 Formulas
414
+ */
415
+
416
+ .formula {
417
+ @include formulaBlock(#f7f7f7)
418
+ }
419
+
420
+ /*
421
+ 3.13 Contact Info
422
+ */
423
+
424
+ .contact-info {
425
+ padding: 2em;
426
+ margin-top: 5em;
427
+ width: 250px;
428
+ text-align: left;
429
+ border: #C70039 solid 2px;
430
+ color: #C70039!important;
431
+ border-radius: 25px;
432
+
433
+ }
434
+
435
+ .contact-info a,
436
+ .contact-info a:hover {
437
+ color: #C70039;
438
+ }
439
+
440
+ .contact-info p, .contact-info a {
441
+ font-family: $monospacefont;
442
+ font-weight: 400;
443
+ }
444
+
445
+ .contact-info .name {
446
+ font-weight: 700;
447
+ font-size: 1.2em;
448
+ margin-bottom:0;
449
+ }
450
+
451
+ .contact-info .address {
452
+ font-size: 1em;
453
+ line-height: 1.3em;
454
+ margin-top:0;
455
+ }
456
+
457
+ /*
458
+ Keywords
459
+ */
460
+
461
+ span.keyword {
462
+ font-weight: 600;
463
+ }
464
+
465
+ /*
466
+ Paragraphs
467
+ */
468
+
469
+ p {
470
+ margin-top: 1em;
471
+ margin-bottom: 1em;
472
+ }
473
+
474
+ h2 p {
475
+ display: inline;
476
+ }
477
+
478
+
479
+ /*
480
+ 4.0 Page header
481
+ */
482
+
483
+ /*
484
+ 4.1 Top Logo
485
+ */
486
+
487
+ .icon-svg {
488
+ width: 100%;
489
+ color: #5ecf86;
490
+ }
491
+
492
+ .wrapper-top {
493
+ background: #C70039;
494
+ color: #ffffff;
495
+ padding: 2em 0;
496
+ width: 100%;
497
+ }
498
+
499
+ .wrapper-top-bottom {
500
+ width: 0;
501
+ height: 0;
502
+ border-top: 100px solid #C70039;
503
+ position: absolute;
504
+ }
505
+
506
+ .doc-number {
507
+ font-size: 0.5em;
508
+ font-family: $bodyfont;
509
+ }
510
+
511
+ .coverpage-title {
512
+ padding-bottom: 0.5em;
513
+ font-family: $headerfont;
514
+ font-size: 1.2em;
515
+ line-height: 1.5em;
516
+ font-weight: 100;
517
+ padding-left: 1em;
518
+ padding-right: 1em;
519
+ text-transform: uppercase;
520
+ }
521
+
522
+ .WordSection11 {
523
+ padding: 0 2em 0 3em;
524
+ }
525
+
526
+ .info-section {
527
+ padding: 0 2em 0 5em;
528
+ }
529
+
530
+ .prefatory-section {
531
+ padding: 0 3em 0 6em;
532
+ }
533
+
534
+
535
+ .zzSTDTitle1, .MsoCommentText {
536
+ display: none;
537
+ }
538
+
539
+
540
+ .coverpage {
541
+ text-align: center;
542
+ padding-left: 1.5em;
543
+ }
544
+
545
+ .coverpage-logo span, .coverpage-tc-name span {
546
+ font-family: $bodyfont;
547
+ text-transform: none;
548
+ font-weight: 300;
549
+ }
550
+
551
+ .coverpage-tc-name {
552
+ font-size: 1.2em;
553
+ line-height: 1.2em;
554
+ margin: 0.25em 0;
555
+ }
556
+
557
+ /*
558
+ 4.2 Document Identity
559
+ */
560
+
561
+ .coverpage-doc-identity {
562
+ font-size: 2em;
563
+ line-height: 2em;
564
+ }
565
+
566
+ .coverpage-title .title-second {
567
+ font-size: 0.8em;
568
+ }
569
+
570
+ .coverpage-title .title-third {
571
+ font-size: 0.6em;
572
+ }
573
+
574
+ .coverpage-stage-block {
575
+ font-family: $bodyfont;
576
+ font-weight: 600;
577
+ font-size: 1.25em;
578
+ margin: 2em 0em 2em 0em;
579
+ text-transform: uppercase;
580
+ }
581
+
582
+ /*
583
+ 4.3 Draft Warning
584
+ */
585
+
586
+ .coverpage-warning {
587
+ border: #f36f36 solid 2px;
588
+ color: #f36f36!important;
589
+ margin: 1em 2em;
590
+ color: #485094;
591
+ padding: 2em 1em 1em 1em;
592
+ border-radius: 25px;
593
+ }
594
+
595
+ .coverpage-warning .title {
596
+ font-family: $headerfont;
597
+ font-weight: 300;
598
+ text-transform: uppercase;
599
+ font-size: 1.2em;
600
+ }
601
+
602
+
603
+ /*
604
+ 4.4 Copyright
605
+ */
606
+
607
+ .copyright {
608
+ padding: 1em;
609
+ font-size: 0.9em;
610
+ text-align: left;
611
+ }
612
+
613
+
614
+ /* .copyright .name, .copyright .address {color: #485094;} */
615
+
616
+
617
+
618
+ /*
619
+ 5.0 Other styles
620
+ */
621
+
622
+
623
+
624
+ /*
625
+ To top button
626
+ */
627
+
628
+ #myBtn {
629
+ @include toTopBtn(white, #1f8ca0);
630
+ text-transform: uppercase;
631
+
632
+ a.anchorjs-link {
633
+ @include anchorLink(#485094)
634
+ }
635
+ }
636
+
637
+ @page {
638
+ margin: 2cm 1cm;
639
+ }
640
+
641
+ @media print {
642
+ .document-info, nav, .copyright {
643
+ page-break-before: always;
644
+ }
645
+
646
+ h1, h2, h3, h4 {
647
+ page-break-after: avoid;
648
+ margin-top: 1.2em;
649
+ }
650
+
651
+ .note, .figure, pre, .pseudocode, table {
652
+ page-break-inside: avoid;
653
+ }
654
+
655
+ .info-section {
656
+ display: none;
657
+ }
658
+
659
+ .coverpage {
660
+ height: 23cm;
661
+ }
662
+
663
+ .wrapper-top {
664
+ top: 0;
665
+ padding-top: 4cm;
666
+ padding-bottom: 4cm;
667
+ }
668
+
669
+ .wrapper-top-bottom {
670
+ margin-top: -5px;
671
+ }
672
+
673
+
674
+ #toggle, .document-stage-band,
675
+ .document-type-band, button#myBtn {
676
+ display: none;
677
+ }
678
+
679
+ .container {
680
+ padding-left: 0;
681
+ }
682
+
683
+ h1.content {
684
+ margin-top: 2em;
685
+ line-height: 2.5em;
686
+ }
687
+
688
+ h1 {
689
+ font-size: 1.5em;
690
+ line-height: 1.5;
691
+ }
692
+
693
+ h2 {
694
+ font-size: 1.2em
695
+ }
696
+
697
+ h3 {
698
+ font-size: 1em;
699
+ }
700
+
701
+ .Note {
702
+ background-color: #fff495;
703
+ color: #47430c;
704
+ padding: 5px;
705
+ margin: 2em 0 1em 0; }
706
+
707
+ .Note p {
708
+ padding: 0 5px 0 5px;
709
+ }
710
+
711
+ .wrapper-top-bottom {
712
+ display: none;
713
+ }
714
+ }