metanorma-iso 3.3.0 → 3.3.2

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 (45) hide show
  1. checksums.yaml +4 -4
  2. data/lib/isodoc/iso/base_convert.rb +22 -22
  3. data/lib/isodoc/iso/html/style-human.css +22 -17
  4. data/lib/isodoc/iso/html/style-human.scss +15 -14
  5. data/lib/isodoc/iso/html/style-iso.css +22 -15
  6. data/lib/isodoc/iso/html/style-iso.scss +14 -12
  7. data/lib/isodoc/iso/html_convert.rb +8 -1
  8. data/lib/isodoc/iso/iso.amendment.xsl +377 -166
  9. data/lib/isodoc/iso/iso.international-standard.xsl +377 -166
  10. data/lib/isodoc/iso/metadata.rb +0 -1
  11. data/lib/isodoc/iso/presentation_xml_convert.rb +1 -0
  12. data/lib/isodoc/iso/sections.rb +1 -1
  13. data/lib/isodoc/iso/word_convert.rb +25 -11
  14. data/lib/isodoc/iso/word_dis_convert.rb +2 -2
  15. data/lib/metanorma/iso/base.rb +2 -0
  16. data/lib/metanorma/iso/basicdoc.rng +5 -1
  17. data/lib/metanorma/iso/biblio.rng +4 -4
  18. data/lib/metanorma/iso/cleanup.rb +5 -1
  19. data/lib/metanorma/iso/cleanup_biblio.rb +3 -3
  20. data/lib/metanorma/iso/isodoc.rng +77 -28
  21. data/lib/metanorma/iso/validate.rb +9 -4
  22. data/lib/metanorma/iso/validate_list.rb +1 -1
  23. data/lib/metanorma/iso/validate_numeric.rb +1 -1
  24. data/lib/metanorma/iso/validate_requirements.rb +1 -1
  25. data/lib/metanorma/iso/validate_section.rb +1 -1
  26. data/lib/metanorma/iso/validate_style.rb +1 -1
  27. data/lib/metanorma/iso/validate_title.rb +1 -1
  28. data/lib/metanorma/iso/validate_xref.rb +1 -1
  29. data/lib/metanorma/iso/version.rb +1 -1
  30. data/lib/metanorma-iso.rb +2 -0
  31. data/metanorma-iso.gemspec +2 -1
  32. metadata +18 -17
  33. data/lib/asciidoctor/iso/base.rb +0 -2
  34. data/lib/asciidoctor/iso/cleanup.rb +0 -2
  35. data/lib/asciidoctor/iso/converter.rb +0 -2
  36. data/lib/asciidoctor/iso/deprecated.rb +0 -7
  37. data/lib/asciidoctor/iso/front.rb +0 -2
  38. data/lib/asciidoctor/iso/front_id.rb +0 -2
  39. data/lib/asciidoctor/iso/section.rb +0 -2
  40. data/lib/asciidoctor/iso/validate.rb +0 -2
  41. data/lib/asciidoctor/iso/validate_image.rb +0 -2
  42. data/lib/asciidoctor/iso/validate_requirements.rb +0 -2
  43. data/lib/asciidoctor/iso/validate_section.rb +0 -2
  44. data/lib/asciidoctor/iso/validate_style.rb +0 -2
  45. data/lib/asciidoctor/iso/validate_title.rb +0 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c4aececcab24bcc1cf73e4ccaeb5b09d4dee655365401dbcfe659efe98233e65
4
- data.tar.gz: c94f52a47cfb911bbd0386aba74596b5713248f8bb0630a0c5a2059afdc1d47a
3
+ metadata.gz: 62383db44746d5687ee8f592669444896cb5f24b79265194a496ef11b0ad0c40
4
+ data.tar.gz: 8ce7b65a8d65719729bde2e6a78c442aef2281262b850e16e2bc8d6b3c3210d1
5
5
  SHA512:
