metanorma-iho 0.8.7 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/isodoc/iho/i18n-en.yaml +1 -0
- data/lib/isodoc/iho/iho.specification.xsl +4 -2
- data/lib/isodoc/iho/iho.standard.xsl +4 -2
- data/lib/isodoc/iho/presentation_xml_convert.rb +87 -0
- data/lib/metanorma/iho/basicdoc.rng +91 -8
- data/lib/metanorma/iho/biblio-standoc.rng +44 -1
- data/lib/metanorma/iho/biblio.rng +11 -0
- data/lib/metanorma/iho/isodoc.rng +10 -64
- data/lib/metanorma/iho/reqt.rng +0 -16
- data/lib/metanorma/iho/version.rb +1 -1
- data/metanorma-iho.gemspec +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c4b64c1bec1866b211de1d7843e3c50d366771c5a6e960e50e1a1b26f573b416
|
4
|
+
data.tar.gz: d3e48770e6280f8567d5a6269d84fbf83d4c1a01d51210bb8728494648051ae5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7db918b6bebfaff6f3cc206157032322a0da07a6d8e2999d755889a97487592cacf28e6cfb816dc925fd4d03d8a3f58a58af2298e850b5bf503ccd08345f59eb
|
7
|
+
data.tar.gz: f7e68d99c8f96222f0b07aeab5b3f9fc0082d3894fefbace516fc921b78dfe52db9ecfa53e22275a77d5c4a8fb42e6a82c2e81ca48453537761e1c286f757457
|
data/lib/isodoc/iho/i18n-en.yaml
CHANGED
@@ -9365,14 +9365,16 @@
|
|
9365
9365
|
|
9366
9366
|
<xsl:template match="*[local-name() = 'annex']">
|
9367
9367
|
<fo:block break-after="page"/>
|
9368
|
-
<fo:block
|
9368
|
+
<fo:block>
|
9369
9369
|
|
9370
9370
|
<xsl:call-template name="setBlockSpanAll"/>
|
9371
9371
|
|
9372
9372
|
<xsl:call-template name="refine_annex_style"/>
|
9373
9373
|
|
9374
9374
|
</fo:block>
|
9375
|
-
<
|
9375
|
+
<fo:block id="{@id}">
|
9376
|
+
<xsl:apply-templates/>
|
9377
|
+
</fo:block>
|
9376
9378
|
</xsl:template>
|
9377
9379
|
|
9378
9380
|
<xsl:template name="refine_annex_style">
|
@@ -9365,14 +9365,16 @@
|
|
9365
9365
|
|
9366
9366
|
<xsl:template match="*[local-name() = 'annex']">
|
9367
9367
|
<fo:block break-after="page"/>
|
9368
|
-
<fo:block
|
9368
|
+
<fo:block>
|
9369
9369
|
|
9370
9370
|
<xsl:call-template name="setBlockSpanAll"/>
|
9371
9371
|
|
9372
9372
|
<xsl:call-template name="refine_annex_style"/>
|
9373
9373
|
|
9374
9374
|
</fo:block>
|
9375
|
-
<
|
9375
|
+
<fo:block id="{@id}">
|
9376
|
+
<xsl:apply-templates/>
|
9377
|
+
</fo:block>
|
9376
9378
|
</xsl:template>
|
9377
9379
|
|
9378
9380
|
<xsl:template name="refine_annex_style">
|
@@ -34,6 +34,93 @@ _bib)
|
|
34
34
|
%w(), doc)
|
35
35
|
end
|
36
36
|
|
37
|
+
def bibdata(docxml)
|
38
|
+
super
|
39
|
+
dochistory(docxml)
|
40
|
+
end
|
41
|
+
|
42
|
+
UPDATE_RELATIONS = <<~XPATH.freeze
|
43
|
+
//bibdata/relation[@type = 'updatedBy' or @type = 'merges' or @type = 'splits' or @type = 'hasDraft']/bibitem
|
44
|
+
XPATH
|
45
|
+
|
46
|
+
def dochistory(docxml)
|
47
|
+
updates = docxml.xpath(ns(UPDATE_RELATIONS))
|
48
|
+
updates.empty? and return
|
49
|
+
pref = preface_insert_point(docxml)
|
50
|
+
generate_dochistory(updates, pref)
|
51
|
+
end
|
52
|
+
|
53
|
+
def preface_insert_point(docxml)
|
54
|
+
docxml.at(ns("//preface")) || docxml.at(ns("//sections"))
|
55
|
+
.add_previous_sibling("<preface> </preface>").first
|
56
|
+
end
|
57
|
+
|
58
|
+
def generate_dochistory(updates, pref)
|
59
|
+
ret = updates.map { |u| generate_dochistory_row(u) }.flatten.join("\n")
|
60
|
+
pref << <<~XML
|
61
|
+
<clause id='_#{UUIDTools::UUID.random_create}'>
|
62
|
+
<title>#{@i18n.dochistory}</title>
|
63
|
+
<table unnumbered="true"><thead>
|
64
|
+
<tr><th>Version Number</th><th>Date</th><th>Author</th><th>Description</th></tr>
|
65
|
+
</thead><tbody>
|
66
|
+
#{ret}
|
67
|
+
</tbody></table></clause>
|
68
|
+
XML
|
69
|
+
end
|
70
|
+
|
71
|
+
def generate_dochistory_row(item)
|
72
|
+
e = item.at(ns("./edition"))&.text
|
73
|
+
date = dochistory_date(item)
|
74
|
+
c = dochistory_contributors(item)
|
75
|
+
desc = dochistory_description(item)
|
76
|
+
"<tr><td>#{e}</td><td>#{date}</td><td>#{c}</td><td>#{desc}</td></tr>"
|
77
|
+
end
|
78
|
+
|
79
|
+
def dochistory_date(item)
|
80
|
+
d = item.at(ns("./date[@type = 'updated']")) ||
|
81
|
+
item.at(ns("./date[@type = 'published']")) ||
|
82
|
+
item.at(ns("./date[@type = 'issued']")) or return ""
|
83
|
+
ddMMMyyyy(d.text.strip)
|
84
|
+
end
|
85
|
+
|
86
|
+
def dochistory_contributors(item)
|
87
|
+
item.xpath(ns("./contributor")).map do |c|
|
88
|
+
dochistory_contributor(c)
|
89
|
+
end.join(", ")
|
90
|
+
end
|
91
|
+
|
92
|
+
def dochistory_contributor(contrib)
|
93
|
+
ret = contrib.at("./organization/abbreviation") ||
|
94
|
+
contrib.at("./organization/subdivision") ||
|
95
|
+
contrib.at("./organization/name") ||
|
96
|
+
contrib.at("./person/name/abbreviation") ||
|
97
|
+
contrib.at("./person/name/completename")
|
98
|
+
ret and return ret.text
|
99
|
+
format_personalname(contrib)
|
100
|
+
end
|
101
|
+
|
102
|
+
def format_personalname(contrib)
|
103
|
+
Relaton::Render::General.new(template: { book: "{{ creatornames }}" })
|
104
|
+
.render("<bibitem type='book'>#{contrib.to_xml}</bibitem>")
|
105
|
+
end
|
106
|
+
|
107
|
+
def dochistory_description(item)
|
108
|
+
d = item.at(ns("./amend/description")) or return ""
|
109
|
+
d.children.to_xml
|
110
|
+
end
|
111
|
+
|
112
|
+
def ddMMMyyyy(isodate)
|
113
|
+
isodate.nil? and return nil
|
114
|
+
arr = isodate.split("-")
|
115
|
+
if arr.size == 1 && (/^\d+$/.match isodate)
|
116
|
+
Date.new(*arr.map(&:to_i)).strftime("%Y")
|
117
|
+
elsif arr.size == 2
|
118
|
+
Date.new(*arr.map(&:to_i)).strftime("%B %Y")
|
119
|
+
else
|
120
|
+
Date.parse(isodate).strftime("%d %B %Y")
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
37
124
|
include Init
|
38
125
|
end
|
39
126
|
end
|
@@ -95,8 +95,89 @@
|
|
95
95
|
<ref name="pagebreak"/>
|
96
96
|
<ref name="hr"/>
|
97
97
|
<ref name="bookmark"/>
|
98
|
+
<ref name="amend"/>
|
98
99
|
</choice>
|
99
100
|
</define>
|
101
|
+
<define name="amend">
|
102
|
+
<element name="amend">
|
103
|
+
<ref name="AmendType"/>
|
104
|
+
</element>
|
105
|
+
</define>
|
106
|
+
<define name="AmendType">
|
107
|
+
<optional>
|
108
|
+
<attribute name="id">
|
109
|
+
<data type="ID"/>
|
110
|
+
</attribute>
|
111
|
+
</optional>
|
112
|
+
<attribute name="change">
|
113
|
+
<choice>
|
114
|
+
<value>add</value>
|
115
|
+
<value>modify</value>
|
116
|
+
<value>delete</value>
|
117
|
+
<value>replace</value>
|
118
|
+
</choice>
|
119
|
+
</attribute>
|
120
|
+
<optional>
|
121
|
+
<attribute name="path"/>
|
122
|
+
</optional>
|
123
|
+
<optional>
|
124
|
+
<attribute name="path_end"/>
|
125
|
+
</optional>
|
126
|
+
<optional>
|
127
|
+
<attribute name="title"/>
|
128
|
+
</optional>
|
129
|
+
<optional>
|
130
|
+
<element name="location">
|
131
|
+
<zeroOrMore>
|
132
|
+
<choice>
|
133
|
+
<ref name="locality"/>
|
134
|
+
<ref name="localityStack"/>
|
135
|
+
</choice>
|
136
|
+
</zeroOrMore>
|
137
|
+
</element>
|
138
|
+
</optional>
|
139
|
+
<optional>
|
140
|
+
<element name="description">
|
141
|
+
<zeroOrMore>
|
142
|
+
<ref name="BasicBlock"/>
|
143
|
+
</zeroOrMore>
|
144
|
+
</element>
|
145
|
+
</optional>
|
146
|
+
<optional>
|
147
|
+
<element name="newcontent">
|
148
|
+
<optional>
|
149
|
+
<attribute name="id">
|
150
|
+
<data type="ID"/>
|
151
|
+
</attribute>
|
152
|
+
</optional>
|
153
|
+
<zeroOrMore>
|
154
|
+
<ref name="BasicBlock"/>
|
155
|
+
</zeroOrMore>
|
156
|
+
</element>
|
157
|
+
</optional>
|
158
|
+
<zeroOrMore>
|
159
|
+
<ref name="classification"/>
|
160
|
+
</zeroOrMore>
|
161
|
+
<zeroOrMore>
|
162
|
+
<ref name="contributor"/>
|
163
|
+
</zeroOrMore>
|
164
|
+
</define>
|
165
|
+
<define name="classification">
|
166
|
+
<element name="classification">
|
167
|
+
<ref name="classification_tag"/>
|
168
|
+
<ref name="classification_value"/>
|
169
|
+
</element>
|
170
|
+
</define>
|
171
|
+
<define name="classification_tag">
|
172
|
+
<element name="tag">
|
173
|
+
<text/>
|
174
|
+
</element>
|
175
|
+
</define>
|
176
|
+
<define name="classification_value">
|
177
|
+
<element name="value">
|
178
|
+
<text/>
|
179
|
+
</element>
|
180
|
+
</define>
|
100
181
|
<define name="paragraph">
|
101
182
|
<element name="p">
|
102
183
|
<ref name="ParagraphType"/>
|
@@ -939,18 +1020,12 @@
|
|
939
1020
|
</optional>
|
940
1021
|
<optional>
|
941
1022
|
<attribute name="width">
|
942
|
-
<
|
943
|
-
<data type="int"/>
|
944
|
-
<value>auto</value>
|
945
|
-
</choice>
|
1023
|
+
<ref name="ImageSize"/>
|
946
1024
|
</attribute>
|
947
1025
|
</optional>
|
948
1026
|
<optional>
|
949
1027
|
<attribute name="height">
|
950
|
-
<
|
951
|
-
<data type="int"/>
|
952
|
-
<value>auto</value>
|
953
|
-
</choice>
|
1028
|
+
<ref name="ImageSize"/>
|
954
1029
|
</attribute>
|
955
1030
|
</optional>
|
956
1031
|
<optional>
|
@@ -965,6 +1040,14 @@
|
|
965
1040
|
</attribute>
|
966
1041
|
</optional>
|
967
1042
|
</define>
|
1043
|
+
<define name="ImageSize">
|
1044
|
+
<choice>
|
1045
|
+
<data type="string">
|
1046
|
+
<param name="pattern">\d+([.]\d+)?(%?)</param>
|
1047
|
+
</data>
|
1048
|
+
<value>auto</value>
|
1049
|
+
</choice>
|
1050
|
+
</define>
|
968
1051
|
<define name="video">
|
969
1052
|
<element name="video">
|
970
1053
|
<attribute name="id">
|
@@ -9,11 +9,42 @@
|
|
9
9
|
-->
|
10
10
|
<include href="biblio.rng">
|
11
11
|
<define name="BibData">
|
12
|
-
<ref name="
|
12
|
+
<ref name="StandardBibliographicItem"/>
|
13
13
|
<optional>
|
14
14
|
<ref name="ext"/>
|
15
15
|
</optional>
|
16
16
|
</define>
|
17
|
+
<define name="docrelation">
|
18
|
+
<element name="relation">
|
19
|
+
<attribute name="type">
|
20
|
+
<ref name="DocRelationType"/>
|
21
|
+
</attribute>
|
22
|
+
<optional>
|
23
|
+
<element name="description">
|
24
|
+
<ref name="FormattedString"/>
|
25
|
+
</element>
|
26
|
+
</optional>
|
27
|
+
<element name="bibitem">
|
28
|
+
<ref name="StandardReducedBibliographicItem"/>
|
29
|
+
</element>
|
30
|
+
<choice>
|
31
|
+
<zeroOrMore>
|
32
|
+
<ref name="locality"/>
|
33
|
+
</zeroOrMore>
|
34
|
+
<zeroOrMore>
|
35
|
+
<ref name="localityStack"/>
|
36
|
+
</zeroOrMore>
|
37
|
+
</choice>
|
38
|
+
<choice>
|
39
|
+
<zeroOrMore>
|
40
|
+
<ref name="sourceLocality"/>
|
41
|
+
</zeroOrMore>
|
42
|
+
<zeroOrMore>
|
43
|
+
<ref name="sourceLocalityStack"/>
|
44
|
+
</zeroOrMore>
|
45
|
+
</choice>
|
46
|
+
</element>
|
47
|
+
</define>
|
17
48
|
</include>
|
18
49
|
<define name="ext">
|
19
50
|
<element name="ext">
|
@@ -161,4 +192,16 @@
|
|
161
192
|
</optional>
|
162
193
|
</element>
|
163
194
|
</define>
|
195
|
+
<define name="StandardBibliographicItem">
|
196
|
+
<ref name="BibliographicItem"/>
|
197
|
+
<zeroOrMore>
|
198
|
+
<ref name="amend"/>
|
199
|
+
</zeroOrMore>
|
200
|
+
</define>
|
201
|
+
<define name="StandardReducedBibliographicItem">
|
202
|
+
<ref name="ReducedBibliographicItem"/>
|
203
|
+
<zeroOrMore>
|
204
|
+
<ref name="amend"/>
|
205
|
+
</zeroOrMore>
|
206
|
+
</define>
|
164
207
|
</grammar>
|
@@ -241,6 +241,9 @@
|
|
241
241
|
</element>
|
242
242
|
</define>
|
243
243
|
<define name="FullNameType">
|
244
|
+
<optional>
|
245
|
+
<ref name="name_abbreviation"/>
|
246
|
+
</optional>
|
244
247
|
<choice>
|
245
248
|
<group>
|
246
249
|
<zeroOrMore>
|
@@ -266,6 +269,11 @@
|
|
266
269
|
<ref name="variantname"/>
|
267
270
|
</zeroOrMore>
|
268
271
|
</define>
|
272
|
+
<define name="name_abbreviation">
|
273
|
+
<element name="abbreviation">
|
274
|
+
<ref name="LocalizedString"/>
|
275
|
+
</element>
|
276
|
+
</define>
|
269
277
|
<define name="prefix">
|
270
278
|
<element name="prefix">
|
271
279
|
<ref name="LocalizedString"/>
|
@@ -870,6 +878,9 @@
|
|
870
878
|
<optional>
|
871
879
|
<ref name="validity"/>
|
872
880
|
</optional>
|
881
|
+
<optional>
|
882
|
+
<ref name="depiction"/>
|
883
|
+
</optional>
|
873
884
|
</define>
|
874
885
|
<define name="btitle">
|
875
886
|
<element name="title">
|
@@ -17,10 +17,19 @@
|
|
17
17
|
these elements; we just want one namespace for any child grammars
|
18
18
|
of this.
|
19
19
|
-->
|
20
|
-
<!-- VERSION v1.2.
|
20
|
+
<!-- VERSION v1.2.12 -->
|
21
21
|
<grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
22
22
|
<include href="reqt.rng"/>
|
23
23
|
<include href="basicdoc.rng">
|
24
|
+
<define name="amend">
|
25
|
+
<element name="amend">
|
26
|
+
<ref name="BlockAttributes"/>
|
27
|
+
<ref name="AmendType"/>
|
28
|
+
<zeroOrMore>
|
29
|
+
<ref name="autonumber"/>
|
30
|
+
</zeroOrMore>
|
31
|
+
</element>
|
32
|
+
</define>
|
24
33
|
<define name="admonition">
|
25
34
|
<element name="admonition">
|
26
35
|
<attribute name="type">
|
@@ -2319,69 +2328,6 @@
|
|
2319
2328
|
<ref name="CitationType"/>
|
2320
2329
|
</element>
|
2321
2330
|
</define>
|
2322
|
-
<define name="amend">
|
2323
|
-
<element name="amend">
|
2324
|
-
<optional>
|
2325
|
-
<attribute name="id">
|
2326
|
-
<data type="ID"/>
|
2327
|
-
</attribute>
|
2328
|
-
</optional>
|
2329
|
-
<attribute name="change">
|
2330
|
-
<choice>
|
2331
|
-
<value>add</value>
|
2332
|
-
<value>modify</value>
|
2333
|
-
<value>delete</value>
|
2334
|
-
<value>replace</value>
|
2335
|
-
</choice>
|
2336
|
-
</attribute>
|
2337
|
-
<optional>
|
2338
|
-
<attribute name="path"/>
|
2339
|
-
</optional>
|
2340
|
-
<optional>
|
2341
|
-
<attribute name="path_end"/>
|
2342
|
-
</optional>
|
2343
|
-
<optional>
|
2344
|
-
<attribute name="title"/>
|
2345
|
-
</optional>
|
2346
|
-
<ref name="BlockAttributes"/>
|
2347
|
-
<optional>
|
2348
|
-
<element name="location">
|
2349
|
-
<zeroOrMore>
|
2350
|
-
<ref name="locality"/>
|
2351
|
-
</zeroOrMore>
|
2352
|
-
</element>
|
2353
|
-
</optional>
|
2354
|
-
<zeroOrMore>
|
2355
|
-
<ref name="autonumber"/>
|
2356
|
-
</zeroOrMore>
|
2357
|
-
<optional>
|
2358
|
-
<element name="description">
|
2359
|
-
<zeroOrMore>
|
2360
|
-
<ref name="BasicBlock"/>
|
2361
|
-
</zeroOrMore>
|
2362
|
-
</element>
|
2363
|
-
</optional>
|
2364
|
-
<optional>
|
2365
|
-
<element name="newcontent">
|
2366
|
-
<optional>
|
2367
|
-
<attribute name="id">
|
2368
|
-
<data type="ID"/>
|
2369
|
-
</attribute>
|
2370
|
-
</optional>
|
2371
|
-
<zeroOrMore>
|
2372
|
-
<ref name="BasicBlock"/>
|
2373
|
-
</zeroOrMore>
|
2374
|
-
</element>
|
2375
|
-
</optional>
|
2376
|
-
<optional>
|
2377
|
-
<element name="description">
|
2378
|
-
<zeroOrMore>
|
2379
|
-
<ref name="BasicBlock"/>
|
2380
|
-
</zeroOrMore>
|
2381
|
-
</element>
|
2382
|
-
</optional>
|
2383
|
-
</element>
|
2384
|
-
</define>
|
2385
2331
|
<define name="autonumber">
|
2386
2332
|
<element name="autonumber">
|
2387
2333
|
<attribute name="type">
|
data/lib/metanorma/iho/reqt.rng
CHANGED
@@ -207,20 +207,4 @@
|
|
207
207
|
<value>permission</value>
|
208
208
|
</choice>
|
209
209
|
</define>
|
210
|
-
<define name="classification">
|
211
|
-
<element name="classification">
|
212
|
-
<ref name="classification_tag"/>
|
213
|
-
<ref name="classification_value"/>
|
214
|
-
</element>
|
215
|
-
</define>
|
216
|
-
<define name="classification_tag">
|
217
|
-
<element name="tag">
|
218
|
-
<text/>
|
219
|
-
</element>
|
220
|
-
</define>
|
221
|
-
<define name="classification_value">
|
222
|
-
<element name="value">
|
223
|
-
<text/>
|
224
|
-
</element>
|
225
|
-
</define>
|
226
210
|
</grammar>
|
data/metanorma-iho.gemspec
CHANGED
@@ -27,7 +27,7 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.require_paths = ["lib"]
|
28
28
|
spec.required_ruby_version = Gem::Requirement.new(">= 2.7.0")
|
29
29
|
|
30
|
-
spec.add_dependency "metanorma-generic", "~> 2.
|
30
|
+
spec.add_dependency "metanorma-generic", "~> 2.6.0"
|
31
31
|
|
32
32
|
spec.add_development_dependency "debug"
|
33
33
|
spec.add_development_dependency "equivalent-xml", "~> 0.6"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metanorma-iho
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.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:
|
11
|
+
date: 2024-01-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: metanorma-generic
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 2.
|
19
|
+
version: 2.6.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 2.
|
26
|
+
version: 2.6.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: debug
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|