metanorma-iec 1.4.4 → 1.4.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/asciidoctor/iec/iec.rng +48 -0
- data/lib/asciidoctor/iec/isodoc.rng +6 -2
- data/lib/isodoc/iec/base_convert.rb +23 -13
- data/lib/isodoc/iec/html/htmlstyle.css +13 -4
- data/lib/isodoc/iec/html/htmlstyle.scss +4 -4
- data/lib/isodoc/iec/html/wordstyle.css +13 -11
- data/lib/isodoc/iec/html/wordstyle.scss +13 -11
- data/lib/isodoc/iec/iec.international-standard.xsl +57 -5
- data/lib/isodoc/iec/presentation_xml_convert.rb +37 -7
- data/lib/metanorma/iec/version.rb +1 -1
- data/spec/isodoc/iev_spec.rb +61 -52
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2cd54ae113583e981d0db28b08ed00eb92f1b07a79d395c1d907860270889b59
|
4
|
+
data.tar.gz: bb89fee2a134f6affa9a94d21da24a9ef2c827bb5a5ea03991d405325fe101b0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1b3b33b44d4f1434415774b9ceccdff08a48ce8983aee4e7717e5a217fb47bfbfa77b447d70dd4a4530e5fd0e36e9158ebc18ff9ff58a07d4e3a7d80aee82219
|
7
|
+
data.tar.gz: 4aa8430cb7caa4450916cf7a677612c937183e62a77b938787f4baf76e4d63fa4de0630283bc761cdd30063aca1df8472a8e5098bc9b453121f9eec75038c684
|
data/lib/asciidoctor/iec/iec.rng
CHANGED
@@ -57,6 +57,54 @@
|
|
57
57
|
<ref name="tc-sc-officers-note"/>
|
58
58
|
</optional>
|
59
59
|
</define>
|
60
|
+
<define name="term">
|
61
|
+
<element name="term">
|
62
|
+
<optional>
|
63
|
+
<attribute name="id">
|
64
|
+
<data type="ID"/>
|
65
|
+
</attribute>
|
66
|
+
</optional>
|
67
|
+
<optional>
|
68
|
+
<attribute name="language"/>
|
69
|
+
</optional>
|
70
|
+
<optional>
|
71
|
+
<attribute name="script"/>
|
72
|
+
</optional>
|
73
|
+
<optional>
|
74
|
+
<attribute name="tag"/>
|
75
|
+
</optional>
|
76
|
+
<optional>
|
77
|
+
<attribute name="multilingual-rendering">
|
78
|
+
<ref name="MultilingualRenderingType"/>
|
79
|
+
</attribute>
|
80
|
+
</optional>
|
81
|
+
<oneOrMore>
|
82
|
+
<ref name="preferred"/>
|
83
|
+
</oneOrMore>
|
84
|
+
<zeroOrMore>
|
85
|
+
<ref name="admitted"/>
|
86
|
+
</zeroOrMore>
|
87
|
+
<zeroOrMore>
|
88
|
+
<ref name="deprecates"/>
|
89
|
+
</zeroOrMore>
|
90
|
+
<optional>
|
91
|
+
<ref name="termdomain"/>
|
92
|
+
</optional>
|
93
|
+
<ref name="termdefinition"/>
|
94
|
+
<zeroOrMore>
|
95
|
+
<ref name="termnote"/>
|
96
|
+
</zeroOrMore>
|
97
|
+
<zeroOrMore>
|
98
|
+
<ref name="termexample"/>
|
99
|
+
</zeroOrMore>
|
100
|
+
<zeroOrMore>
|
101
|
+
<ref name="termsource"/>
|
102
|
+
</zeroOrMore>
|
103
|
+
<zeroOrMore>
|
104
|
+
<ref name="term"/>
|
105
|
+
</zeroOrMore>
|
106
|
+
</element>
|
107
|
+
</define>
|
60
108
|
</include>
|
61
109
|
<!-- end overrides -->
|
62
110
|
<define name="function">
|
@@ -1973,7 +1973,11 @@
|
|
1973
1973
|
</optional>
|
1974
1974
|
<element name="name">
|
1975
1975
|
<zeroOrMore>
|
1976
|
-
<
|
1976
|
+
<choice>
|
1977
|
+
<ref name="PureTextElement"/>
|
1978
|
+
<ref name="stem"/>
|
1979
|
+
<ref name="index"/>
|
1980
|
+
</choice>
|
1977
1981
|
</zeroOrMore>
|
1978
1982
|
</element>
|
1979
1983
|
<optional>
|
@@ -1987,7 +1991,7 @@
|
|
1987
1991
|
</element>
|
1988
1992
|
</optional>
|
1989
1993
|
<optional>
|
1990
|
-
<element name="grammar
|
1994
|
+
<element name="grammar">
|
1991
1995
|
<ref name="Grammar"/>
|
1992
1996
|
</element>
|
1993
1997
|
</optional>
|
@@ -14,13 +14,17 @@ module IsoDoc
|
|
14
14
|
page_break(out)
|
15
15
|
iec_orgname(out)
|
16
16
|
middle_title(isoxml, out)
|
17
|
-
|
17
|
+
foreword1(f, b, out)
|
18
|
+
end
|
19
|
+
|
20
|
+
def foreword1(sect, boilerplate, out)
|
21
|
+
out.div **attr_code(id: sect ? sect["id"] : "") do |s|
|
18
22
|
s.h1(**{ class: "ForewordTitle" }) { |h1| h1 << @i18n.foreword }
|
19
23
|
@meta.get[:doctype] == "Amendment" or
|
20
24
|
s.div **attr_code(class: "boilerplate_legal") do |s1|
|
21
|
-
|
25
|
+
boilerplate&.elements&.each { |e| parse(e, s1) }
|
22
26
|
end
|
23
|
-
|
27
|
+
sect&.elements&.each { |e| parse(e, s) unless e.name == "title" }
|
24
28
|
end
|
25
29
|
end
|
26
30
|
|
@@ -31,19 +35,11 @@ module IsoDoc
|
|
31
35
|
end
|
32
36
|
|
33
37
|
def middle_title(_isoxml, out)
|
34
|
-
title1 =
|
35
|
-
@meta.get[:doctitleintro] and
|
36
|
-
title1 = "#{@meta.get[:doctitleintro]} — #{title1}"
|
37
|
-
if @meta.get[:doctitlepart]
|
38
|
-
title1 += " —"
|
39
|
-
title2 = @meta.get[:doctitlepart]&.sub(/\s+$/, "")
|
40
|
-
@meta.get[:doctitlepartlabel] and
|
41
|
-
title2 = "#{@meta.get[:doctitlepartlabel]}: #{title2}"
|
42
|
-
end
|
38
|
+
title1, title2 = middle_title_parts(out)
|
43
39
|
out.p(**{ class: "zzSTDTitle1" }) do |p|
|
44
40
|
p.b { |b| b << title1 }
|
45
41
|
end
|
46
|
-
if
|
42
|
+
if title2
|
47
43
|
out.p(**{ class: "zzSTDTitle1" }) { |p| p << " " }
|
48
44
|
out.p(**{ class: "zzSTDTitle2" }) do |p|
|
49
45
|
p.b { |b| b << title2 }
|
@@ -52,6 +48,20 @@ module IsoDoc
|
|
52
48
|
out.p(**{ class: "zzSTDTitle1" }) { |p| p << " " }
|
53
49
|
end
|
54
50
|
|
51
|
+
def middle_title_parts(out)
|
52
|
+
title1 = @meta.get[:doctitlemain]&.sub(/\s+$/, "")
|
53
|
+
@meta.get[:doctitleintro] and
|
54
|
+
title1 = "#{@meta.get[:doctitleintro]} — #{title1}"
|
55
|
+
title2 = nil
|
56
|
+
if @meta.get[:doctitlepart]
|
57
|
+
title1 += " —"
|
58
|
+
title2 = @meta.get[:doctitlepart]&.sub(/\s+$/, "")
|
59
|
+
@meta.get[:doctitlepartlabel] and
|
60
|
+
title2 = "#{@meta.get[:doctitlepartlabel]}: #{title2}"
|
61
|
+
end
|
62
|
+
[title1, title2]
|
63
|
+
end
|
64
|
+
|
55
65
|
def bibliography(isoxml, out)
|
56
66
|
return super unless @is_iev
|
57
67
|
end
|
@@ -75,6 +75,12 @@ code *, pre *, tt *, kbd *, samp * {
|
|
75
75
|
font-family: {{monospacefont}} !important;
|
76
76
|
font-variant-ligatures: none; }
|
77
77
|
|
78
|
+
p code, dt code, li code, label code, legend code, caption code, th code, td code,
|
79
|
+
p tt, dt tt, li tt, label tt, legend tt, caption tt, th tt, td tt,
|
80
|
+
p kbd, dt kbd, li kbd, label kbd, legend kbd, caption kbd, th kbd, td kbd,
|
81
|
+
p samp, dt samp, li samp, label samp, legend samp, caption samp, th samp, td samp {
|
82
|
+
font-size: {{monospacefontsize}}; }
|
83
|
+
|
78
84
|
article, aside, details, figcaption, figure,
|
79
85
|
footer, header, hgroup, menu, nav, section {
|
80
86
|
display: block; }
|
@@ -86,6 +92,9 @@ table {
|
|
86
92
|
h1, h2, h3, h4, h5, h6 {
|
87
93
|
font-family: {{headerfont}}; }
|
88
94
|
|
95
|
+
.h1, .h2, .h3, .h4, .h5, .h6 {
|
96
|
+
font-family: {{headerfont}}; }
|
97
|
+
|
89
98
|
blockquote, q {
|
90
99
|
quotes: none; }
|
91
100
|
blockquote:before, blockquote:after, q:before, q:after {
|
@@ -298,19 +307,19 @@ span.partlabel {
|
|
298
307
|
font-size: 0.9em; }
|
299
308
|
|
300
309
|
/* TYPOGRAPHY */
|
301
|
-
h1 {
|
310
|
+
h1, .h1 {
|
302
311
|
font-size: 1.5em;
|
303
312
|
line-height: 2em;
|
304
313
|
margin-top: 2em;
|
305
314
|
margin-bottom: 1em; }
|
306
315
|
|
307
|
-
h2 {
|
316
|
+
h2, .h2 {
|
308
317
|
font-size: 1.2em;
|
309
318
|
line-height: 1.5em;
|
310
319
|
margin-top: 2em;
|
311
320
|
margin-bottom: 1em; }
|
312
321
|
|
313
|
-
h1, h2, h3, h4, h5, h6 {
|
322
|
+
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
|
314
323
|
line-height: 1.2; }
|
315
324
|
|
316
325
|
p {
|
@@ -337,7 +346,7 @@ nav a {
|
|
337
346
|
text-decoration: none;
|
338
347
|
color: black; }
|
339
348
|
|
340
|
-
h2 p {
|
349
|
+
h2 p, .h2 p {
|
341
350
|
display: inline; }
|
342
351
|
|
343
352
|
ul > li {
|
@@ -104,21 +104,21 @@ span.partlabel {
|
|
104
104
|
|
105
105
|
/* TYPOGRAPHY */
|
106
106
|
|
107
|
-
h1 {
|
107
|
+
h1, .h1 {
|
108
108
|
font-size: 1.5em;
|
109
109
|
line-height: 2em;
|
110
110
|
margin-top: 2em;
|
111
111
|
margin-bottom: 1em;
|
112
112
|
}
|
113
113
|
|
114
|
-
h2 {
|
114
|
+
h2, .h2 {
|
115
115
|
font-size: 1.2em;
|
116
116
|
line-height: 1.5em;
|
117
117
|
margin-top: 2em;
|
118
118
|
margin-bottom: 1em;
|
119
119
|
}
|
120
120
|
|
121
|
-
h1, h2, h3, h4, h5, h6 {
|
121
|
+
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
|
122
122
|
line-height: 1.2;
|
123
123
|
}
|
124
124
|
|
@@ -152,7 +152,7 @@ nav a {
|
|
152
152
|
color: black;
|
153
153
|
}
|
154
154
|
|
155
|
-
h2 p {
|
155
|
+
h2 p, .h2 p {
|
156
156
|
display: inline;
|
157
157
|
}
|
158
158
|
|
@@ -207,7 +207,7 @@ p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxS
|
|
207
207
|
div.figure, p.figure {
|
208
208
|
text-align: center; }
|
209
209
|
|
210
|
-
h1.main {
|
210
|
+
h1.main, .h1 {
|
211
211
|
mso-style-unhide: no;
|
212
212
|
mso-style-qformat: yes;
|
213
213
|
mso-style-name: "Heading 1";
|
@@ -221,8 +221,6 @@ h1.main {
|
|
221
221
|
text-indent: -19.85pt;
|
222
222
|
mso-pagination: widow-orphan;
|
223
223
|
page-break-after: avoid;
|
224
|
-
mso-outline-level: 1;
|
225
|
-
mso-list: l26 level1 lfo40;
|
226
224
|
mso-hyphenate: none;
|
227
225
|
tab-stops: list 19.85pt;
|
228
226
|
layout-grid-mode: char;
|
@@ -234,6 +232,10 @@ h1.main {
|
|
234
232
|
mso-fareast-language: ZH-CN;
|
235
233
|
font-weight: bold; }
|
236
234
|
|
235
|
+
h1.main {
|
236
|
+
mso-outline-level: 1;
|
237
|
+
mso-list: l26 level1 lfo40; }
|
238
|
+
|
237
239
|
/* IEC: p.ANNEXtitle */
|
238
240
|
h1.Annex {
|
239
241
|
mso-style-name: ANNEX_title;
|
@@ -265,7 +267,7 @@ h1.Annex {
|
|
265
267
|
h1
|
266
268
|
{ mso-list:l26 level1 lfo40;}
|
267
269
|
*/
|
268
|
-
.h2Annex, h2 {
|
270
|
+
.h2Annex, h2, .h3 {
|
269
271
|
mso-style-unhide: no;
|
270
272
|
mso-style-qformat: yes;
|
271
273
|
mso-style-parent: "Heading 1";
|
@@ -293,7 +295,7 @@ h2 {
|
|
293
295
|
mso-list: l26 level2 lfo40;
|
294
296
|
mso-outline-level: 2; }
|
295
297
|
|
296
|
-
.h3Annex, h3 {
|
298
|
+
.h3Annex, h3, .h3 {
|
297
299
|
mso-style-unhide: no;
|
298
300
|
mso-style-qformat: yes;
|
299
301
|
mso-style-name: "Heading 3";
|
@@ -321,7 +323,7 @@ h3 {
|
|
321
323
|
mso-list: l26 level3 lfo40;
|
322
324
|
mso-outline-level: 3; }
|
323
325
|
|
324
|
-
.h4Annex, h4 {
|
326
|
+
.h4Annex, h4, .h4 {
|
325
327
|
mso-style-unhide: no;
|
326
328
|
mso-style-qformat: yes;
|
327
329
|
mso-style-name: "Heading 4";
|
@@ -349,7 +351,7 @@ h4 {
|
|
349
351
|
mso-list: l26 level2 lfo40;
|
350
352
|
mso-outline-level: 4; }
|
351
353
|
|
352
|
-
.h5Annex, h5 {
|
354
|
+
.h5Annex, h5, .h5 {
|
353
355
|
mso-style-unhide: no;
|
354
356
|
mso-style-qformat: yes;
|
355
357
|
mso-style-name: "Heading 5";
|
@@ -377,7 +379,7 @@ h5 {
|
|
377
379
|
mso-list: l26 level5 lfo40;
|
378
380
|
mso-outline-level: 5; }
|
379
381
|
|
380
|
-
h6 {
|
382
|
+
h6, .h6 {
|
381
383
|
mso-style-unhide: no;
|
382
384
|
mso-style-qformat: yes;
|
383
385
|
mso-style-name: "Heading 6";
|
@@ -405,7 +407,7 @@ h6 {
|
|
405
407
|
mso-list: l26 level6 lfo40;
|
406
408
|
mso-outline-level: 6; }
|
407
409
|
|
408
|
-
p.MsoHeading7, li.MsoHeading7, div.MsoHeading7 {
|
410
|
+
p.MsoHeading7, li.MsoHeading7, div.MsoHeading7, .h7 {
|
409
411
|
mso-style-unhide: no;
|
410
412
|
mso-style-qformat: yes;
|
411
413
|
mso-style-name: "Heading 7";
|
@@ -434,7 +436,7 @@ p.MsoHeading7, li.MsoHeading7, div.MsoHeading7 {
|
|
434
436
|
p.MsoHeading7 {
|
435
437
|
mso-list: l26 level7 lfo40; }
|
436
438
|
|
437
|
-
p.MsoHeading8, li.MsoHeading8, div.MsoHeading8 {
|
439
|
+
p.MsoHeading8, li.MsoHeading8, div.MsoHeading8, .h8 {
|
438
440
|
mso-style-unhide: no;
|
439
441
|
mso-style-qformat: yes;
|
440
442
|
mso-style-name: "Heading 8";
|
@@ -463,7 +465,7 @@ p.MsoHeading8, li.MsoHeading8, div.MsoHeading8 {
|
|
463
465
|
p.MsoHeading8 {
|
464
466
|
mso-list: l26 level8 lfo40; }
|
465
467
|
|
466
|
-
p.MsoHeading9, li.MsoHeading9, div.MsoHeading9 {
|
468
|
+
p.MsoHeading9, li.MsoHeading9, div.MsoHeading9, .h9 {
|
467
469
|
mso-style-unhide: no;
|
468
470
|
mso-style-qformat: yes;
|
469
471
|
mso-style-name: "Heading 9";
|
@@ -190,7 +190,7 @@ p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxS
|
|
190
190
|
div.figure, p.figure
|
191
191
|
{text-align: center;}
|
192
192
|
|
193
|
-
h1.main
|
193
|
+
h1.main, .h1
|
194
194
|
{mso-style-unhide:no;
|
195
195
|
mso-style-qformat:yes;
|
196
196
|
mso-style-name:"Heading 1";
|
@@ -204,8 +204,6 @@ h1.main
|
|
204
204
|
text-indent:-19.85pt;
|
205
205
|
mso-pagination:widow-orphan;
|
206
206
|
page-break-after:avoid;
|
207
|
-
mso-outline-level:1;
|
208
|
-
mso-list:l26 level1 lfo40;
|
209
207
|
mso-hyphenate:none;
|
210
208
|
tab-stops:list 19.85pt;
|
211
209
|
layout-grid-mode:char;
|
@@ -216,6 +214,10 @@ h1.main
|
|
216
214
|
mso-ansi-language:EN-GB;
|
217
215
|
mso-fareast-language:ZH-CN;
|
218
216
|
font-weight:bold;}
|
217
|
+
h1.main {
|
218
|
+
mso-outline-level:1;
|
219
|
+
mso-list:l26 level1 lfo40;
|
220
|
+
}
|
219
221
|
/* IEC: p.ANNEXtitle */
|
220
222
|
h1.Annex
|
221
223
|
{mso-style-name:ANNEX_title;
|
@@ -246,7 +248,7 @@ h1.Annex
|
|
246
248
|
h1
|
247
249
|
{ mso-list:l26 level1 lfo40;}
|
248
250
|
*/
|
249
|
-
.h2Annex, h2
|
251
|
+
.h2Annex, h2, .h3
|
250
252
|
{mso-style-unhide:no;
|
251
253
|
mso-style-qformat:yes;
|
252
254
|
mso-style-parent:"Heading 1";
|
@@ -273,7 +275,7 @@ h2
|
|
273
275
|
{ mso-list:l26 level2 lfo40;
|
274
276
|
mso-outline-level:2;
|
275
277
|
}
|
276
|
-
.h3Annex, h3
|
278
|
+
.h3Annex, h3, .h3
|
277
279
|
{mso-style-unhide:no;
|
278
280
|
mso-style-qformat:yes;
|
279
281
|
mso-style-name:"Heading 3";
|
@@ -299,7 +301,7 @@ h2
|
|
299
301
|
h3 {mso-list:l26 level3 lfo40;
|
300
302
|
mso-outline-level:3;
|
301
303
|
}
|
302
|
-
.h4Annex, h4
|
304
|
+
.h4Annex, h4, .h4
|
303
305
|
{mso-style-unhide:no;
|
304
306
|
mso-style-qformat:yes;
|
305
307
|
mso-style-name:"Heading 4";
|
@@ -325,7 +327,7 @@ h3 {mso-list:l26 level3 lfo40;
|
|
325
327
|
h4 {mso-list:l26 level2 lfo40;
|
326
328
|
mso-outline-level:4;
|
327
329
|
}
|
328
|
-
.h5Annex, h5
|
330
|
+
.h5Annex, h5, .h5
|
329
331
|
{mso-style-unhide:no;
|
330
332
|
mso-style-qformat:yes;
|
331
333
|
mso-style-name:"Heading 5";
|
@@ -351,7 +353,7 @@ h4 {mso-list:l26 level2 lfo40;
|
|
351
353
|
h5 {mso-list:l26 level5 lfo40;
|
352
354
|
mso-outline-level:5;
|
353
355
|
}
|
354
|
-
h6
|
356
|
+
h6, .h6
|
355
357
|
{mso-style-unhide:no;
|
356
358
|
mso-style-qformat:yes;
|
357
359
|
mso-style-name:"Heading 6";
|
@@ -377,7 +379,7 @@ h6
|
|
377
379
|
h6 {mso-list:l26 level6 lfo40;
|
378
380
|
mso-outline-level:6;
|
379
381
|
}
|
380
|
-
p.MsoHeading7, li.MsoHeading7, div.MsoHeading7
|
382
|
+
p.MsoHeading7, li.MsoHeading7, div.MsoHeading7, .h7
|
381
383
|
{mso-style-unhide:no;
|
382
384
|
mso-style-qformat:yes;
|
383
385
|
mso-style-name:"Heading 7";
|
@@ -403,7 +405,7 @@ p.MsoHeading7, li.MsoHeading7, div.MsoHeading7
|
|
403
405
|
mso-fareast-language:ZH-CN;
|
404
406
|
font-weight:bold;}
|
405
407
|
p.MsoHeading7 {mso-list:l26 level7 lfo40;}
|
406
|
-
p.MsoHeading8, li.MsoHeading8, div.MsoHeading8
|
408
|
+
p.MsoHeading8, li.MsoHeading8, div.MsoHeading8 ,.h8
|
407
409
|
{mso-style-unhide:no;
|
408
410
|
mso-style-qformat:yes;
|
409
411
|
mso-style-name:"Heading 8";
|
@@ -429,7 +431,7 @@ p.MsoHeading8, li.MsoHeading8, div.MsoHeading8
|
|
429
431
|
mso-fareast-language:ZH-CN;
|
430
432
|
font-weight:bold;}
|
431
433
|
p.MsoHeading8 {mso-list:l26 level8 lfo40;}
|
432
|
-
p.MsoHeading9, li.MsoHeading9, div.MsoHeading9
|
434
|
+
p.MsoHeading9, li.MsoHeading9, div.MsoHeading9, .h9
|
433
435
|
{mso-style-unhide:no;
|
434
436
|
mso-style-qformat:yes;
|
435
437
|
mso-style-name:"Heading 9";
|
@@ -1962,7 +1962,7 @@
|
|
1962
1962
|
</xsl:template>
|
1963
1963
|
|
1964
1964
|
|
1965
|
-
<xsl:template match="iec:title">
|
1965
|
+
<xsl:template match="iec:title" name="title">
|
1966
1966
|
|
1967
1967
|
<xsl:variable name="level">
|
1968
1968
|
<xsl:call-template name="getLevel"/>
|
@@ -2058,6 +2058,7 @@
|
|
2058
2058
|
<!-- <xsl:if test="ancestor::iec:dl and ancestor::iec:figure">
|
2059
2059
|
<xsl:attribute name="margin-bottom">10pt</xsl:attribute>
|
2060
2060
|
</xsl:if> -->
|
2061
|
+
<xsl:apply-templates select="@language"/>
|
2061
2062
|
<xsl:apply-templates/>
|
2062
2063
|
</xsl:element>
|
2063
2064
|
</xsl:when>
|
@@ -2162,12 +2163,11 @@
|
|
2162
2163
|
<xsl:template match="iec:li">
|
2163
2164
|
<fo:list-item>
|
2164
2165
|
<fo:list-item-label end-indent="label-end()">
|
2165
|
-
<xsl:if test="local-name(..) = 'ul'">
|
2166
|
-
<xsl:attribute name="font-size">10pt</xsl:attribute>
|
2167
|
-
</xsl:if>
|
2168
2166
|
<fo:block>
|
2169
2167
|
<xsl:choose>
|
2170
|
-
<xsl:when test="local-name(..) = 'ul'"
|
2168
|
+
<xsl:when test="local-name(..) = 'ul'">
|
2169
|
+
<xsl:call-template name="setULLabel"/>
|
2170
|
+
</xsl:when>
|
2171
2171
|
<xsl:otherwise> <!-- for ordered lists -->
|
2172
2172
|
<xsl:choose>
|
2173
2173
|
<xsl:when test="../@type = 'arabic'">
|
@@ -4863,6 +4863,7 @@
|
|
4863
4863
|
</xsl:template><xsl:template match="*[local-name()='dd']" mode="dl"/><xsl:template match="*[local-name()='dd']" mode="dl_process">
|
4864
4864
|
<xsl:apply-templates/>
|
4865
4865
|
</xsl:template><xsl:template match="*[local-name()='dd']"/><xsl:template match="*[local-name()='dd']" mode="process">
|
4866
|
+
<xsl:apply-templates select="@language"/>
|
4866
4867
|
<xsl:apply-templates/>
|
4867
4868
|
</xsl:template><xsl:template match="*[local-name()='dd']/*[local-name()='p']" mode="inline">
|
4868
4869
|
<fo:inline><xsl:text> </xsl:text><xsl:apply-templates/></fo:inline>
|
@@ -7057,6 +7058,53 @@
|
|
7057
7058
|
</xsl:template><xsl:template match="*[local-name() = 'name']/text()">
|
7058
7059
|
<!-- 0xA0 to space replacement -->
|
7059
7060
|
<xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),' ',' ')"/>
|
7061
|
+
</xsl:template><xsl:variable name="ul_labels_">
|
7062
|
+
|
7063
|
+
|
7064
|
+
|
7065
|
+
|
7066
|
+
|
7067
|
+
<label level="1" font-size="10pt">•</label>
|
7068
|
+
<label level="2" font-size="10pt">—</label><!-- em dash -->
|
7069
|
+
<label level="3" font-size="75%">o</label> <!-- white circle -->
|
7070
|
+
|
7071
|
+
|
7072
|
+
|
7073
|
+
|
7074
|
+
|
7075
|
+
|
7076
|
+
|
7077
|
+
|
7078
|
+
|
7079
|
+
|
7080
|
+
|
7081
|
+
|
7082
|
+
|
7083
|
+
</xsl:variable><xsl:variable name="ul_labels" select="xalan:nodeset($ul_labels_)"/><xsl:template name="setULLabel">
|
7084
|
+
<xsl:variable name="list_level_" select="count(ancestor::*[local-name() = 'ul']) + count(ancestor::*[local-name() = 'ol'])"/>
|
7085
|
+
<xsl:variable name="list_level">
|
7086
|
+
<xsl:choose>
|
7087
|
+
<xsl:when test="$list_level_ <= 3"><xsl:value-of select="$list_level_"/></xsl:when>
|
7088
|
+
<xsl:otherwise><xsl:value-of select="$list_level_ mod 3"/></xsl:otherwise>
|
7089
|
+
</xsl:choose>
|
7090
|
+
</xsl:variable>
|
7091
|
+
<xsl:choose>
|
7092
|
+
<xsl:when test="$ul_labels/label[not(@level)]"> <!-- one label for all levels -->
|
7093
|
+
<xsl:apply-templates select="$ul_labels/label[not(@level)]" mode="ul_labels"/>
|
7094
|
+
</xsl:when>
|
7095
|
+
<xsl:when test="$list_level mod 3 = 0">
|
7096
|
+
<xsl:apply-templates select="$ul_labels/label[@level = 3]" mode="ul_labels"/>
|
7097
|
+
</xsl:when>
|
7098
|
+
<xsl:when test="$list_level mod 2 = 0">
|
7099
|
+
<xsl:apply-templates select="$ul_labels/label[@level = 2]" mode="ul_labels"/>
|
7100
|
+
</xsl:when>
|
7101
|
+
<xsl:otherwise>
|
7102
|
+
<xsl:apply-templates select="$ul_labels/label[@level = 1]" mode="ul_labels"/>
|
7103
|
+
</xsl:otherwise>
|
7104
|
+
</xsl:choose>
|
7105
|
+
</xsl:template><xsl:template match="label" mode="ul_labels">
|
7106
|
+
<xsl:copy-of select="@*[not(local-name() = 'level')]"/>
|
7107
|
+
<xsl:value-of select="."/>
|
7060
7108
|
</xsl:template><xsl:template match="*[local-name() = 'ul'] | *[local-name() = 'ol']">
|
7061
7109
|
<xsl:choose>
|
7062
7110
|
<xsl:when test="parent::*[local-name() = 'note'] or parent::*[local-name() = 'termnote']">
|
@@ -7510,6 +7558,10 @@
|
|
7510
7558
|
</svg>
|
7511
7559
|
</fo:instream-foreign-object>
|
7512
7560
|
</fo:inline>
|
7561
|
+
</xsl:template><xsl:template match="@language">
|
7562
|
+
<xsl:copy-of select="."/>
|
7563
|
+
</xsl:template><xsl:template match="*[local-name() = 'p'][@type = 'floating-title']" priority="4">
|
7564
|
+
<xsl:call-template name="title"/>
|
7513
7565
|
</xsl:template><xsl:template name="convertDate">
|
7514
7566
|
<xsl:param name="date"/>
|
7515
7567
|
<xsl:param name="format" select="'short'"/>
|
@@ -63,7 +63,7 @@ module IsoDoc
|
|
63
63
|
end
|
64
64
|
docpart = docxml&.at(ns("//bibdata/ext/structuredidentifier/"\
|
65
65
|
"project-number/@part"))&.text or return
|
66
|
-
docxml.xpath(ns("//
|
66
|
+
docxml.xpath(ns("//termref[@base = 'IEV']")).each do |t|
|
67
67
|
concept_iev1(t, docpart, labels)
|
68
68
|
end
|
69
69
|
end
|
@@ -120,36 +120,66 @@ module IsoDoc
|
|
120
120
|
p = d.parent
|
121
121
|
designation_annotate(p, d.at(ns("./name")))
|
122
122
|
m << { lang: lg, script: Metanorma::Utils.default_script(lg),
|
123
|
-
designation: l10n_recursive(p.remove, lg) }
|
123
|
+
designation: l10n_recursive(p.remove, lg).to_xml.strip }
|
124
124
|
end
|
125
125
|
end
|
126
126
|
|
127
127
|
def l10n_recursive(xml, lang)
|
128
128
|
script = Metanorma::Utils.default_script(lang)
|
129
|
+
c = HTMLEntities.new
|
129
130
|
xml.traverse do |x|
|
130
131
|
next unless x.text?
|
131
132
|
|
132
|
-
|
133
|
+
text = c.encode(c.decode(x.text), :hexadecimal)
|
134
|
+
x.replace(cleanup_entities(l10n(text, lang, script), is_xml: false))
|
133
135
|
end
|
134
136
|
xml
|
135
137
|
end
|
136
138
|
|
139
|
+
def merge_otherlang_designations(desgn)
|
140
|
+
h = desgn.each_with_object({}) do |e, m|
|
141
|
+
if m[e[:lang]]
|
142
|
+
m[e[:lang]][:designation] += e[:designation]
|
143
|
+
else m[e[:lang]] = e
|
144
|
+
end
|
145
|
+
end
|
146
|
+
h.keys.sort.each_with_object([]) { |k, m| m << h[k] }
|
147
|
+
end
|
148
|
+
|
137
149
|
def otherlang_designations1(term, lgs)
|
138
|
-
pr =
|
150
|
+
pr = merge_otherlang_designations(
|
151
|
+
extract_otherlang_designations(term, lgs),
|
152
|
+
)
|
139
153
|
return if pr.empty?
|
140
154
|
|
141
155
|
prefs = pr.map do |p|
|
142
156
|
"<dt>#{p[:lang]}</dt>"\
|
143
157
|
"<dd language='#{p[:lang]}' script='#{p[:script]}'>"\
|
144
|
-
"#{p[:designation]
|
158
|
+
"#{cleanup_entities(p[:designation])}</dd>"
|
145
159
|
end
|
146
160
|
term << "<dl type='other-lang'>#{prefs.join}</dl>"
|
147
161
|
end
|
148
162
|
|
163
|
+
def related(docxml)
|
164
|
+
docxml.xpath(ns("//term[related]")).each { |f| move_related(f) }
|
165
|
+
super
|
166
|
+
end
|
167
|
+
|
168
|
+
def move_related(term)
|
169
|
+
defn = term.at(ns("./definition")) or return
|
170
|
+
term.xpath(ns("./related")).reverse.each do |r|
|
171
|
+
defn.next = r.remove
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
149
175
|
def related1(node)
|
150
176
|
lg = node&.at("./ancestor::xmlns:term/@language")&.text
|
151
177
|
@i18n = @i18n_lg[lg] if lg && @i18n_lg[lg]
|
152
|
-
|
178
|
+
p = node.at(ns("./preferred"))
|
179
|
+
ref = node.at(ns("./xref | ./eref | ./termref"))
|
180
|
+
label = @i18n.relatedterms[node["type"]].upcase
|
181
|
+
node.replace(l10n("<p>#{label}: "\
|
182
|
+
"#{p.children.to_xml} (#{ref.to_xml})</p>"))
|
153
183
|
@i18n = @i18n_lg["default"]
|
154
184
|
end
|
155
185
|
|
@@ -171,7 +201,7 @@ module IsoDoc
|
|
171
201
|
|
172
202
|
def termsource1_iev(elem)
|
173
203
|
while elem&.next_element&.name == "termsource"
|
174
|
-
elem << "; #{elem.next_element.remove.children.to_xml}"
|
204
|
+
elem << l10n("; #{elem.next_element.remove.children.to_xml}")
|
175
205
|
end
|
176
206
|
elem.children = l10n("#{@i18n.source}: #{elem.children.to_xml.strip}")
|
177
207
|
end
|
data/spec/isodoc/iev_spec.rb
CHANGED
@@ -661,10 +661,11 @@ RSpec.describe IsoDoc do
|
|
661
661
|
<terms id="_general" obligation="normative"><title>General</title>
|
662
662
|
<term id="item" language="en" tag="item">
|
663
663
|
<preferred><expression language="en"><name>system</name></expression><field-of-application>in dependability</field-of-application></preferred>
|
664
|
-
<preferred><expression language="ar"><name>نظام،</name></expression><field-of-application>في الاعتمادیة</field-of-application></preferred>
|
665
664
|
<preferred><expression language="de"><name>Betrachtungseinheit</name<grammar><gender>feminine</gender></grammar></expression></preferred>
|
666
|
-
<preferred><expression language="de"><name>Einheit</name><grammar><gender>feminine</gender></grammar></expression></preferred>
|
667
665
|
<preferred><expression language="ja"><name>アイテム</name></expression></preferred>
|
666
|
+
<preferred><expression language="de"><name>Einheit</name><grammar><gender>feminine</gender></grammar></expression></preferred>
|
667
|
+
<preferred><expression language="zh"><name>产品</name></expression><field-of-application>在可靠性方面</field-of-application></preferred>
|
668
|
+
<preferred><expression language="ar"><name>نظام،</name></expression><field-of-application>في الاعتمادیة</field-of-application></preferred>
|
668
669
|
<admitted><expression><name>paddy rice</name></expression></admitted>
|
669
670
|
<admitted><expression><name>rough rice</name></expression></admitted>
|
670
671
|
<deprecates><expression><name>cargo rice</name></expression></deprecates>
|
@@ -688,6 +689,7 @@ RSpec.describe IsoDoc do
|
|
688
689
|
<field-of-application>en sûreté de fonctionnement</field-of-application>
|
689
690
|
</preferred>
|
690
691
|
<related type='contrast'><preferred><expression><name>Designation cinquième</name></expression></preferred><xref target="paddy1"/></related>
|
692
|
+
<related type='see'><preferred><expression><name>Designation sixième</name></expression></preferred><xref target="paddy1"/></related>
|
691
693
|
<definition><verbal-definition><p id="_eb29b35e-123e-4d1c-b50b-2714d41e747d">ensemble d’entités reliées entre elles qui satisfont collectivement à une exigence</p></verbal-definition></definition>
|
692
694
|
<termnote id="_671a1994-4783-40d0-bc81-987d06ffb74c">
|
693
695
|
<p id="_19830f33-e46c-42cc-94ca-a5ef101132d5">Un système est considéré comme ayant une frontière définie, réelle ou abstraite.</p>
|
@@ -712,7 +714,7 @@ RSpec.describe IsoDoc do
|
|
712
714
|
INPUT
|
713
715
|
|
714
716
|
presxml = <<~PRESXML
|
715
|
-
|
717
|
+
<iso-standard xmlns='http://riboseinc.com/isoxml' type='presentation'>
|
716
718
|
<bibdata type='standard'>
|
717
719
|
<docidentifier type='ISO'>IEC 60050-192 ED 1</docidentifier>
|
718
720
|
<docnumber>60050</docnumber>
|
@@ -735,20 +737,23 @@ RSpec.describe IsoDoc do
|
|
735
737
|
<admitted>paddy rice</admitted>
|
736
738
|
<admitted>rough rice</admitted>
|
737
739
|
<deprecates>cargo rice</deprecates>
|
740
|
+
<definition>
|
741
|
+
<p id='_eb29b35e-123e-4d1c-b50b-2714d41e747f'>set of interrelated items that collectively fulfil a requirement</p>
|
742
|
+
</definition>
|
738
743
|
<p>
|
739
|
-
|
740
|
-
<
|
741
|
-
<preferred>
|
742
|
-
<strong>Fifth Designation</strong>
|
743
|
-
</preferred>
|
744
|
-
</em>
|
744
|
+
CONTRAST:
|
745
|
+
<strong>Fifth Designation</strong>
|
745
746
|
(
|
746
747
|
<xref target='paddy1'>192-01-02</xref>
|
747
748
|
)
|
748
749
|
</p>
|
749
|
-
<
|
750
|
-
<
|
751
|
-
|
750
|
+
<termexample id='_671a1994-4783-40d0-bc81-987d06ffb740'>
|
751
|
+
<name>EXAMPLE</name>
|
752
|
+
<p id='_19830f33-e46c-42cc-94ca-a5ef101132d0'>
|
753
|
+
External resources (from outside the system boundary) may be
|
754
|
+
required for the system to operate.
|
755
|
+
</p>
|
756
|
+
</termexample>
|
752
757
|
<termnote id='_671a1994-4783-40d0-bc81-987d06ffb74e'>
|
753
758
|
<name>Note 1 to entry</name>
|
754
759
|
<p id='_19830f33-e46c-42cc-94ca-a5ef101132d5'>A system is considered to have a defined real or abstract boundary.</p>
|
@@ -760,43 +765,48 @@ RSpec.describe IsoDoc do
|
|
760
765
|
required for the system to operate.
|
761
766
|
</p>
|
762
767
|
</termnote>
|
763
|
-
<
|
764
|
-
|
765
|
-
<p id='_19830f33-e46c-42cc-94ca-a5ef101132d0'>
|
766
|
-
External resources (from outside the system boundary) may be
|
767
|
-
required for the system to operate.
|
768
|
-
</p>
|
769
|
-
</termexample>
|
770
|
-
<termsource status='modified'>SOURCE:
|
768
|
+
<termsource status='modified'>
|
769
|
+
SOURCE:
|
771
770
|
<origin bibitemid='ISO7301' type='inline' citeas='ISO 7301:2011'>
|
772
771
|
<locality type='clause'>
|
773
772
|
<referenceFrom>3.1</referenceFrom>
|
774
773
|
</locality>
|
775
774
|
ISO 7301:2011, 3.1
|
776
|
-
</origin
|
777
|
-
modified by extension to suit the dependability
|
775
|
+
</origin>
|
776
|
+
, modified – modified by extension to suit the dependability
|
777
|
+
context
|
778
778
|
</termsource>
|
779
779
|
<preferred>
|
780
780
|
<strong>entité</strong>
|
781
781
|
, <en sûreté de fonctionnement>, m
|
782
782
|
</preferred>
|
783
|
-
<p>
|
784
|
-
<strong>CONTRASTEZ:</strong>
|
785
|
-
<em>
|
786
|
-
<preferred>
|
787
|
-
<strong>Designation cinquième</strong>
|
788
|
-
</preferred>
|
789
|
-
</em>
|
790
|
-
(
|
791
|
-
<xref target='paddy1'>192-01-02</xref>
|
792
|
-
)
|
793
|
-
</p>
|
794
783
|
<definition>
|
795
784
|
<p id='_eb29b35e-123e-4d1c-b50b-2714d41e747d'>
|
796
785
|
ensemble d’entités reliées entre elles qui
|
797
786
|
satisfont collectivement à une exigence
|
798
787
|
</p>
|
799
788
|
</definition>
|
789
|
+
<p>
|
790
|
+
CONTRASTEZ:
|
791
|
+
<strong>Designation cinquième</strong>
|
792
|
+
(
|
793
|
+
<xref target='paddy1'>192-01-02</xref>
|
794
|
+
)
|
795
|
+
</p>
|
796
|
+
<p>
|
797
|
+
VOIR:
|
798
|
+
<strong>Designation sixième</strong>
|
799
|
+
(
|
800
|
+
<xref target='paddy1'>192-01-02</xref>
|
801
|
+
)
|
802
|
+
</p>
|
803
|
+
<termexample id='_671a1994-4783-40d0-bc81-987d06ffb741'>
|
804
|
+
<name>EXEMPLE</name>
|
805
|
+
<p id='_19830f33-e46c-42cc-94ca-a5ef101132d1'>
|
806
|
+
External resources (from outside the system boundary) may be
|
807
|
+
required for the system to operate.
|
808
|
+
</p>
|
809
|
+
</termexample>
|
800
810
|
<termnote id='_671a1994-4783-40d0-bc81-987d06ffb74c'>
|
801
811
|
<name>Note 1 à l’article</name>
|
802
812
|
<p id='_19830f33-e46c-42cc-94ca-a5ef101132d5'>
|
@@ -812,51 +822,50 @@ RSpec.describe IsoDoc do
|
|
812
822
|
fonctionnement du système.
|
813
823
|
</p>
|
814
824
|
</termnote>
|
815
|
-
<
|
816
|
-
|
817
|
-
<p id='_19830f33-e46c-42cc-94ca-a5ef101132d1'>
|
818
|
-
External resources (from outside the system boundary) may be
|
819
|
-
required for the system to operate.
|
820
|
-
</p>
|
821
|
-
</termexample>
|
822
|
-
<termsource status='modified'>SOURCE:
|
825
|
+
<termsource status='modified'>
|
826
|
+
SOURCE:
|
823
827
|
<origin bibitemid='ISO7301' type='inline' citeas='ISO 7301:2011'>
|
824
828
|
<locality type='clause'>
|
825
829
|
<referenceFrom>3.1</referenceFrom>
|
826
830
|
</locality>
|
827
831
|
ISO 7301:2011, 3.1
|
828
|
-
</origin
|
829
|
-
modifié pour adapter au contexte de la
|
832
|
+
</origin>
|
833
|
+
, modifié – modifié pour adapter au contexte de la
|
834
|
+
sûreté de fonctionnement
|
830
835
|
</termsource>
|
831
836
|
<dl type='other-lang'>
|
832
837
|
<dt>ar</dt>
|
833
|
-
<dd language=
|
838
|
+
<dd language='ar' script='Arab'>
|
834
839
|
<preferred>
|
835
|
-
|
836
|
-
|
837
|
-
|
840
|
+
<strong>؜نظام،؜</strong>
|
841
|
+
؜, <في
|
842
|
+
الاعتمادیة>؜
|
838
843
|
</preferred>
|
839
844
|
</dd>
|
840
845
|
<dt>de</dt>
|
841
|
-
<dd language=
|
846
|
+
<dd language='de' script='Latn'>
|
842
847
|
<preferred>
|
843
848
|
<strong>Betrachtungseinheit</strong>
|
844
849
|
, f
|
845
850
|
</preferred>
|
846
|
-
</dd>
|
847
|
-
<dt>de</dt>
|
848
|
-
<dd language="de" script="Latn">
|
849
851
|
<preferred>
|
850
852
|
<strong>Einheit</strong>
|
851
853
|
, f
|
852
854
|
</preferred>
|
853
855
|
</dd>
|
854
856
|
<dt>ja</dt>
|
855
|
-
<dd language=
|
857
|
+
<dd language='ja' script='Jpan'>
|
856
858
|
<preferred>
|
857
859
|
<strong>アイテム</strong>
|
858
860
|
</preferred>
|
859
861
|
</dd>
|
862
|
+
<dt>zh</dt>
|
863
|
+
<dd language='zh' script='Hans'>
|
864
|
+
<preferred>
|
865
|
+
<strong>产品</strong>
|
866
|
+
、<在可靠性方面>
|
867
|
+
</preferred>
|
868
|
+
</dd>
|
860
869
|
</dl>
|
861
870
|
</term>
|
862
871
|
<term id='paddy1'>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metanorma-iec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.4.
|
4
|
+
version: 1.4.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-12-
|
11
|
+
date: 2021-12-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: metanorma-iso
|