6
- metadata.gz: 9a50262b7cddf480a0da235510757d0f5bf2784d4d3875900f63c8f28f0206482d648a366041f917edc9146f3665bc8eced9744e3bcc8638f4c6559605a5db6f
7
- data.tar.gz: 6311eaa0ba4d80312075298fb9e5815e551d0dd7e1af65eb5a3ce89df0e2f161f5d629a094cc21c8172bed798e9e0af768a2af4c6f87aa8575459329b44cc239
6
+ metadata.gz: c5b9244680bc5f548676e5a5b77e26456bbaa3f4bb47125a38053b19ca83a34ac7c37d23ccdc45b12dc568832e9c157f010dbc5417171efd41708b85187c484e
7
+ data.tar.gz: e5f05e8738f30968928dbebcadf19709da40afc102d909918f63517af96fae7cb92b4f8189952d02eb3f38ada00ed2078e38d096fab2ddecf1dc86d139b3faa2
@@ -27,7 +27,7 @@ module IsoDoc
27
27
  def example_p_parse(node, div)
28
28
  name = node.at(ns("./fmt-name"))
29
29
  para = node.at(ns("./p")) || node.at(ns("./semx/p"))
30
- div.p **attr_code(class: example_p_class) do |p|
30
+ div.p(**attr_code(class: example_p_class)) do |p|
31
31
  name and p.span class: "example_label" do |s|
32
32
  name.children.each { |n| parse(n, s) }
33
33
  end
@@ -68,12 +68,6 @@ module IsoDoc
68
68
  end
69
69
  end
70
70
 
71
- def admonition_class(node)
72
- if node["type"] == "editorial" then "zzHelp"
73
- else super
74
- end
75
- end
76
-
77
71
  def admonition_p_parse(node, div)
78
72
  admonition_name_in_first_para(node, div)
79
73
  end
@@ -83,13 +77,6 @@ module IsoDoc
83
77
  para << " "
84
78
  end
85
79
 
86
- def figure_name_parse(_node, div, name)
87
- name.nil? and return
88
- div.p class: "FigureTitle", style: "text-align:center;" do |p|
89
- name.children.each { |n| parse(n, p) }
90
- end
91
- end
92
-
93
80
  def top_element_render(elem, out)
94
81
  if %w(clause terms definitions).include?(elem.name) &&
95
82
  elem.parent.name == "sections" &&
@@ -100,10 +87,10 @@ module IsoDoc
100
87
  end
101
88
 
102
89
  def clause_etc1(clause, out, num)
103
- out.div **attr_code(
90
+ out.div(**attr_code(
104
91
  id: clause["id"],
105
92
  class: clause.name == "definitions" ? "Symbols" : nil,
106
- ) do |div|
93
+ )) do |div|
107
94
  num = num + 1
108
95
  clause_name(clause, clause&.at(ns("./fmt-title")), div, nil)
109
96
  clause.elements.each do |e|
@@ -114,15 +101,28 @@ module IsoDoc
114
101
 
115
102
  def table_parse(node, out)
116
103
  @in_table = true
117
- table_title_parse(node, out)
118
- measurement_units(node, out)
119
- out.table **table_attrs(node) do |t|
104
+ out.table(**table_attrs(node)) do |t|
105
+ table_title_parse(node, t)
120
106
  table_parse_core(node, t)
121
107
  table_parse_tail(node, t)
122
108
  end
123
109
  @in_table = false
124
110
  end
125
111
 
112
+ def table_title_parse(node, out)
113
+ name = node.at(ns("./fmt-name"))
114
+ summ = node["summary"]
115
+ meas = node.at(ns("./note[@type = 'units']"))
116
+ name || summ || meas or return
117
+ out.caption do |p|
118
+ children_parse(name, p)
119
+ measurement_units(node, p)
120
+ summ and p.span style: "display:none" do |s|
121
+ s << summ
122
+ end
123
+ end
124
+ end
125
+
126
126
  def table_parse_tail(node, out)
