metanorma-ogc 1.4.0 → 1.4.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/asciidoctor/ogc/boilerplate.xml +6 -6
- data/lib/asciidoctor/ogc/cleanup.rb +173 -0
- data/lib/asciidoctor/ogc/converter.rb +62 -64
- data/lib/asciidoctor/ogc/front.rb +1 -1
- data/lib/asciidoctor/ogc/isodoc.rng +211 -11
- data/lib/asciidoctor/ogc/reqt.rng +16 -0
- data/lib/asciidoctor/ogc/validate.rb +35 -20
- data/lib/isodoc/ogc/base_convert.rb +47 -10
- data/lib/isodoc/ogc/biblio.rb +57 -51
- data/lib/isodoc/ogc/html/htmlstyle.css +10 -0
- data/lib/isodoc/ogc/html/htmlstyle.scss +12 -0
- data/lib/isodoc/ogc/html/ogc.css +4 -0
- data/lib/isodoc/ogc/html/ogc.scss +4 -0
- data/lib/isodoc/ogc/i18n-en.yaml +24 -8
- data/lib/isodoc/ogc/metadata.rb +1 -1
- data/lib/isodoc/ogc/ogc.abstract-specification-topic.xsl +501 -127
- data/lib/isodoc/ogc/ogc.best-practice.xsl +501 -127
- data/lib/isodoc/ogc/ogc.change-request-supporting-document.xsl +501 -127
- data/lib/isodoc/ogc/ogc.community-practice.xsl +501 -127
- data/lib/isodoc/ogc/ogc.community-standard.xsl +501 -127
- data/lib/isodoc/ogc/ogc.discussion-paper.xsl +501 -127
- data/lib/isodoc/ogc/ogc.engineering-report.xsl +501 -127
- data/lib/isodoc/ogc/ogc.other.xsl +501 -127
- data/lib/isodoc/ogc/ogc.policy.xsl +501 -127
- data/lib/isodoc/ogc/ogc.reference-model.xsl +501 -127
- data/lib/isodoc/ogc/ogc.release-notes.xsl +501 -127
- data/lib/isodoc/ogc/ogc.standard.xsl +501 -127
- data/lib/isodoc/ogc/ogc.test-suite.xsl +501 -127
- data/lib/isodoc/ogc/ogc.user-guide.xsl +501 -127
- data/lib/isodoc/ogc/ogc.white-paper.xsl +358 -66
- data/lib/isodoc/ogc/presentation_xml_convert.rb +58 -48
- data/lib/isodoc/ogc/reqt.rb +64 -46
- data/lib/isodoc/ogc/xref.rb +1 -2
- data/lib/metanorma/ogc/version.rb +1 -1
- metadata +3 -2
@@ -32,6 +32,18 @@
|
|
32
32
|
<ref name="DocumentType"/>
|
33
33
|
</element>
|
34
34
|
</define>
|
35
|
+
<define name="section-title">
|
36
|
+
<element name="title">
|
37
|
+
<zeroOrMore>
|
38
|
+
<ref name="TextElement"/>
|
39
|
+
</zeroOrMore>
|
40
|
+
</element>
|
41
|
+
<zeroOrMore>
|
42
|
+
<element name="variant-title">
|
43
|
+
<ref name="TypedTitleString"/>
|
44
|
+
</element>
|
45
|
+
</zeroOrMore>
|
46
|
+
</define>
|
35
47
|
<define name="hyperlink">
|
36
48
|
<element name="link">
|
37
49
|
<attribute name="target">
|
@@ -135,6 +147,14 @@
|
|
135
147
|
<data type="boolean"/>
|
136
148
|
</attribute>
|
137
149
|
</optional>
|
150
|
+
<optional>
|
151
|
+
<attribute name="tag"/>
|
152
|
+
</optional>
|
153
|
+
<optional>
|
154
|
+
<attribute name="multilingual-rendering">
|
155
|
+
<ref name="MultilingualRenderingType"/>
|
156
|
+
</attribute>
|
157
|
+
</optional>
|
138
158
|
<oneOrMore>
|
139
159
|
<ref name="ul_li"/>
|
140
160
|
</oneOrMore>
|
@@ -158,15 +178,25 @@
|
|
158
178
|
<data type="boolean"/>
|
159
179
|
</attribute>
|
160
180
|
</optional>
|
161
|
-
<
|
162
|
-
<
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
<
|
167
|
-
|
168
|
-
|
169
|
-
|
181
|
+
<optional>
|
182
|
+
<attribute name="tag"/>
|
183
|
+
</optional>
|
184
|
+
<optional>
|
185
|
+
<attribute name="multilingual-rendering">
|
186
|
+
<ref name="MultilingualRenderingType"/>
|
187
|
+
</attribute>
|
188
|
+
</optional>
|
189
|
+
<optional>
|
190
|
+
<attribute name="type">
|
191
|
+
<choice>
|
192
|
+
<value>roman</value>
|
193
|
+
<value>alphabet</value>
|
194
|
+
<value>arabic</value>
|
195
|
+
<value>roman_upper</value>
|
196
|
+
<value>alphabet_upper</value>
|
197
|
+
</choice>
|
198
|
+
</attribute>
|
199
|
+
</optional>
|
170
200
|
<oneOrMore>
|
171
201
|
<ref name="li"/>
|
172
202
|
</oneOrMore>
|
@@ -195,6 +225,14 @@
|
|
195
225
|
<data type="boolean"/>
|
196
226
|
</attribute>
|
197
227
|
</optional>
|
228
|
+
<optional>
|
229
|
+
<attribute name="tag"/>
|
230
|
+
</optional>
|
231
|
+
<optional>
|
232
|
+
<attribute name="multilingual-rendering">
|
233
|
+
<ref name="MultilingualRenderingType"/>
|
234
|
+
</attribute>
|
235
|
+
</optional>
|
198
236
|
<oneOrMore>
|
199
237
|
<ref name="dt"/>
|
200
238
|
<ref name="dd"/>
|
@@ -242,6 +280,14 @@
|
|
242
280
|
<data type="boolean"/>
|
243
281
|
</attribute>
|
244
282
|
</optional>
|
283
|
+
<optional>
|
284
|
+
<attribute name="tag"/>
|
285
|
+
</optional>
|
286
|
+
<optional>
|
287
|
+
<attribute name="multilingual-rendering">
|
288
|
+
<ref name="MultilingualRenderingType"/>
|
289
|
+
</attribute>
|
290
|
+
</optional>
|
245
291
|
<optional>
|
246
292
|
<ref name="tname"/>
|
247
293
|
</optional>
|
@@ -302,6 +348,14 @@
|
|
302
348
|
<optional>
|
303
349
|
<attribute name="width"/>
|
304
350
|
</optional>
|
351
|
+
<optional>
|
352
|
+
<attribute name="tag"/>
|
353
|
+
</optional>
|
354
|
+
<optional>
|
355
|
+
<attribute name="multilingual-rendering">
|
356
|
+
<ref name="MultilingualRenderingType"/>
|
357
|
+
</attribute>
|
358
|
+
</optional>
|
305
359
|
<optional>
|
306
360
|
<ref name="colgroup"/>
|
307
361
|
</optional>
|
@@ -352,6 +406,14 @@
|
|
352
406
|
<optional>
|
353
407
|
<attribute name="class"/>
|
354
408
|
</optional>
|
409
|
+
<optional>
|
410
|
+
<attribute name="tag"/>
|
411
|
+
</optional>
|
412
|
+
<optional>
|
413
|
+
<attribute name="multilingual-rendering">
|
414
|
+
<ref name="MultilingualRenderingType"/>
|
415
|
+
</attribute>
|
416
|
+
</optional>
|
355
417
|
<optional>
|
356
418
|
<ref name="source"/>
|
357
419
|
</optional>
|
@@ -410,6 +472,14 @@
|
|
410
472
|
<optional>
|
411
473
|
<attribute name="lang"/>
|
412
474
|
</optional>
|
475
|
+
<optional>
|
476
|
+
<attribute name="tag"/>
|
477
|
+
</optional>
|
478
|
+
<optional>
|
479
|
+
<attribute name="multilingual-rendering">
|
480
|
+
<ref name="MultilingualRenderingType"/>
|
481
|
+
</attribute>
|
482
|
+
</optional>
|
413
483
|
<optional>
|
414
484
|
<ref name="tname"/>
|
415
485
|
</optional>
|
@@ -458,6 +528,14 @@
|
|
458
528
|
<data type="boolean"/>
|
459
529
|
</attribute>
|
460
530
|
</optional>
|
531
|
+
<optional>
|
532
|
+
<attribute name="tag"/>
|
533
|
+
</optional>
|
534
|
+
<optional>
|
535
|
+
<attribute name="multilingual-rendering">
|
536
|
+
<ref name="MultilingualRenderingType"/>
|
537
|
+
</attribute>
|
538
|
+
</optional>
|
461
539
|
<ref name="stem"/>
|
462
540
|
<optional>
|
463
541
|
<ref name="dl"/>
|
@@ -486,6 +564,14 @@
|
|
486
564
|
<data type="boolean"/>
|
487
565
|
</attribute>
|
488
566
|
</optional>
|
567
|
+
<optional>
|
568
|
+
<attribute name="tag"/>
|
569
|
+
</optional>
|
570
|
+
<optional>
|
571
|
+
<attribute name="multilingual-rendering">
|
572
|
+
<ref name="MultilingualRenderingType"/>
|
573
|
+
</attribute>
|
574
|
+
</optional>
|
489
575
|
<zeroOrMore>
|
490
576
|
<ref name="TextElement"/>
|
491
577
|
</zeroOrMore>
|
@@ -513,6 +599,14 @@
|
|
513
599
|
<data type="boolean"/>
|
514
600
|
</attribute>
|
515
601
|
</optional>
|
602
|
+
<optional>
|
603
|
+
<attribute name="tag"/>
|
604
|
+
</optional>
|
605
|
+
<optional>
|
606
|
+
<attribute name="multilingual-rendering">
|
607
|
+
<ref name="MultilingualRenderingType"/>
|
608
|
+
</attribute>
|
609
|
+
</optional>
|
516
610
|
<zeroOrMore>
|
517
611
|
<choice>
|
518
612
|
<ref name="TextElement"/>
|
@@ -544,6 +638,14 @@
|
|
544
638
|
<data type="boolean"/>
|
545
639
|
</attribute>
|
546
640
|
</optional>
|
641
|
+
<optional>
|
642
|
+
<attribute name="tag"/>
|
643
|
+
</optional>
|
644
|
+
<optional>
|
645
|
+
<attribute name="multilingual-rendering">
|
646
|
+
<ref name="MultilingualRenderingType"/>
|
647
|
+
</attribute>
|
648
|
+
</optional>
|
547
649
|
<optional>
|
548
650
|
<ref name="quote-source"/>
|
549
651
|
</optional>
|
@@ -653,6 +755,14 @@
|
|
653
755
|
<optional>
|
654
756
|
<attribute name="type"/>
|
655
757
|
</optional>
|
758
|
+
<optional>
|
759
|
+
<attribute name="tag"/>
|
760
|
+
</optional>
|
761
|
+
<optional>
|
762
|
+
<attribute name="multilingual-rendering">
|
763
|
+
<ref name="MultilingualRenderingType"/>
|
764
|
+
</attribute>
|
765
|
+
</optional>
|
656
766
|
<oneOrMore>
|
657
767
|
<choice>
|
658
768
|
<ref name="paragraph"/>
|
@@ -910,6 +1020,14 @@
|
|
910
1020
|
</define>
|
911
1021
|
</include>
|
912
1022
|
<!-- end overrides -->
|
1023
|
+
<define name="MultilingualRenderingType">
|
1024
|
+
<choice>
|
1025
|
+
<value>common</value>
|
1026
|
+
<value>all-columns</value>
|
1027
|
+
<value>parallel</value>
|
1028
|
+
<value>tag</value>
|
1029
|
+
</choice>
|
1030
|
+
</define>
|
913
1031
|
<define name="docsubtype">
|
914
1032
|
<element name="subdoctype">
|
915
1033
|
<ref name="DocumentSubtype"/>
|
@@ -976,6 +1094,16 @@
|
|
976
1094
|
<data type="boolean"/>
|
977
1095
|
</attribute>
|
978
1096
|
</optional>
|
1097
|
+
<optional>
|
1098
|
+
<attribute name="linkmention">
|
1099
|
+
<data type="boolean"/>
|
1100
|
+
</attribute>
|
1101
|
+
</optional>
|
1102
|
+
<optional>
|
1103
|
+
<attribute name="linkref">
|
1104
|
+
<data type="boolean"/>
|
1105
|
+
</attribute>
|
1106
|
+
</optional>
|
979
1107
|
<optional>
|
980
1108
|
<element name="refterm">
|
981
1109
|
<zeroOrMore>
|
@@ -1012,6 +1140,7 @@
|
|
1012
1140
|
<ref name="svgmap"/>
|
1013
1141
|
<ref name="inputform"/>
|
1014
1142
|
<ref name="toc"/>
|
1143
|
+
<ref name="passthrough"/>
|
1015
1144
|
</choice>
|
1016
1145
|
</define>
|
1017
1146
|
<define name="toc">
|
@@ -1019,6 +1148,14 @@
|
|
1019
1148
|
<ref name="ul"/>
|
1020
1149
|
</element>
|
1021
1150
|
</define>
|
1151
|
+
<define name="passthrough">
|
1152
|
+
<element name="passthrough">
|
1153
|
+
<optional>
|
1154
|
+
<attribute name="formats"/>
|
1155
|
+
</optional>
|
1156
|
+
<text/>
|
1157
|
+
</element>
|
1158
|
+
</define>
|
1022
1159
|
<define name="inputform">
|
1023
1160
|
<element name="form">
|
1024
1161
|
<attribute name="id">
|
@@ -1029,6 +1166,14 @@
|
|
1029
1166
|
<optional>
|
1030
1167
|
<attribute name="class"/>
|
1031
1168
|
</optional>
|
1169
|
+
<optional>
|
1170
|
+
<attribute name="tag"/>
|
1171
|
+
</optional>
|
1172
|
+
<optional>
|
1173
|
+
<attribute name="multilingual-rendering">
|
1174
|
+
<ref name="MultilingualRenderingType"/>
|
1175
|
+
</attribute>
|
1176
|
+
</optional>
|
1032
1177
|
<zeroOrMore>
|
1033
1178
|
<choice>
|
1034
1179
|
<ref name="TextElement"/>
|
@@ -1686,7 +1831,9 @@
|
|
1686
1831
|
<zeroOrMore>
|
1687
1832
|
<ref name="termgrammar"/>
|
1688
1833
|
</zeroOrMore>
|
1689
|
-
<
|
1834
|
+
<oneOrMore>
|
1835
|
+
<ref name="termdefinition"/>
|
1836
|
+
</oneOrMore>
|
1690
1837
|
<zeroOrMore>
|
1691
1838
|
<ref name="termnote"/>
|
1692
1839
|
</zeroOrMore>
|
@@ -1749,7 +1896,7 @@
|
|
1749
1896
|
</oneOrMore>
|
1750
1897
|
</element>
|
1751
1898
|
</define>
|
1752
|
-
<define name="
|
1899
|
+
<define name="termdefinition">
|
1753
1900
|
<element name="definition">
|
1754
1901
|
<oneOrMore>
|
1755
1902
|
<choice>
|
@@ -1758,6 +1905,9 @@
|
|
1758
1905
|
<ref name="formula"/>
|
1759
1906
|
</choice>
|
1760
1907
|
</oneOrMore>
|
1908
|
+
<zeroOrMore>
|
1909
|
+
<ref name="termsource"/>
|
1910
|
+
</zeroOrMore>
|
1761
1911
|
</element>
|
1762
1912
|
</define>
|
1763
1913
|
<define name="termnote">
|
@@ -1786,6 +1936,14 @@
|
|
1786
1936
|
<data type="boolean"/>
|
1787
1937
|
</attribute>
|
1788
1938
|
</optional>
|
1939
|
+
<optional>
|
1940
|
+
<attribute name="tag"/>
|
1941
|
+
</optional>
|
1942
|
+
<optional>
|
1943
|
+
<attribute name="multilingual-rendering">
|
1944
|
+
<ref name="MultilingualRenderingType"/>
|
1945
|
+
</attribute>
|
1946
|
+
</optional>
|
1789
1947
|
<oneOrMore>
|
1790
1948
|
<choice>
|
1791
1949
|
<ref name="paragraph"/>
|
@@ -1802,6 +1960,24 @@
|
|
1802
1960
|
<attribute name="id">
|
1803
1961
|
<data type="ID"/>
|
1804
1962
|
</attribute>
|
1963
|
+
<optional>
|
1964
|
+
<attribute name="keep-with-next">
|
1965
|
+
<data type="boolean"/>
|
1966
|
+
</attribute>
|
1967
|
+
</optional>
|
1968
|
+
<optional>
|
1969
|
+
<attribute name="keep-lines-together">
|
1970
|
+
<data type="boolean"/>
|
1971
|
+
</attribute>
|
1972
|
+
</optional>
|
1973
|
+
<optional>
|
1974
|
+
<attribute name="tag"/>
|
1975
|
+
</optional>
|
1976
|
+
<optional>
|
1977
|
+
<attribute name="multilingual-rendering">
|
1978
|
+
<ref name="MultilingualRenderingType"/>
|
1979
|
+
</attribute>
|
1980
|
+
</optional>
|
1805
1981
|
<ref name="paragraph"/>
|
1806
1982
|
</element>
|
1807
1983
|
</define>
|
@@ -1969,6 +2145,14 @@
|
|
1969
2145
|
<optional>
|
1970
2146
|
<attribute name="title"/>
|
1971
2147
|
</optional>
|
2148
|
+
<optional>
|
2149
|
+
<attribute name="tag"/>
|
2150
|
+
</optional>
|
2151
|
+
<optional>
|
2152
|
+
<attribute name="multilingual-rendering">
|
2153
|
+
<ref name="MultilingualRenderingType"/>
|
2154
|
+
</attribute>
|
2155
|
+
</optional>
|
1972
2156
|
<optional>
|
1973
2157
|
<element name="location">
|
1974
2158
|
<zeroOrMore>
|
@@ -2028,6 +2212,14 @@
|
|
2028
2212
|
</define>
|
2029
2213
|
<define name="imagemap">
|
2030
2214
|
<element name="imagemap">
|
2215
|
+
<optional>
|
2216
|
+
<attribute name="tag"/>
|
2217
|
+
</optional>
|
2218
|
+
<optional>
|
2219
|
+
<attribute name="multilingual-rendering">
|
2220
|
+
<ref name="MultilingualRenderingType"/>
|
2221
|
+
</attribute>
|
2222
|
+
</optional>
|
2031
2223
|
<ref name="figure"/>
|
2032
2224
|
<zeroOrMore>
|
2033
2225
|
<element name="area">
|
@@ -2072,6 +2264,14 @@
|
|
2072
2264
|
</define>
|
2073
2265
|
<define name="svgmap">
|
2074
2266
|
<element name="svgmap">
|
2267
|
+
<optional>
|
2268
|
+
<attribute name="tag"/>
|
2269
|
+
</optional>
|
2270
|
+
<optional>
|
2271
|
+
<attribute name="multilingual-rendering">
|
2272
|
+
<ref name="MultilingualRenderingType"/>
|
2273
|
+
</attribute>
|
2274
|
+
</optional>
|
2075
2275
|
<ref name="figure"/>
|
2076
2276
|
<zeroOrMore>
|
2077
2277
|
<element name="target">
|
@@ -58,6 +58,14 @@
|
|
58
58
|
<optional>
|
59
59
|
<attribute name="type"/>
|
60
60
|
</optional>
|
61
|
+
<optional>
|
62
|
+
<attribute name="tag"/>
|
63
|
+
</optional>
|
64
|
+
<optional>
|
65
|
+
<attribute name="multilingual-rendering">
|
66
|
+
<ref name="MultilingualRenderingType"/>
|
67
|
+
</attribute>
|
68
|
+
</optional>
|
61
69
|
<optional>
|
62
70
|
<ref name="reqtitle"/>
|
63
71
|
</optional>
|
@@ -175,6 +183,14 @@
|
|
175
183
|
<data type="boolean"/>
|
176
184
|
</attribute>
|
177
185
|
</optional>
|
186
|
+
<optional>
|
187
|
+
<attribute name="tag"/>
|
188
|
+
</optional>
|
189
|
+
<optional>
|
190
|
+
<attribute name="multilingual-rendering">
|
191
|
+
<ref name="MultilingualRenderingType"/>
|
192
|
+
</attribute>
|
193
|
+
</optional>
|
178
194
|
<oneOrMore>
|
179
195
|
<ref name="BasicBlock"/>
|
180
196
|
</oneOrMore>
|
@@ -1,7 +1,13 @@
|
|
1
1
|
module Asciidoctor
|
2
2
|
module Ogc
|
3
3
|
class Converter < Standoc::Converter
|
4
|
-
def
|
4
|
+
def validate(doc)
|
5
|
+
content_validate(doc)
|
6
|
+
schema_validate(formattedstr_strip(doc.dup),
|
7
|
+
File.join(File.dirname(__FILE__), "ogc.rng"))
|
8
|
+
end
|
9
|
+
|
10
|
+
def title_validate(_root)
|
5
11
|
nil
|
6
12
|
end
|
7
13
|
|
@@ -18,8 +24,9 @@ module Asciidoctor
|
|
18
24
|
def stage_validate(xmldoc)
|
19
25
|
stage = xmldoc&.at("//bibdata/status/stage")&.text
|
20
26
|
%w(swg-draft oab-review public-rfc tc-vote
|
21
|
-
|
22
|
-
|
27
|
+
approved deprecated retired).include? stage or
|
28
|
+
@log.add("Document Attributes", nil,
|
29
|
+
"#{stage} is not a recognised status")
|
23
30
|
end
|
24
31
|
|
25
32
|
def version_validate(xmldoc)
|
@@ -27,10 +34,12 @@ module Asciidoctor
|
|
27
34
|
doctype = xmldoc&.at("//bibdata/ext/doctype")&.text
|
28
35
|
if %w(engineering-report discussion-paper).include? doctype
|
29
36
|
version.nil? or
|
30
|
-
|
37
|
+
@log.add("Document Attributes", nil,
|
38
|
+
"Version not permitted for #{doctype}")
|
31
39
|
else
|
32
40
|
version.nil? and
|
33
|
-
|
41
|
+
@log.add("Document Attributes", nil,
|
42
|
+
"Version required for #{doctype}")
|
34
43
|
end
|
35
44
|
end
|
36
45
|
|
@@ -41,7 +50,7 @@ module Asciidoctor
|
|
41
50
|
end
|
42
51
|
|
43
52
|
STANDARDTYPE = %w{standard standard-with-suite abstract-specification
|
44
|
-
|
53
|
+
community-standard profile}.freeze
|
45
54
|
|
46
55
|
# spec of permissible section sequence
|
47
56
|
# we skip normative references, it goes to end of list
|
@@ -49,24 +58,25 @@ module Asciidoctor
|
|
49
58
|
[
|
50
59
|
{
|
51
60
|
msg: "Prefatory material must be followed by (clause) Scope",
|
52
|
-
val: ["./self::clause[@type = 'scope']"
|
61
|
+
val: ["./self::clause[@type = 'scope']"],
|
53
62
|
},
|
54
63
|
{
|
55
64
|
msg: "Scope must be followed by Conformance",
|
56
|
-
val: ["./self::clause[@type = 'conformance']"
|
65
|
+
val: ["./self::clause[@type = 'conformance']"],
|
57
66
|
},
|
58
67
|
{
|
59
68
|
msg: "Normative References must be followed by "\
|
60
|
-
|
61
|
-
val: ["./self::terms | .//terms"]
|
69
|
+
"Terms and Definitions",
|
70
|
+
val: ["./self::terms | .//terms"],
|
62
71
|
},
|
63
|
-
|
72
|
+
].freeze
|
64
73
|
|
65
74
|
def seqcheck(names, msg, accepted)
|
66
75
|
n = names.shift
|
67
76
|
return [] if n.nil?
|
77
|
+
|
68
78
|
test = accepted.map { |a| n.at(a) }
|
69
|
-
if test.all?
|
79
|
+
if test.all?(&:nil?)
|
70
80
|
@log.add("Style", nil, msg)
|
71
81
|
end
|
72
82
|
names
|
@@ -74,7 +84,9 @@ module Asciidoctor
|
|
74
84
|
|
75
85
|
def sections_sequence_validate(root)
|
76
86
|
return unless STANDARDTYPE.include?(
|
77
|
-
root&.at("//bibdata/ext/doctype")&.text
|
87
|
+
root&.at("//bibdata/ext/doctype")&.text,
|
88
|
+
)
|
89
|
+
|
78
90
|
names = root.xpath("//sections/* | //bibliography/*")
|
79
91
|
names = seqcheck(names, SEQ[0][:msg], SEQ[0][:val])
|
80
92
|
names = seqcheck(names, SEQ[1][:msg], SEQ[1][:val])
|
@@ -84,25 +96,28 @@ module Asciidoctor
|
|
84
96
|
n = names.shift
|
85
97
|
end
|
86
98
|
if n.nil? || n.name != "clause"
|
87
|
-
@log.add("Style", nil,
|
99
|
+
@log.add("Style", nil,
|
100
|
+
"Document must contain at least one clause")
|
88
101
|
return
|
89
102
|
end
|
90
103
|
root.at("//references | //clause[descendant::references]"\
|
91
104
|
"[not(parent::clause)]") or
|
92
|
-
|
105
|
+
@log.add("Style", nil, "Normative References are mandatory")
|
93
106
|
end
|
94
107
|
|
95
108
|
def preface_sequence_validate(root)
|
96
|
-
root.at("//preface/abstract") or @log.add("Style", nil,
|
109
|
+
root.at("//preface/abstract") or @log.add("Style", nil,
|
110
|
+
"Abstract is missing!")
|
97
111
|
root.at("//bibdata/keyword | //bibdata/ext/keyword") or
|
98
112
|
@log.add("Style", nil, "Keywords are missing!")
|
99
|
-
root.at("//foreword") or @log.add("Style", nil,
|
113
|
+
root.at("//foreword") or @log.add("Style", nil,
|
114
|
+
"Preface is missing!")
|
100
115
|
root.at("//bibdata/contributor[role/@type = 'author']/organization/"\
|
101
116
|
"name") or
|
102
|
-
|
103
|
-
root.at("//submitters") or @log.add("Style", nil,
|
117
|
+
@log.add("Style", nil, "Submitting Organizations is missing!")
|
118
|
+
root.at("//submitters") or @log.add("Style", nil,
|
119
|
+
"Submitters is missing!")
|
104
120
|
end
|
105
121
|
end
|
106
122
|
end
|
107
123
|
end
|
108
|
-
|
@@ -15,7 +15,7 @@ module IsoDoc
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def hi_parse(node, out)
|
18
|
-
out.span **{class: "hi"} do |e|
|
18
|
+
out.span **{ class: "hi" } do |e|
|
19
19
|
node.children.each { |n| parse(n, e) }
|
20
20
|
end
|
21
21
|
end
|
@@ -27,23 +27,58 @@ module IsoDoc
|
|
27
27
|
|
28
28
|
def term_cleanup(docxml)
|
29
29
|
docxml.xpath("//p[@class = 'Terms']").each do |d|
|
30
|
-
|
31
|
-
|
32
|
-
h2.add_child(d.remove)
|
30
|
+
term_cleanup_merge_termnum(d)
|
31
|
+
term_cleanup_merge_admitted(d)
|
33
32
|
end
|
34
33
|
docxml
|
35
34
|
end
|
36
35
|
|
36
|
+
def term_cleanup_merge_termnum(term)
|
37
|
+
h2 = term.at("./preceding-sibling::*[@class = 'TermNum'][1]")
|
38
|
+
term["class"] = h2["class"]
|
39
|
+
term["id"] = h2["id"]
|
40
|
+
term.children.first.previous = " "
|
41
|
+
term.children.first.previous = h2.remove.children
|
42
|
+
end
|
43
|
+
|
44
|
+
def term_cleanup_merge_admitted(term)
|
45
|
+
term.xpath("./following-sibling::p[@class = 'AltTerms' or "\
|
46
|
+
"@class = 'DeprecatedTerms']").each do |a|
|
47
|
+
term << " "
|
48
|
+
term << a.children
|
49
|
+
a.remove
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def deprecated_term_parse(node, out)
|
54
|
+
out.p **{ class: "DeprecatedTerms" } do |p|
|
55
|
+
node.children.each { |c| parse(c, p) }
|
56
|
+
p << " "
|
57
|
+
p.span **{ class: "AdmittedLabel" } do |s|
|
58
|
+
s << l10n(@i18n.deprecated)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def admitted_term_parse(node, out)
|
64
|
+
out.p **{ class: "AltTerms" } do |p|
|
65
|
+
node.children.each { |c| parse(c, p) }
|
66
|
+
p << " "
|
67
|
+
p.span **{ class: "AdmittedLabel" } do |s|
|
68
|
+
s << l10n(@i18n.admitted)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
37
73
|
def example_parse(node, out)
|
38
74
|
name = node.at(ns("./name"))
|
39
|
-
example_name_parse(node, out, name) #if name
|
75
|
+
example_name_parse(node, out, name) # if name
|
40
76
|
super
|
41
77
|
end
|
42
78
|
|
43
|
-
def example_label(node, div, name)
|
44
|
-
end
|
79
|
+
def example_label(node, div, name); end
|
45
80
|
|
46
|
-
def example_name_parse(
|
81
|
+
def example_name_parse(_node, div, name)
|
47
82
|
div.p **{ class: "SourceTitle", style: "text-align:center;" } do |p|
|
48
83
|
name&.children&.each { |n| parse(n, p) }
|
49
84
|
end
|
@@ -56,6 +91,7 @@ module IsoDoc
|
|
56
91
|
|
57
92
|
def is_clause?(name)
|
58
93
|
return true if name == "submitters"
|
94
|
+
|
59
95
|
super
|
60
96
|
end
|
61
97
|
|
@@ -84,8 +120,8 @@ module IsoDoc
|
|
84
120
|
def make_tr_attr(td, row, totalrows, header)
|
85
121
|
ret = super
|
86
122
|
if td.at("./ancestor::xmlns:table[@class = 'recommendation'] | "\
|
87
|
-
|
88
|
-
|
123
|
+
"./ancestor::xmlns:table[@class = 'requirement'] | "\
|
124
|
+
"./ancestor::xmlns:table[@class = 'permission']")
|
89
125
|
ret[:style] = "vertical-align:top;"
|
90
126
|
ret[:class] = "recommend"
|
91
127
|
end
|
@@ -94,6 +130,7 @@ module IsoDoc
|
|
94
130
|
|
95
131
|
def para_class(node)
|
96
132
|
return node["class"] if node["class"]
|
133
|
+
|
97
134
|
super
|
98
135
|
end
|
99
136
|
end
|