metanorma-iho 0.8.7 → 0.9.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/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
|