127
127
  (key = node.at(ns("./key"))) && parse(key, out)
128
128
  node.xpath(ns("./fmt-source")).each { |n| parse(n, out) }
@@ -134,8 +134,8 @@ module IsoDoc
134
134
  end
135
135
 
136
136
  def figure_parse1(node, out)
137
- measurement_units(node, out)
138
- out.div **figure_attrs(node) do |div|
137
+ out.figure(**figure_attrs(node)) do |div|
138
+ measurement_units(node, out)
139
139
  node.children.each do |n|
140
140
  n.name == "note" && n["type"] == "units" and next
141
141
  parse(n, div) unless n.name == "fmt-name"
@@ -158,7 +158,7 @@ module IsoDoc
158
158
  super
159
159
  docxml.xpath("//tfoot//div[@class = 'figdl']/p[@class = 'ListTitle']")
160
160
  .each do |p|
161
- p["align"] = "left"
161
+ p["align"] = "left"
162
162
  end
163
163
  docxml
164
164
  end
@@ -319,6 +319,11 @@ svg {
319
319
  display: block; /* ← removes unwanted inline spacing */
320
320
  }
321
321
 
322
+ /* style dfn by override in flavor */
323
+ dfn {
324
+ font-style: inherit;
325
+ }
326
+
322
327
  #standard-band {
323
328
  background-color: #0AC442;
324
329
  }
@@ -865,14 +870,14 @@ nav {
865
870
  width: 100%;
866
871
  }
867
872
  }
868
- .figure .SourceTitle,
873
+ figure .SourceTitle,
869
874
  pre .SourceTitle,
870
875
  .pseudocode .SourceTitle {
871
876
  font-weight: 700;
872
877
  font-size: 1em;
873
878
  text-align: center;
874
879
  }
875
- .figure,
880
+ figure,
876
881
  pre,
877
882
  .pseudocode {
878
883
  background-color: #f7f7f7;
@@ -884,26 +889,26 @@ pre,
884
889
  font-size: {{normalfontsize}};
885
890
  }
886
891
 
