metanorma-generic 1.5.1 → 1.7.0
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/lib/asciidoctor/generic/basicdoc.rng +23 -0
- data/lib/asciidoctor/generic/converter.rb +44 -33
- data/lib/asciidoctor/generic/generic.rng +7 -0
- data/lib/asciidoctor/generic/isodoc.rng +137 -21
- data/lib/isodoc/generic/base_convert.rb +6 -30
- data/lib/isodoc/generic/html/generic.scss +18 -4
- data/lib/isodoc/generic/html_convert.rb +21 -10
- data/lib/isodoc/generic/i18n.rb +26 -0
- data/lib/isodoc/generic/init.rb +30 -0
- data/lib/isodoc/generic/metadata.rb +11 -2
- data/lib/isodoc/generic/pdf_convert.rb +2 -0
- data/lib/isodoc/generic/presentation_xml_convert.rb +11 -1
- data/lib/isodoc/generic/utils.rb +21 -0
- data/lib/isodoc/generic/word_convert.rb +21 -10
- data/lib/metanorma/generic.rb +3 -0
- data/lib/metanorma/generic/version.rb +1 -1
- data/metanorma-generic.gemspec +3 -2
- data/metanorma.yml.example +5 -0
- metadata +23 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dbd87f79baeb66107643bd3c6e9377853f72f3b19d17615aced5737609ea31e4
|
4
|
+
data.tar.gz: a1e014a6a7076b4f39c37bcb35d67fecb221ff0494ba38ce88482affb8aef854
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b26374f517b2c486fd6780a66f05357689990026dab52e88c8f8b9a1aec881653a4f23f915bf5e6944c83ae8fe943046ae42047382c3968a5b1cca11204f5a53
|
7
|
+
data.tar.gz: 35502f72cf8aa2f3f19848d4fe9326994f8af544531e71da3dabf61215329c164404cfd5d7fab6e72da66f43ae851272ceaf6a1d9fbf6a72fdf15552d6dcd4e6
|
@@ -402,6 +402,16 @@
|
|
402
402
|
</choice>
|
403
403
|
</attribute>
|
404
404
|
</optional>
|
405
|
+
<optional>
|
406
|
+
<attribute name="valign">
|
407
|
+
<choice>
|
408
|
+
<value>top</value>
|
409
|
+
<value>middle</value>
|
410
|
+
<value>bottom</value>
|
411
|
+
<value>baseline</value>
|
412
|
+
</choice>
|
413
|
+
</attribute>
|
414
|
+
</optional>
|
405
415
|
<choice>
|
406
416
|
<zeroOrMore>
|
407
417
|
<ref name="TextElement"/>
|
@@ -429,6 +439,16 @@
|
|
429
439
|
</choice>
|
430
440
|
</attribute>
|
431
441
|
</optional>
|
442
|
+
<optional>
|
443
|
+
<attribute name="valign">
|
444
|
+
<choice>
|
445
|
+
<value>top</value>
|
446
|
+
<value>middle</value>
|
447
|
+
<value>bottom</value>
|
448
|
+
<value>baseline</value>
|
449
|
+
</choice>
|
450
|
+
</attribute>
|
451
|
+
</optional>
|
432
452
|
<choice>
|
433
453
|
<zeroOrMore>
|
434
454
|
<ref name="TextElement"/>
|
@@ -998,6 +1018,9 @@
|
|
998
1018
|
<value>alphabet_upper</value>
|
999
1019
|
</choice>
|
1000
1020
|
</attribute>
|
1021
|
+
<optional>
|
1022
|
+
<attribute name="start"/>
|
1023
|
+
</optional>
|
1001
1024
|
<oneOrMore>
|
1002
1025
|
<ref name="li"/>
|
1003
1026
|
</oneOrMore>
|
@@ -24,28 +24,30 @@ module Asciidoctor
|
|
24
24
|
|
25
25
|
def baselocation(loc)
|
26
26
|
return nil if loc.nil?
|
27
|
-
File.expand_path(File.join(File.dirname(
|
27
|
+
File.expand_path(File.join(File.dirname(
|
28
|
+
self.class::_file || __FILE__), "..", "..", "..", loc))
|
28
29
|
end
|
29
30
|
|
30
|
-
def
|
31
|
-
|
32
|
-
c.role **{ type: "author" }
|
33
|
-
c.organization do |a|
|
34
|
-
a.name configuration.organization_name_long
|
35
|
-
end
|
36
|
-
end
|
37
|
-
personal_author(node, xml)
|
31
|
+
def default_publisher
|
32
|
+
configuration.organization_name_long
|
38
33
|
end
|
39
34
|
|
40
|
-
def
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
35
|
+
def org_abbrev
|
36
|
+
if !configuration.organization_name_long.empty? &&
|
37
|
+
!configuration.organization_name_short.empty? &&
|
38
|
+
configuration.organization_name_long !=
|
39
|
+
configuration.organization_name_short
|
40
|
+
{ configuration.organization_name_long =>
|
41
|
+
configuration.organization_name_short }
|
42
|
+
else
|
43
|
+
super
|
46
44
|
end
|
47
45
|
end
|
48
46
|
|
47
|
+
def relaton_relations
|
48
|
+
Array(configuration.relations) || []
|
49
|
+
end
|
50
|
+
|
49
51
|
def metadata_committee(node, xml)
|
50
52
|
return unless node.attr("committee")
|
51
53
|
xml.editorialgroup do |a|
|
@@ -85,18 +87,6 @@ module Asciidoctor
|
|
85
87
|
xml.docnumber { |i| i << node.attr("docnumber") }
|
86
88
|
end
|
87
89
|
|
88
|
-
def metadata_copyright(node, xml)
|
89
|
-
from = node.attr("copyright-year") || Date.today.year
|
90
|
-
xml.copyright do |c|
|
91
|
-
c.from from
|
92
|
-
c.owner do |owner|
|
93
|
-
owner.organization do |o|
|
94
|
-
o.name configuration.organization_name_long
|
95
|
-
end
|
96
|
-
end
|
97
|
-
end
|
98
|
-
end
|
99
|
-
|
100
90
|
def metadata_ext(node, ext)
|
101
91
|
super
|
102
92
|
Array(configuration.metadata_extensions).each do |e|
|
@@ -105,7 +95,7 @@ module Asciidoctor
|
|
105
95
|
end
|
106
96
|
|
107
97
|
def doctype(node)
|
108
|
-
d =
|
98
|
+
d = super
|
109
99
|
configuration.doctypes or return d == "article" ? "standard" : d
|
110
100
|
default = configuration.default_doctype || Array(configuration.doctypes).dig(0) ||
|
111
101
|
"standard"
|
@@ -143,10 +133,13 @@ module Asciidoctor
|
|
143
133
|
|
144
134
|
def outputs(node, ret)
|
145
135
|
File.open(@filename + ".xml", "w:UTF-8") { |f| f.write(ret) }
|
146
|
-
presentation_xml_converter(node)
|
147
|
-
html_converter(node)
|
148
|
-
|
149
|
-
|
136
|
+
presentation_xml_converter(node)&.convert(@filename + ".xml")
|
137
|
+
html_converter(node)&.convert(@filename + ".presentation.xml",
|
138
|
+
nil, false, "#{@filename}.html")
|
139
|
+
doc_converter(node)&.convert(@filename + ".presentation.xml",
|
140
|
+
nil, false, "#{@filename}.doc")
|
141
|
+
pdf_converter(node)&.convert(@filename + ".presentation.xml",
|
142
|
+
nil, false, "#{@filename}.pdf")
|
150
143
|
|
151
144
|
end
|
152
145
|
|
@@ -164,6 +157,7 @@ module Asciidoctor
|
|
164
157
|
|
165
158
|
def bibdata_validate(doc)
|
166
159
|
stage_validate(doc)
|
160
|
+
committee_validate(doc)
|
167
161
|
end
|
168
162
|
|
169
163
|
def stage_validate(xmldoc)
|
@@ -174,6 +168,15 @@ module Asciidoctor
|
|
174
168
|
@log.add("Document Attributes", nil, "#{stage} is not a recognised status")
|
175
169
|
end
|
176
170
|
|
171
|
+
def committee_validate(xmldoc)
|
172
|
+
committees = Array(configuration&.committees) || return
|
173
|
+
committees.empty? and return
|
174
|
+
xmldoc.xpath("//bibdata/ext/editorialgroup/committee").each do |c|
|
175
|
+
committees.include? c.text or
|
176
|
+
@log.add("Document Attributes", nil, "#{c.text} is not a recognised committee")
|
177
|
+
end
|
178
|
+
end
|
179
|
+
|
177
180
|
def sections_cleanup(x)
|
178
181
|
super
|
179
182
|
x.xpath("//*[@inline-header]").each do |h|
|
@@ -206,10 +209,18 @@ module Asciidoctor
|
|
206
209
|
def boilerplate_isodoc(xmldoc)
|
207
210
|
conv = super
|
208
211
|
Metanorma::Generic::Configuration::CONFIG_ATTRS.each do |a|
|
209
|
-
conv.
|
212
|
+
conv.i18n.set(a, configuration.send(a))
|
210
213
|
end
|
211
214
|
conv
|
212
215
|
end
|
216
|
+
|
217
|
+
def boilerplate_file(xmldoc)
|
218
|
+
f = configuration.boilerplate
|
219
|
+
f.nil? and return super
|
220
|
+
f.is_a? String and return baselocation(f)
|
221
|
+
f.is_a? Hash and f[@lang] and return baselocation(f[@lang])
|
222
|
+
super
|
223
|
+
end
|
213
224
|
end
|
214
225
|
end
|
215
226
|
end
|
@@ -59,6 +59,13 @@
|
|
59
59
|
</define>
|
60
60
|
<define name="generic-standard">
|
61
61
|
<element name="generic-standard">
|
62
|
+
<attribute name="version"/>
|
63
|
+
<attribute name="type">
|
64
|
+
<choice>
|
65
|
+
<value>semantic</value>
|
66
|
+
<value>presentation</value>
|
67
|
+
</choice>
|
68
|
+
</attribute>
|
62
69
|
<ref name="bibdata"/>
|
63
70
|
<zeroOrMore>
|
64
71
|
<ref name="termdocsource"/>
|
@@ -42,8 +42,11 @@
|
|
42
42
|
</define>
|
43
43
|
<define name="xref">
|
44
44
|
<element name="xref">
|
45
|
+
<!-- attribute target { xsd:IDREF }, -->
|
45
46
|
<attribute name="target">
|
46
|
-
<data type="
|
47
|
+
<data type="string">
|
48
|
+
<param name="pattern">\i\c*|\c+#\c+</param>
|
49
|
+
</data>
|
47
50
|
</attribute>
|
48
51
|
<optional>
|
49
52
|
<attribute name="type">
|
@@ -61,6 +64,11 @@
|
|
61
64
|
</choice>
|
62
65
|
</attribute>
|
63
66
|
</optional>
|
67
|
+
<optional>
|
68
|
+
<attribute name="droploc">
|
69
|
+
<data type="boolean"/>
|
70
|
+
</attribute>
|
71
|
+
</optional>
|
64
72
|
<text/>
|
65
73
|
</element>
|
66
74
|
</define>
|
@@ -578,6 +586,8 @@
|
|
578
586
|
<ref name="ol"/>
|
579
587
|
<ref name="dl"/>
|
580
588
|
<ref name="formula"/>
|
589
|
+
<ref name="quote"/>
|
590
|
+
<ref name="sourcecode"/>
|
581
591
|
</choice>
|
582
592
|
</oneOrMore>
|
583
593
|
</element>
|
@@ -661,6 +671,16 @@
|
|
661
671
|
</choice>
|
662
672
|
</attribute>
|
663
673
|
</optional>
|
674
|
+
<optional>
|
675
|
+
<attribute name="valign">
|
676
|
+
<choice>
|
677
|
+
<value>top</value>
|
678
|
+
<value>middle</value>
|
679
|
+
<value>bottom</value>
|
680
|
+
<value>baseline</value>
|
681
|
+
</choice>
|
682
|
+
</attribute>
|
683
|
+
</optional>
|
664
684
|
<choice>
|
665
685
|
<zeroOrMore>
|
666
686
|
<choice>
|
@@ -697,6 +717,16 @@
|
|
697
717
|
</choice>
|
698
718
|
</attribute>
|
699
719
|
</optional>
|
720
|
+
<optional>
|
721
|
+
<attribute name="valign">
|
722
|
+
<choice>
|
723
|
+
<value>top</value>
|
724
|
+
<value>middle</value>
|
725
|
+
<value>bottom</value>
|
726
|
+
<value>baseline</value>
|
727
|
+
</choice>
|
728
|
+
</attribute>
|
729
|
+
</optional>
|
700
730
|
<choice>
|
701
731
|
<zeroOrMore>
|
702
732
|
<choice>
|
@@ -834,6 +864,13 @@
|
|
834
864
|
</define>
|
835
865
|
<define name="standard-document">
|
836
866
|
<element name="standard-document">
|
867
|
+
<attribute name="version"/>
|
868
|
+
<attribute name="type">
|
869
|
+
<choice>
|
870
|
+
<value>semantic</value>
|
871
|
+
<value>presentation</value>
|
872
|
+
</choice>
|
873
|
+
</attribute>
|
837
874
|
<ref name="bibdata"/>
|
838
875
|
<optional>
|
839
876
|
<ref name="boilerplate"/>
|
@@ -855,7 +892,7 @@
|
|
855
892
|
<oneOrMore>
|
856
893
|
<choice>
|
857
894
|
<ref name="content"/>
|
858
|
-
<ref name="
|
895
|
+
<ref name="abstract"/>
|
859
896
|
<ref name="foreword"/>
|
860
897
|
<ref name="introduction"/>
|
861
898
|
<ref name="acknowledgements"/>
|
@@ -922,6 +959,9 @@
|
|
922
959
|
<optional>
|
923
960
|
<attribute name="script"/>
|
924
961
|
</optional>
|
962
|
+
<optional>
|
963
|
+
<attribute name="type"/>
|
964
|
+
</optional>
|
925
965
|
<optional>
|
926
966
|
<attribute name="obligation">
|
927
967
|
<choice>
|
@@ -961,9 +1001,6 @@
|
|
961
1001
|
</define>
|
962
1002
|
<define name="content-subsection">
|
963
1003
|
<element name="clause">
|
964
|
-
<optional>
|
965
|
-
<attribute name="type"/>
|
966
|
-
</optional>
|
967
1004
|
<ref name="Content-Section"/>
|
968
1005
|
</element>
|
969
1006
|
</define>
|
@@ -992,6 +1029,9 @@
|
|
992
1029
|
</choice>
|
993
1030
|
</attribute>
|
994
1031
|
</optional>
|
1032
|
+
<optional>
|
1033
|
+
<attribute name="type"/>
|
1034
|
+
</optional>
|
995
1035
|
<optional>
|
996
1036
|
<ref name="section-title"/>
|
997
1037
|
</optional>
|
@@ -1011,9 +1051,6 @@
|
|
1011
1051
|
</define>
|
1012
1052
|
<define name="clause">
|
1013
1053
|
<element name="clause">
|
1014
|
-
<optional>
|
1015
|
-
<attribute name="type"/>
|
1016
|
-
</optional>
|
1017
1054
|
<ref name="Clause-Section"/>
|
1018
1055
|
</element>
|
1019
1056
|
</define>
|
@@ -1042,18 +1079,24 @@
|
|
1042
1079
|
</choice>
|
1043
1080
|
</attribute>
|
1044
1081
|
</optional>
|
1082
|
+
<optional>
|
1083
|
+
<attribute name="type"/>
|
1084
|
+
</optional>
|
1045
1085
|
<optional>
|
1046
1086
|
<ref name="section-title"/>
|
1047
1087
|
</optional>
|
1048
1088
|
<group>
|
1049
|
-
<
|
1050
|
-
<
|
1051
|
-
<
|
1052
|
-
|
1053
|
-
|
1054
|
-
<
|
1055
|
-
|
1056
|
-
|
1089
|
+
<choice>
|
1090
|
+
<group>
|
1091
|
+
<zeroOrMore>
|
1092
|
+
<ref name="BasicBlock"/>
|
1093
|
+
</zeroOrMore>
|
1094
|
+
<zeroOrMore>
|
1095
|
+
<ref name="note"/>
|
1096
|
+
</zeroOrMore>
|
1097
|
+
</group>
|
1098
|
+
<ref name="amend"/>
|
1099
|
+
</choice>
|
1057
1100
|
<zeroOrMore>
|
1058
1101
|
<choice>
|
1059
1102
|
<ref name="clause-subsection"/>
|
@@ -1180,6 +1223,9 @@
|
|
1180
1223
|
<optional>
|
1181
1224
|
<attribute name="script"/>
|
1182
1225
|
</optional>
|
1226
|
+
<optional>
|
1227
|
+
<attribute name="type"/>
|
1228
|
+
</optional>
|
1183
1229
|
<optional>
|
1184
1230
|
<attribute name="obligation">
|
1185
1231
|
<choice>
|
@@ -1447,11 +1493,6 @@
|
|
1447
1493
|
</optional>
|
1448
1494
|
</element>
|
1449
1495
|
</define>
|
1450
|
-
<define name="preface_abstract">
|
1451
|
-
<element name="abstract">
|
1452
|
-
<ref name="Basic-Section"/>
|
1453
|
-
</element>
|
1454
|
-
</define>
|
1455
1496
|
<define name="term-clause">
|
1456
1497
|
<element name="clause">
|
1457
1498
|
<optional>
|
@@ -1501,4 +1542,79 @@
|
|
1501
1542
|
<ref name="CitationType"/>
|
1502
1543
|
</element>
|
1503
1544
|
</define>
|
1545
|
+
<define name="amend">
|
1546
|
+
<element name="amend">
|
1547
|
+
<optional>
|
1548
|
+
<attribute name="id">
|
1549
|
+
<data type="ID"/>
|
1550
|
+
</attribute>
|
1551
|
+
</optional>
|
1552
|
+
<attribute name="change">
|
1553
|
+
<choice>
|
1554
|
+
<value>add</value>
|
1555
|
+
<value>modify</value>
|
1556
|
+
<value>delete</value>
|
1557
|
+
</choice>
|
1558
|
+
</attribute>
|
1559
|
+
<optional>
|
1560
|
+
<attribute name="path"/>
|
1561
|
+
</optional>
|
1562
|
+
<optional>
|
1563
|
+
<attribute name="path_end"/>
|
1564
|
+
</optional>
|
1565
|
+
<optional>
|
1566
|
+
<attribute name="title"/>
|
1567
|
+
</optional>
|
1568
|
+
<optional>
|
1569
|
+
<element name="location">
|
1570
|
+
<zeroOrMore>
|
1571
|
+
<ref name="locality"/>
|
1572
|
+
</zeroOrMore>
|
1573
|
+
</element>
|
1574
|
+
</optional>
|
1575
|
+
<zeroOrMore>
|
1576
|
+
<ref name="autonumber"/>
|
1577
|
+
</zeroOrMore>
|
1578
|
+
<optional>
|
1579
|
+
<element name="description">
|
1580
|
+
<zeroOrMore>
|
1581
|
+
<ref name="BasicBlock"/>
|
1582
|
+
</zeroOrMore>
|
1583
|
+
</element>
|
1584
|
+
</optional>
|
1585
|
+
<optional>
|
1586
|
+
<element name="newcontent">
|
1587
|
+
<zeroOrMore>
|
1588
|
+
<ref name="BasicBlock"/>
|
1589
|
+
</zeroOrMore>
|
1590
|
+
</element>
|
1591
|
+
</optional>
|
1592
|
+
<optional>
|
1593
|
+
<element name="description">
|
1594
|
+
<zeroOrMore>
|
1595
|
+
<ref name="BasicBlock"/>
|
1596
|
+
</zeroOrMore>
|
1597
|
+
</element>
|
1598
|
+
</optional>
|
1599
|
+
</element>
|
1600
|
+
</define>
|
1601
|
+
<define name="autonumber">
|
1602
|
+
<element name="autonumber">
|
1603
|
+
<attribute name="type">
|
1604
|
+
<choice>
|
1605
|
+
<value>requirement</value>
|
1606
|
+
<value>recommendation</value>
|
1607
|
+
<value>permission</value>
|
1608
|
+
<value>table</value>
|
1609
|
+
<value>figure</value>
|
1610
|
+
<value>admonition</value>
|
1611
|
+
<value>formula</value>
|
1612
|
+
<value>sourcecode</value>
|
1613
|
+
<value>example</value>
|
1614
|
+
<value>note</value>
|
1615
|
+
</choice>
|
1616
|
+
</attribute>
|
1617
|
+
<text/>
|
1618
|
+
</element>
|
1619
|
+
</define>
|
1504
1620
|
</grammar>
|
@@ -1,41 +1,16 @@
|
|
1
1
|
require "isodoc"
|
2
|
-
require_relative "metadata"
|
3
|
-
require_relative "xref"
|
4
2
|
require "fileutils"
|
5
3
|
|
6
4
|
module IsoDoc
|
7
5
|
module Generic
|
8
6
|
module BaseConvert
|
9
|
-
|
10
|
-
@meta = Metadata.new(lang, script, labels)
|
11
|
-
end
|
12
|
-
|
13
|
-
def xref_init(lang, script, klass, labels, options)
|
14
|
-
@xrefs = Xref.new(lang, script, klass, labels, options)
|
15
|
-
end
|
16
|
-
|
7
|
+
=begin
|
17
8
|
def baselocation(loc)
|
18
9
|
return nil if loc.nil?
|
19
|
-
File.expand_path(File.join(
|
20
|
-
|
21
|
-
|
22
|
-
def annex_name(annex, name, div)
|
23
|
-
div.h1 **{ class: "Annex" } do |t|
|
24
|
-
t << "#{@xrefs.anchor(annex['id'], :label)} "
|
25
|
-
t.br
|
26
|
-
t.b do |b|
|
27
|
-
name&.children&.each { |c2| parse(c2, b) }
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
def i18n_init(lang, script)
|
33
|
-
super
|
34
|
-
end
|
35
|
-
|
36
|
-
def fileloc(loc)
|
37
|
-
File.join(File.dirname(__FILE__), loc)
|
10
|
+
File.expand_path(File.join(
|
11
|
+
File.dirname(self.class::_file || __FILE__), "..", "..", "..", loc))
|
38
12
|
end
|
13
|
+
=end
|
39
14
|
|
40
15
|
def cleanup(docxml)
|
41
16
|
super
|
@@ -52,7 +27,8 @@ module IsoDoc
|
|
52
27
|
end
|
53
28
|
|
54
29
|
def make_body(xml, docxml)
|
55
|
-
body_attr = { lang: "EN-US", link: "blue", vlink: "#954F72",
|
30
|
+
body_attr = { lang: "EN-US", link: "blue", vlink: "#954F72",
|
31
|
+
"xml:lang": "EN-US", class: "container" }
|
56
32
|
xml.body **body_attr do |body|
|
57
33
|
make_body1(body, docxml)
|
58
34
|
make_body2(body, docxml)
|
@@ -636,7 +636,7 @@ div.WordSection2
|
|
636
636
|
|
637
637
|
div.WordSection3
|
638
638
|
{page:WordSection3;}
|
639
|
-
table.MsoISOTable
|
639
|
+
table.MsoISOTable, table.MsoISOTableBig
|
640
640
|
{mso-style-name:"Table ISO";
|
641
641
|
mso-tstyle-rowband-size:0;
|
642
642
|
mso-tstyle-colband-size:0;
|
@@ -656,15 +656,15 @@ table.MsoISOTable
|
|
656
656
|
mso-border-insidev:.75pt solid windowtext;
|
657
657
|
font-size:10.0pt;
|
658
658
|
font-family:$bodyfont;}
|
659
|
-
table.MsoISOTable th
|
659
|
+
table.MsoISOTable th, table.MsoISOTableBig th
|
660
660
|
{border:solid windowtext 1pt;
|
661
661
|
mso-border-alt:solid windowtext 1pt;
|
662
662
|
padding:0cm 2.85pt 0cm 2.85pt;}
|
663
|
-
table.MsoISOTable td
|
663
|
+
table.MsoISOTable td, table.MsoISOTableBig td
|
664
664
|
{border:solid windowtext 1pt;
|
665
665
|
mso-border-alt:solid windowtext 1pt;
|
666
666
|
padding:0cm 2.85pt 0cm 2.85pt;}
|
667
|
-
table.MsoISOTable p
|
667
|
+
table.MsoISOTable p, table.MsoISOTableBig p
|
668
668
|
{font-size:10.0pt; }
|
669
669
|
table.MsoTableGrid
|
670
670
|
{mso-style-name:"Table Grid";
|
@@ -750,6 +750,20 @@ div.example p.MsoListParagraph {
|
|
750
750
|
|
751
751
|
div.Note p.MsoListParagraph {
|
752
752
|
font-size: 10.0pt;
|
753
|
+
margin-left: 1.0cm;
|
754
|
+
}
|
755
|
+
|
756
|
+
div.Note span.stem {
|
757
|
+
font-size: 10.0pt; }
|
758
|
+
|
759
|
+
div.Note p.Sourcecode, div.Note pre.Sourcecode {
|
760
|
+
font-size: 8.0pt;
|
761
|
+
margin-left: 1.0cm;
|
762
|
+
}
|
763
|
+
|
764
|
+
div.Note table.dl {
|
765
|
+
font-size: 10.0pt;
|
766
|
+
margin-left: 1.0cm;
|
753
767
|
}
|
754
768
|
|
755
769
|
span.note_label, span.example_label, td.example_label, td.note_label
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require_relative "base_convert"
|
2
|
+
require_relative "init"
|
2
3
|
require "isodoc"
|
3
4
|
|
4
5
|
module IsoDoc
|
@@ -23,10 +24,14 @@ module IsoDoc
|
|
23
24
|
|
24
25
|
def default_fonts(options)
|
25
26
|
{
|
26
|
-
bodyfont: (
|
27
|
-
|
28
|
-
|
29
|
-
|
27
|
+
bodyfont: (
|
28
|
+
options[:script] == "Hans" ? '"SimSun",serif' :
|
29
|
+
configuration.html_bodyfont || '"Overpass",sans-serif'
|
30
|
+
),
|
31
|
+
headerfont: (
|
32
|
+
options[:script] == "Hans" ? '"SimHei",sans-serif' :
|
33
|
+
configuration.html_headerfont || '"Overpass",sans-serif'
|
34
|
+
),
|
30
35
|
monospacefont: configuration.html_monospacefont || '"Space Mono",monospace'
|
31
36
|
}
|
32
37
|
end
|
@@ -34,27 +39,33 @@ module IsoDoc
|
|
34
39
|
def default_file_locations(_options)
|
35
40
|
{
|
36
41
|
htmlstylesheet: baselocation(configuration.htmlstylesheet) ||
|
37
|
-
|
42
|
+
html_doc_path("htmlstyle.scss"),
|
38
43
|
htmlcoverpage: baselocation(configuration.htmlcoverpage) ||
|
39
|
-
|
44
|
+
html_doc_path("html_generic_titlepage.html"),
|
40
45
|
htmlintropage: baselocation(configuration.htmlintropage) ||
|
41
|
-
|
46
|
+
html_doc_path("html_generic_intro.html"),
|
42
47
|
scripts: baselocation(configuration.scripts) ||
|
43
|
-
|
44
|
-
i18nyaml:
|
48
|
+
html_doc_path("scripts.html"),
|
49
|
+
i18nyaml: (configuration.i18nyaml.is_a?(String) ?
|
50
|
+
baselocation(configuration.i18nyaml) : nil)
|
45
51
|
}
|
46
52
|
end
|
47
53
|
|
54
|
+
=begin
|
48
55
|
def configuration
|
49
56
|
Metanorma::Generic.configuration
|
50
57
|
end
|
58
|
+
=end
|
51
59
|
|
52
60
|
def googlefonts
|
53
61
|
return unless configuration.webfont
|
54
|
-
Array(configuration.webfont).map
|
62
|
+
Array(configuration.webfont).map do |x|
|
63
|
+
%{<link href="#{x.gsub(/\&/, '&')}" rel="stylesheet">}
|
64
|
+
end.join("\n")
|
55
65
|
end
|
56
66
|
|
57
67
|
include BaseConvert
|
68
|
+
include Init
|
58
69
|
end
|
59
70
|
end
|
60
71
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require_relative "utils"
|
2
|
+
|
3
|
+
module IsoDoc
|
4
|
+
module Generic
|
5
|
+
class I18n < IsoDoc::I18n
|
6
|
+
class << self
|
7
|
+
attr_accessor :_file
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.inherited( k )
|
11
|
+
k._file = caller_locations.first.absolute_path
|
12
|
+
end
|
13
|
+
|
14
|
+
def load_yaml1(lang, script)
|
15
|
+
return super unless configuration.i18nyaml
|
16
|
+
file = configuration.i18nyaml.is_a?(Hash) ?
|
17
|
+
configuration.i18nyaml[lang] : configuration.i18nyaml
|
18
|
+
return super if file.nil?
|
19
|
+
y = YAML.load_file(baselocation(file))
|
20
|
+
super.merge(y)
|
21
|
+
end
|
22
|
+
|
23
|
+
include Utils
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require "isodoc"
|
2
|
+
require_relative "metadata"
|
3
|
+
require_relative "xref"
|
4
|
+
require_relative "i18n"
|
5
|
+
require_relative "utils"
|
6
|
+
|
7
|
+
module IsoDoc
|
8
|
+
module Generic
|
9
|
+
module Init
|
10
|
+
def metadata_init(lang, script, i18n)
|
11
|
+
@meta = Metadata.new(lang, script, i18n)
|
12
|
+
end
|
13
|
+
|
14
|
+
def xref_init(lang, script, klass, i18n, options)
|
15
|
+
html = HtmlConvert.new(language: lang, script: script)
|
16
|
+
@xrefs = Xref.new(lang, script, html, i18n, options)
|
17
|
+
end
|
18
|
+
|
19
|
+
def i18n_init(lang, script, i18nyaml = nil)
|
20
|
+
f = Metanorma::Generic.configuration.i18nyaml
|
21
|
+
f = nil unless f.is_a? String
|
22
|
+
@i18n = I18n.new(
|
23
|
+
lang, script, i18nyaml || f || @i18nyaml)
|
24
|
+
end
|
25
|
+
|
26
|
+
include Utils
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
@@ -1,4 +1,6 @@
|
|
1
1
|
require "isodoc"
|
2
|
+
require_relative "init"
|
3
|
+
require_relative "utils"
|
2
4
|
|
3
5
|
module IsoDoc
|
4
6
|
module Generic
|
@@ -22,14 +24,19 @@ module IsoDoc
|
|
22
24
|
k._file = caller_locations.first.absolute_path
|
23
25
|
end
|
24
26
|
|
25
|
-
|
27
|
+
=begin
|
28
|
+
def baselocation(loc)
|
26
29
|
return nil if loc.nil?
|
27
|
-
File.expand_path(File.join(File.dirname(
|
30
|
+
File.expand_path(File.join(File.dirname(
|
31
|
+
self.class.respond_to?(:_file) ? (self.class::_file || __FILE__) :
|
32
|
+
__FILE__),
|
33
|
+
"..", "..", "..", loc))
|
28
34
|
end
|
29
35
|
|
30
36
|
def configuration
|
31
37
|
Metanorma::Generic.configuration
|
32
38
|
end
|
39
|
+
=end
|
33
40
|
|
34
41
|
def author(isoxml, _out)
|
35
42
|
super
|
@@ -53,6 +60,8 @@ module IsoDoc
|
|
53
60
|
set(e.to_sym, b)
|
54
61
|
end
|
55
62
|
end
|
63
|
+
|
64
|
+
include Utils
|
56
65
|
end
|
57
66
|
end
|
58
67
|
end
|
@@ -1,9 +1,19 @@
|
|
1
|
-
require_relative "
|
1
|
+
require_relative "init"
|
2
|
+
require_relative "metadata"
|
2
3
|
require "isodoc"
|
3
4
|
|
4
5
|
module IsoDoc
|
5
6
|
module Generic
|
6
7
|
class PresentationXMLConvert < IsoDoc::PresentationXMLConvert
|
8
|
+
def annex1(f)
|
9
|
+
lbl = @xrefs.anchor(f['id'], :label)
|
10
|
+
if t = f.at(ns("./title"))
|
11
|
+
t.children = "<strong>#{t.children.to_xml}</strong>"
|
12
|
+
end
|
13
|
+
prefix_name(f, "<br/>", lbl, "title")
|
14
|
+
end
|
15
|
+
|
16
|
+
include Init
|
7
17
|
end
|
8
18
|
end
|
9
19
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module IsoDoc
|
2
|
+
module Generic
|
3
|
+
module Utils
|
4
|
+
def configuration
|
5
|
+
Metanorma::Generic.configuration
|
6
|
+
end
|
7
|
+
|
8
|
+
def fileloc(loc)
|
9
|
+
File.join(File.dirname(__FILE__), loc)
|
10
|
+
end
|
11
|
+
|
12
|
+
def baselocation(loc)
|
13
|
+
return nil if loc.nil?
|
14
|
+
f = defined?(self.class::_file) ? (self.class::_file || __FILE__) :
|
15
|
+
__FILE__
|
16
|
+
File.expand_path(File.join(
|
17
|
+
File.dirname(f), "..", "..", "..", loc))
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require_relative "base_convert"
|
2
|
+
require_relative "init"
|
2
3
|
require "isodoc"
|
3
4
|
|
4
5
|
module IsoDoc
|
@@ -22,8 +23,14 @@ module IsoDoc
|
|
22
23
|
|
23
24
|
def default_fonts(options)
|
24
25
|
{
|
25
|
-
bodyfont: (
|
26
|
-
|
26
|
+
bodyfont: (
|
27
|
+
options[:script] == "Hans" ? '"SimSun",serif' :
|
28
|
+
configuration.word_bodyfont || '"Arial",sans-serif'
|
29
|
+
),
|
30
|
+
headerfont: (
|
31
|
+
options[:script] == "Hans" ? '"SimHei",sans-serif' :
|
32
|
+
configuration.word_headerfont || '"Arial",sans-serif'
|
33
|
+
),
|
27
34
|
monospacefont: configuration.word_monospacefont || '"Courier New",monospace'
|
28
35
|
}
|
29
36
|
end
|
@@ -31,26 +38,30 @@ module IsoDoc
|
|
31
38
|
def default_file_locations(options)
|
32
39
|
{
|
33
40
|
wordstylesheet: baselocation(configuration.wordstylesheet) ||
|
34
|
-
|
41
|
+
html_doc_path("wordstyle.scss"),
|
35
42
|
standardstylesheet: baselocation(configuration.standardstylesheet) ||
|
36
|
-
|
43
|
+
html_doc_path("generic.scss"),
|
37
44
|
header: baselocation(configuration.header) ||
|
38
|
-
|
45
|
+
html_doc_path("header.html"),
|
39
46
|
wordcoverpage: baselocation(configuration.wordcoverpage) ||
|
40
|
-
|
47
|
+
html_doc_path("word_generic_titlepage.html"),
|
41
48
|
wordintropage: baselocation(configuration.wordintropage) ||
|
42
|
-
|
43
|
-
i18nyaml:
|
44
|
-
|
45
|
-
|
49
|
+
html_doc_path("word_generic_intro.html"),
|
50
|
+
i18nyaml: (configuration.i18nyaml.is_a?(String) ?
|
51
|
+
baselocation(configuration.i18nyaml) : nil),
|
52
|
+
ulstyle: "l3",
|
53
|
+
olstyle: "l2",
|
46
54
|
}
|
47
55
|
end
|
48
56
|
|
57
|
+
=begin
|
49
58
|
def configuration
|
50
59
|
Metanorma::Generic.configuration
|
51
60
|
end
|
61
|
+
=end
|
52
62
|
|
53
63
|
include BaseConvert
|
64
|
+
include Init
|
54
65
|
end
|
55
66
|
end
|
56
67
|
end
|
data/lib/metanorma/generic.rb
CHANGED
@@ -15,6 +15,8 @@ module Metanorma
|
|
15
15
|
organization_name_short
|
16
16
|
organization_name_long
|
17
17
|
bibliography_titles
|
18
|
+
boilerplate
|
19
|
+
committees
|
18
20
|
document_namespace
|
19
21
|
docid_template
|
20
22
|
doctypes
|
@@ -33,6 +35,7 @@ module Metanorma
|
|
33
35
|
metanorma_name
|
34
36
|
normref_titles
|
35
37
|
published_stages
|
38
|
+
relations
|
36
39
|
default_stage
|
37
40
|
stage_abbreviations
|
38
41
|
scripts
|
data/metanorma-generic.gemspec
CHANGED
@@ -28,10 +28,11 @@ Gem::Specification.new do |spec|
|
|
28
28
|
|
29
29
|
spec.add_dependency "htmlentities", "~> 4.3.4"
|
30
30
|
spec.add_dependency "ruby-jing"
|
31
|
-
spec.add_dependency "metanorma-standoc", "~> 1.
|
32
|
-
spec.add_dependency "isodoc", "~> 1.
|
31
|
+
spec.add_dependency "metanorma-standoc", "~> 1.6.0"
|
32
|
+
spec.add_dependency "isodoc", "~> 1.2.0"
|
33
33
|
|
34
34
|
spec.add_development_dependency "byebug", "~> 9.1"
|
35
|
+
spec.add_development_dependency "sassc", "2.4.0"
|
35
36
|
spec.add_development_dependency "equivalent-xml", "~> 0.6"
|
36
37
|
spec.add_development_dependency "guard", "~> 2.14"
|
37
38
|
spec.add_development_dependency "guard-rspec", "~> 4.7"
|
data/metanorma.yml.example
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metanorma-generic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-09-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: htmlentities
|
@@ -44,28 +44,28 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 1.
|
47
|
+
version: 1.6.0
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 1.
|
54
|
+
version: 1.6.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: isodoc
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 1.
|
61
|
+
version: 1.2.0
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 1.
|
68
|
+
version: 1.2.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: byebug
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,6 +80,20 @@ dependencies:
|
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '9.1'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: sassc
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - '='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 2.4.0
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - '='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 2.4.0
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
98
|
name: equivalent-xml
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -239,9 +253,12 @@ files:
|
|
239
253
|
- lib/isodoc/generic/html/word_generic_titlepage.html
|
240
254
|
- lib/isodoc/generic/html/wordstyle.scss
|
241
255
|
- lib/isodoc/generic/html_convert.rb
|
256
|
+
- lib/isodoc/generic/i18n.rb
|
257
|
+
- lib/isodoc/generic/init.rb
|
242
258
|
- lib/isodoc/generic/metadata.rb
|
243
259
|
- lib/isodoc/generic/pdf_convert.rb
|
244
260
|
- lib/isodoc/generic/presentation_xml_convert.rb
|
261
|
+
- lib/isodoc/generic/utils.rb
|
245
262
|
- lib/isodoc/generic/word_convert.rb
|
246
263
|
- lib/isodoc/generic/xref.rb
|
247
264
|
- lib/metanorma-generic.rb
|