887
- div.figure .FigureTitle, div.figure .figure-title {
892
+ figure figcaption {
888
893
  font-weight: 700;
889
894
  font-size: 1em;
890
895
  text-align: center;
891
896
  }
892
- div.figure > img, div.figure > svg {
897
+ figure > img, figure > svg {
893
898
  margin-left: auto;
894
899
  margin-right: auto;
895
900
  display: block;
896
901
  max-width: 100%;
897
902
  height: auto;
898
903
  }
899
- div.figure {
904
+ figure {
900
905
  line-height: 1.6em;
901
906
  padding: 1.5em;
902
907
  margin: 2em 0 1em 0;
903
908
  overflow: auto;
904
909
  }
905
910
 
906
- table div.figure {
911
+ table figure {
907
912
  padding: 0;
908
913
  margin: 0;
909
914
  }
@@ -1130,17 +1135,21 @@ p.NormRef, div.Biblio, div.NormRef {
1130
1135
  margin-left: 2em;
1131
1136
  }
1132
1137
 
1138
+ .Biblio.note, .Biblio.Note, .NormRef.note, .NormRef.Note {
1139
+ margin-left: 3.5em;
1140
+ }
1141
+
1133
1142
  /*
1134
1143
  3.6 Source Code + figures
1135
1144
  */
1136
- .figure .SourceTitle,
1145
+ figure .SourceTitle,
1137
1146
  pre .SourceTitle,
1138
1147
  .pseudocode .SourceTitle {
1139
1148
  font-weight: 700;
1140
1149
  font-size: 1em;
1141
1150
  text-align: center;
1142
1151
  }
1143
- .figure,
1152
+ figure,
1144
1153
  pre,
1145
1154
  .pseudocode {
1146
1155
  background-color: #f7f7f7;
@@ -1176,8 +1185,7 @@ pre {
1176
1185
  text-align: left;
1177
1186
  }
1178
1187
 
1179
- .figure-title,
1180
- .FigureTitle,
1188
+ figcaption,
1181
1189
  .SourceTitle,
1182
1190
  .AdmonitionTitle,
1183
1191
  .RecommendationTitle {
@@ -1291,7 +1299,7 @@ table.rouge-line-table td, table.rouge-line-table th {
1291
1299
  padding: 0em !important;
1292
1300
  }
1293
1301
 
1294
- p.TableTitle {
1302
+ table > caption {
1295
1303
  text-align: center;
1296
1304
  margin-top: 2.5em;
1297
1305
  font-weight: 800;
@@ -1436,16 +1444,13 @@ span.keyword {
1436
1444
  }
1437
1445
 
1438
1446
  .Admonition p,
1439
- .admonition p,
1440
- .zzHelp p {
1447
+ .admonition p {
1441
1448
  margin: 0;
1442
1449
  }
1443
1450
 
1444
- div.zzHelp {
1451
+ div.Admonition.AdmonitionEditorial {
1445
1452
  color: green;
1446
- padding: 0.5em;
1447
- margin: 1.5em 0 1.5em 0;
1448
- text-align: left;
1453
+ background-color: white;
1449
1454
  }
1450
1455
 
1451
1456
  /* Collapse TOC */
@@ -330,18 +330,18 @@ nav {
330
330
  }
331
331
  }
332
332
 
333
- .figure,
333
+ figure,
334
334
  pre,
335
335
  .pseudocode {
336
336
  @include pseudocodeBlock(#f7f7f7);
337
337
  font-size: $normalfontsize;
338
338
  }
339
339
 
340
- div.figure {
340
+ figure {
341
341
  @include figureBlock();
342
342
  }
343
343
 
344
- table div.figure {
344
+ table figure {
345
345
  padding: 0;
346
346
  margin: 0;
347
347
  }
@@ -496,11 +496,15 @@ p.NormRef, div.Biblio, div.NormRef {
496
496
  margin-left: 2em;
497
497
  }
498
498
 
499
+ .Biblio.note, .Biblio.Note, .NormRef.note, .NormRef.Note {
500
+ margin-left: 3.5em;
501
+ }
502
+
499
503
  /*
500
504
  3.6 Source Code + figures
501
505
  */
502
506
 
503
- .figure,
507
+ figure,
504
508
  pre,
505
509
  .pseudocode {
506
510
  @include pseudocodeBlock(#f7f7f7);
@@ -515,15 +519,14 @@ pre {
515
519
  @include recommendationBlock();
516
520
  @include listBlock();
517
521
 
518
- .figure-title,
519
- .FigureTitle,
522
+ figcaption,
520
523
  .SourceTitle,
521
524
  .AdmonitionTitle,
522
525
  .RecommendationTitle {
523
526
  @include blockTitle()
524
527
  }
525
528
 
526
- .figure dl {
529
+ figure dl {
527
530
  }
528
531
 
529
532
  /*
@@ -601,7 +604,7 @@ table.rouge-line-table td, table.rouge-line-table th {
601
604
  padding: 0em !important;
602
605
  }
603
606
 
604
- p.TableTitle {
607
+ table > caption {
605
608
  text-align: center;
606
609
  margin-top: 2.5em;
607
610
  font-weight: 800;
@@ -744,16 +747,14 @@ span.keyword {
744
747
  }
745
748
 
746
749
  .Admonition p,
747
- .admonition p,
748
- .zzHelp p {
750
+ .admonition p
751
+ {
749
752
  margin: 0;
750
753
  }
751
754
 
752
- div.zzHelp {
755
+ div.Admonition.AdmonitionEditorial {
753
756
  color: green;
754
- padding: 0.5em;
755
- margin: 1.5em 0 1.5em 0;
756
- text-align: left;
757
+ background-color: white;
757
758
  }
758
759
 
759
760
  /* Collapse TOC */
@@ -319,6 +319,11 @@ svg {
319
319
  display: block; /* ← removes unwanted inline spacing */
320
320
  }
321
321
 
322
+ /* style dfn by override in flavor */
323
+ dfn {
324
+ font-style: inherit;
325
+ }
326
+
322
327
  #standard-band {
323
328
  background-color: #0AC442;
324
329
  }
@@ -814,14 +819,14 @@ nav {
814
819
  width: 100%;
815
820
  }
816
821
  }
817
- .figure .SourceTitle,
822
+ figure .SourceTitle,
818
823
  pre .SourceTitle,
819
824
  .pseudocode .SourceTitle {
820
825
  font-weight: 700;
821
826
  font-size: 1em;
822
827
  text-align: center;
823
828
  }
824
- .figure,
829
+ figure,
825
830
  pre,
826
831
  .pseudocode {
827
832
  background-color: #f7f7f7;
@@ -833,26 +838,26 @@ pre,
833
838
  font-size: {{normalfontsize}};
834
839
  }
835
840
 
836
- div.figure .FigureTitle, div.figure .figure-title {
841
+ figure figcaption {
837
842
  font-weight: 700;
838
843
  font-size: 1em;
839
844
  text-align: center;
840
845
  }
841
- div.figure > img, div.figure > svg {
846
+ figure > img, figure > svg {
842
847
  margin-left: auto;
843
848
  margin-right: auto;
844
849
  display: block;
845
850
  max-width: 100%;
846
851
  height: auto;
847
852
  }
848
- div.figure {
853
+ figure {
849
854
  line-height: 1.6em;
850
855
  padding: 1.5em;
851
856
  margin: 2em 0 1em 0;
852
857
  overflow: auto;
853
858
  }
854
859
 
855
- table div.figure {
860
+ table figure {
856
861
  padding: 0;
857
862
  margin: 0;
858
863
  }
@@ -1195,17 +1200,21 @@ p.Biblio, p.NormRef, div.Biblio, div.NormRef {
1195
1200
  margin-left: 2em;
1196
1201
  }
1197
1202
 
1203
+ .Biblio.note, .Biblio.Note, .NormRef.note, .NormRef.Note {
1204
+ margin-left: 3.5em;
1205
+ }
1206
+
1198
1207
  /*
1199
1208
  3.6 Source Code + figures
1200
1209
  */
1201
- .figure .SourceTitle,
1210
+ figure .SourceTitle,
1202
1211
  pre .SourceTitle,
1203
1212
  .pseudocode .SourceTitle {
1204
1213
  font-weight: 700;
1205
1214
  font-size: 1em;
1206
1215
  text-align: center;
1207
1216
  }
1208
- .figure,
1217
+ figure,
1209
1218
  pre,
1210
1219
  .pseudocode {
1211
1220
  background-color: #f7f7f7;
@@ -1241,7 +1250,7 @@ pre {
1241
1250
  text-align: left;
1242
1251
  }
1243
1252
 
1244
- .figure-title, .FigureTitle, .SourceTitle, .AdmonitionTitle, .RecommendationTitle {
1253
+ figcaption, .SourceTitle, .AdmonitionTitle, .RecommendationTitle {
1245
1254
  font-weight: 700;
1246
1255
  font-size: 1em;
1247
1256
  text-align: center;
@@ -1270,15 +1279,13 @@ pre {
1270
1279
  text-align: left;
1271
1280
  }
1272
1281
 
1273
- .Admonition p, .zzHelp p {
1282
+ .Admonition p {
1274
1283
  margin: 0;
1275
1284
  }
1276
1285
 
1277
- div.zzHelp {
1286
+ div.Admonition.AdmonitionEditorial {
1278
1287
  color: green;
1279
- padding: 0.5em;
1280
- margin: 1.5em 0 1.5em 0;
1281
- text-align: left;
1288
+ background-color: white;
1282
1289
  }
1283
1290
 
1284
1291
  /*
@@ -1357,7 +1364,7 @@ td > p:last-child, th > p:last-child {
1357
1364
  margin-bottom: 0em;
1358
1365
  }
1359
1366
 
1360
- p.TableTitle {
1367
+ table > caption {
1361
1368
  text-align: center;
1362
1369
  margin-top: 2.5em;
1363
1370
  font-weight: 800;
@@ -270,18 +270,18 @@ nav {
270
270
  }
271
271
  }
272
272
 
273
- .figure,
273
+ figure,
274
274
  pre,
275
275
  .pseudocode {
276
276
  @include pseudocodeBlock(#f7f7f7);
277
277
  font-size: $normalfontsize;
278
278
  }
279
279
 
280
- div.figure {
280
+ figure {
281
281
  @include figureBlock();
282
282
  }
283
283
 
284
- table div.figure {
284
+ table figure {
285
285
  padding: 0;
286
286
  margin: 0;
287
287
  }
@@ -530,11 +530,15 @@ p.Biblio, p.NormRef, div.Biblio, div.NormRef {
530
530
  margin-left: 2em;
531
531
  }
532
532
 
533
+ .Biblio.note, .Biblio.Note, .NormRef.note, .NormRef.Note {
534
+ margin-left: 3.5em;
535
+ }
536
+
533
537
  /*
534
538
  3.6 Source Code + figures
535
539
  */
536
540
 
537
- .figure,
541
+ figure,
538
542
  pre,
539
543
  .pseudocode {
540
544
  @include pseudocodeBlock(#f7f7f7);
@@ -549,11 +553,11 @@ pre {
549
553
  @include recommendationBlock();
550
554
  @include listBlock();
551
555
 
552
- .figure-title, .FigureTitle, .SourceTitle, .AdmonitionTitle, .RecommendationTitle {
556
+ figcaption, .SourceTitle, .AdmonitionTitle, .RecommendationTitle {
553
557
  @include blockTitle()
554
558
  }
555
559
 
556
- .figure dl {
560
+ figure dl {
557
561
  }
558
562
 
559
563
  /*
@@ -580,15 +584,13 @@ pre {
580
584
  text-align: left;
581
585
  }
582
586
 
583
- .Admonition p, .zzHelp p {
587
+ .Admonition p {
584
588
  margin: 0;
585
589
  }
586
590
 
587
- div.zzHelp {
591
+ div.Admonition.AdmonitionEditorial {
588
592
  color: green;
589
- padding: 0.5em;
590
- margin: 1.5em 0 1.5em 0;
591
- text-align: left;
593
+ background-color: white;
592
594
  }
593
595
 
594
596
 
@@ -636,7 +638,7 @@ td > p:last-child, th > p:last-child {
636
638
  }
637
639
 
638
640
 
639
- p.TableTitle {
641
+ table > caption {
640
642
  text-align: center;
641
643
  margin-top: 2.5em;
642
644
  font-weight: 800;
@@ -115,7 +115,14 @@ module IsoDoc
115
115
 
116
116
  def ol_attrs(node)
117
117
  ret = super
118
- ret.merge(class: OL_STYLE.invert[ret[:type]])
118
+ klass = OL_STYLE.invert[ret[:type]]
119
+ ret = ret.merge(class: klass)
120
+ if (start = node["start"]) && klass
121
+ start_val = start.to_i - 1
122
+ existing_style = ret[:style] ? "#{ret[:style]};" : ""
123
+ ret = ret.merge(style: "#{existing_style}counter-reset: #{klass} #{start_val}")
124
+ end
125
+ ret
119
126
  end
120
127
 
121
128
  include BaseConvert