metanorma-iso 2.0.0 → 2.0.4
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/Gemfile +1 -1
- data/lib/isodoc/iso/html/html_iso_titlepage.html +1 -1
- data/lib/isodoc/iso/html/isodoc.css +1 -2
- data/lib/isodoc/iso/html/isodoc.scss +0 -1
- data/lib/isodoc/iso/html/style-human.css +19 -14
- data/lib/isodoc/iso/html/style-human.scss +8 -2
- data/lib/isodoc/iso/html/style-iso.css +21 -15
- data/lib/isodoc/iso/html/style-iso.scss +9 -2
- data/lib/isodoc/iso/html/word_iso_titlepage.html +1 -1
- data/lib/isodoc/iso/i18n-en.yaml +22 -0
- data/lib/isodoc/iso/i18n-fr.yaml +22 -1
- data/lib/isodoc/iso/i18n-ru.yaml +42 -0
- data/lib/isodoc/iso/i18n-zh-Hans.yaml +21 -1
- data/lib/isodoc/iso/i18n.rb +1 -0
- data/lib/isodoc/iso/iso.amendment.xsl +2479 -1631
- data/lib/isodoc/iso/iso.international-standard.xsl +2479 -1631
- data/lib/isodoc/iso/metadata.rb +12 -2
- data/lib/isodoc/iso/word_convert.rb +2 -0
- data/lib/metanorma/iso/basicdoc.rng +5 -3
- data/lib/metanorma/iso/biblio.rng +7 -5
- data/lib/metanorma/iso/boilerplate-fr.xml +3 -3
- data/lib/metanorma/iso/boilerplate-ru.xml +39 -0
- data/lib/metanorma/iso/boilerplate.xml +3 -3
- data/lib/metanorma/iso/cleanup.rb +5 -1
- data/lib/metanorma/iso/front.rb +1 -1
- data/lib/metanorma/iso/front_id.rb +1 -0
- data/lib/metanorma/iso/isodoc.rng +142 -4
- data/lib/metanorma/iso/validate.rb +1 -1
- data/lib/metanorma/iso/validate_section.rb +3 -2
- data/lib/metanorma/iso/version.rb +1 -1
- data/spec/isodoc/amd_spec.rb +10 -5
- data/spec/isodoc/i18n_spec.rb +350 -9
- data/spec/isodoc/metadata_spec.rb +153 -3
- data/spec/isodoc/postproc_spec.rb +1 -0
- data/spec/isodoc/section_spec.rb +1 -0
- data/spec/isodoc/xref_spec.rb +18 -18
- data/spec/metanorma/base_spec.rb +439 -370
- data/spec/metanorma/refs_spec.rb +1 -4
- data/spec/metanorma/validate_spec.rb +27 -2
- metadata +4 -4
- data/spec/vcr_cassettes/docrels.yml +0 -393
- data/spec/vcr_cassettes/sortrefs.yml +0 -599
data/lib/isodoc/iso/metadata.rb
CHANGED
@@ -72,12 +72,14 @@ module IsoDoc
|
|
72
72
|
case lang
|
73
73
|
when "en" then "Part"
|
74
74
|
when "fr" then "Partie"
|
75
|
+
when "ru" then "Часть"
|
75
76
|
end
|
76
77
|
end
|
77
78
|
|
78
79
|
def amd_label(lang)
|
79
80
|
case lang
|
80
81
|
when "en", "fr" then "AMENDMENT"
|
82
|
+
when "ru" then "ПОПРАВКА"
|
81
83
|
end
|
82
84
|
end
|
83
85
|
|
@@ -85,6 +87,7 @@ module IsoDoc
|
|
85
87
|
case lang
|
86
88
|
when "en" then "TECHNICAL CORRIGENDUM"
|
87
89
|
when "fr" then "RECTIFICATIF TECHNIQUE"
|
90
|
+
when "ru" then "ТЕХНИЧЕСКОЕ ИСПРАВЛЕНИЕ"
|
88
91
|
end
|
89
92
|
end
|
90
93
|
|
@@ -140,7 +143,11 @@ module IsoDoc
|
|
140
143
|
end
|
141
144
|
|
142
145
|
def title(isoxml, _out)
|
143
|
-
lang = @lang
|
146
|
+
lang = case @lang
|
147
|
+
when "fr" then "fr"
|
148
|
+
when "ru" then "ru"
|
149
|
+
else "en"
|
150
|
+
end
|
144
151
|
intro, main, part, amd = title_parts(isoxml, lang)
|
145
152
|
partnumber, subpartnumber, amdnumber, corrnumber = title_nums(isoxml)
|
146
153
|
|
@@ -159,7 +166,10 @@ module IsoDoc
|
|
159
166
|
end
|
160
167
|
|
161
168
|
def subtitle(isoxml, _out)
|
162
|
-
lang = @lang
|
169
|
+
lang = case @lang
|
170
|
+
when "fr", "ru" then "en"
|
171
|
+
else "fr"
|
172
|
+
end
|
163
173
|
intro, main, part, amd = title_parts(isoxml, lang)
|
164
174
|
partnumber, subpartnumber, amdnumber, corrnumber = title_nums(isoxml)
|
165
175
|
|
@@ -154,11 +154,13 @@ module IsoDoc
|
|
154
154
|
end
|
155
155
|
|
156
156
|
def annex_name(_annex, name, div)
|
157
|
+
preceding_floating_titles(name, div)
|
157
158
|
return if name.nil?
|
158
159
|
|
159
160
|
name&.at(ns("./strong"))&.remove # supplied by CSS list numbering
|
160
161
|
div.h1 **{ class: "Annex" } do |t|
|
161
162
|
name.children.each { |c2| parse(c2, t) }
|
163
|
+
clause_parse_subtitle(name, t)
|
162
164
|
end
|
163
165
|
end
|
164
166
|
|
@@ -173,9 +173,11 @@
|
|
173
173
|
<data type="dateTime"/>
|
174
174
|
</attribute>
|
175
175
|
</optional>
|
176
|
-
<
|
177
|
-
<
|
178
|
-
|
176
|
+
<optional>
|
177
|
+
<attribute name="from">
|
178
|
+
<data type="IDREF"/>
|
179
|
+
</attribute>
|
180
|
+
</optional>
|
179
181
|
<optional>
|
180
182
|
<attribute name="to">
|
181
183
|
<data type="IDREF"/>
|
@@ -209,9 +209,6 @@
|
|
209
209
|
<zeroOrMore>
|
210
210
|
<ref name="contact"/>
|
211
211
|
</zeroOrMore>
|
212
|
-
<zeroOrMore>
|
213
|
-
<ref name="uri"/>
|
214
|
-
</zeroOrMore>
|
215
212
|
</element>
|
216
213
|
</define>
|
217
214
|
<define name="fullname">
|
@@ -401,9 +398,9 @@
|
|
401
398
|
<choice>
|
402
399
|
<!-- iso191606 TODO -->
|
403
400
|
<group>
|
404
|
-
<
|
401
|
+
<zeroOrMore>
|
405
402
|
<ref name="street"/>
|
406
|
-
</
|
403
|
+
</zeroOrMore>
|
407
404
|
<ref name="city"/>
|
408
405
|
<optional>
|
409
406
|
<ref name="state"/>
|
@@ -828,6 +825,11 @@
|
|
828
825
|
<optional>
|
829
826
|
<attribute name="scope"/>
|
830
827
|
</optional>
|
828
|
+
<optional>
|
829
|
+
<attribute name="primary">
|
830
|
+
<data type="boolean"/>
|
831
|
+
</attribute>
|
832
|
+
</optional>
|
831
833
|
<text/>
|
832
834
|
</element>
|
833
835
|
</define>
|
@@ -2,7 +2,7 @@
|
|
2
2
|
<copyright-statement>
|
3
3
|
<clause>
|
4
4
|
<title>DOCUMENT PROTÉGÉ PAR COPYRIGHT</title>
|
5
|
-
<p id="boilerplate-year"
|
5
|
+
<p id="boilerplate-year">© {{ agency }} {{ docyear }}</p>
|
6
6
|
|
7
7
|
<p id="boilerplate-message">
|
8
8
|
Droits de reproduction réservés. Sauf indication contraire, aucune partie de cette publication ne
|
@@ -16,8 +16,8 @@ l’adresse ci-après ou au comité membre de l’ISO dans le pays du demandeur.
|
|
16
16
|
ISO copyright office<br/>
|
17
17
|
Ch. de Blandonnet 8 • CP 401<br/>
|
18
18
|
CH-1214 Vernier, Geneva, Switzerland<br/>
|
19
|
-
Tel
|
20
|
-
Fax
|
19
|
+
Tel.  + 41 22 749 01 11<br/>
|
20
|
+
Fax  + 41 22 749 09 47<br/>
|
21
21
|
Email: copyright@iso.org<br/>
|
22
22
|
Website: www.iso.org
|
23
23
|
</p>
|
@@ -0,0 +1,39 @@
|
|
1
|
+
<boilerplate>
|
2
|
+
<copyright-statement>
|
3
|
+
<clause>
|
4
|
+
<title>ДОКУМЕНТ, ОХРАНЯЕМЫЙ АВТОРСКИМ ПРАВОМ</title>
|
5
|
+
<p id="boilerplate-year">
|
6
|
+
© {{ agency }} {{ docyear }}
|
7
|
+
</p>
|
8
|
+
|
9
|
+
<p id="boilerplate-message">
|
10
|
+
Все права защищены. Если иначе не определено, никакая часть этой публикации не может быть воспроизведена или использована иначе в любой форме или каким-либо образом, электронным или механическим, включая фотокопирование, или публикацию в Интернете или интранете, без предварительного письменного разрешения. Разрешение может быть запрошено ISO по адресу, указанному ниже, или у органа — члена ISO страны запрашивающего.
|
11
|
+
</p>
|
12
|
+
|
13
|
+
<p id="boilerplate-address" align="left">
|
14
|
+
Бюро ISO по охране авторских прав<br/>
|
15
|
+
Ch. de Blandonnet 8 • CP 401<br/>
|
16
|
+
CH-1214 Vernier, Geneva, Switzerland<br/>
|
17
|
+
Tel.  + 41 22 749 01 11<br/>
|
18
|
+
Fax  + 41 22 749 09 47<br/>
|
19
|
+
Электронная почта: copyright@iso.org<br/>
|
20
|
+
Сайт: www.iso.org
|
21
|
+
</p>
|
22
|
+
<p id="boilerplate-place">
|
23
|
+
Издано в Швейцарии
|
24
|
+
</p>
|
25
|
+
</clause>
|
26
|
+
</copyright-statement>
|
27
|
+
|
28
|
+
{% if unpublished %}
|
29
|
+
<license-statement>
|
30
|
+
<clause>
|
31
|
+
<title>Предупреждение для WD и CD</title>
|
32
|
+
|
33
|
+
<p>Этот документ не является международным стандартом ISO. Распространяется для ознакомления и комментариев. Оно может быть изменено без предварительного уведомления и не может упоминаться как международный стандарт.</p>
|
34
|
+
|
35
|
+
<p>Получателям этого проекта предлагается представить вместе со своими комментариями уведомление о любых соответствующих патентных правах, о которых им известно, и предоставить подтверждающую документацию.</p>
|
36
|
+
</clause>
|
37
|
+
</license-statement>
|
38
|
+
{% endif %}
|
39
|
+
</boilerplate>
|
@@ -3,7 +3,7 @@
|
|
3
3
|
<clause>
|
4
4
|
<title>COPYRIGHT PROTECTED DOCUMENT</title>
|
5
5
|
<p id="boilerplate-year">
|
6
|
-
|
6
|
+
© {{ agency }} {{ docyear }}
|
7
7
|
</p>
|
8
8
|
|
9
9
|
<p id="boilerplate-message">
|
@@ -19,8 +19,8 @@ at the address below or ISO's member body in the country of the requester.
|
|
19
19
|
ISO copyright office<br/>
|
20
20
|
Ch. de Blandonnet 8 • CP 401<br/>
|
21
21
|
CH-1214 Vernier, Geneva, Switzerland<br/>
|
22
|
-
Tel
|
23
|
-
Fax
|
22
|
+
Tel.  + 41 22 749 01 11<br/>
|
23
|
+
Fax  + 41 22 749 09 47<br/>
|
24
24
|
Email: copyright@iso.org<br/>
|
25
25
|
Website: www.iso.org
|
26
26
|
</p>
|
@@ -125,7 +125,11 @@ module Metanorma
|
|
125
125
|
end
|
126
126
|
|
127
127
|
def boilerplate_file(_xmldoc)
|
128
|
-
file = @lang
|
128
|
+
file = case @lang
|
129
|
+
when "fr" then "boilerplate-fr.xml"
|
130
|
+
when "ru" then "boilerplate-ru.xml"
|
131
|
+
else "boilerplate.xml"
|
132
|
+
end
|
129
133
|
File.join(@libdir, file)
|
130
134
|
end
|
131
135
|
|
data/lib/metanorma/iso/front.rb
CHANGED
@@ -32,6 +32,43 @@
|
|
32
32
|
<ref name="DocumentType"/>
|
33
33
|
</element>
|
34
34
|
</define>
|
35
|
+
<define name="index">
|
36
|
+
<element name="index">
|
37
|
+
<optional>
|
38
|
+
<attribute name="to">
|
39
|
+
<data type="IDREF"/>
|
40
|
+
</attribute>
|
41
|
+
</optional>
|
42
|
+
<element name="primary">
|
43
|
+
<oneOrMore>
|
44
|
+
<choice>
|
45
|
+
<ref name="PureTextElement"/>
|
46
|
+
<ref name="stem"/>
|
47
|
+
</choice>
|
48
|
+
</oneOrMore>
|
49
|
+
</element>
|
50
|
+
<optional>
|
51
|
+
<element name="secondary">
|
52
|
+
<oneOrMore>
|
53
|
+
<choice>
|
54
|
+
<ref name="PureTextElement"/>
|
55
|
+
<ref name="stem"/>
|
56
|
+
</choice>
|
57
|
+
</oneOrMore>
|
58
|
+
</element>
|
59
|
+
</optional>
|
60
|
+
<optional>
|
61
|
+
<element name="tertiary">
|
62
|
+
<oneOrMore>
|
63
|
+
<choice>
|
64
|
+
<ref name="PureTextElement"/>
|
65
|
+
<ref name="stem"/>
|
66
|
+
</choice>
|
67
|
+
</oneOrMore>
|
68
|
+
</element>
|
69
|
+
</optional>
|
70
|
+
</element>
|
71
|
+
</define>
|
35
72
|
<define name="bibitem">
|
36
73
|
<element name="bibitem">
|
37
74
|
<attribute name="id">
|
@@ -115,9 +152,7 @@
|
|
115
152
|
<data type="boolean"/>
|
116
153
|
</attribute>
|
117
154
|
</optional>
|
118
|
-
<
|
119
|
-
<ref name="PureTextElement"/>
|
120
|
-
</oneOrMore>
|
155
|
+
<ref name="XrefBody"/>
|
121
156
|
</element>
|
122
157
|
</define>
|
123
158
|
<define name="erefType">
|
@@ -151,6 +186,42 @@
|
|
151
186
|
<ref name="PureTextElement"/>
|
152
187
|
</oneOrMore>
|
153
188
|
</define>
|
189
|
+
<define name="localityStack">
|
190
|
+
<element name="localityStack">
|
191
|
+
<optional>
|
192
|
+
<attribute name="connective">
|
193
|
+
<choice>
|
194
|
+
<value>and</value>
|
195
|
+
<value>or</value>
|
196
|
+
<value>from</value>
|
197
|
+
<value>to</value>
|
198
|
+
<value/>
|
199
|
+
</choice>
|
200
|
+
</attribute>
|
201
|
+
</optional>
|
202
|
+
<zeroOrMore>
|
203
|
+
<ref name="locality"/>
|
204
|
+
</zeroOrMore>
|
205
|
+
</element>
|
206
|
+
</define>
|
207
|
+
<define name="sourceLocalityStack">
|
208
|
+
<element name="sourceLocalityStack">
|
209
|
+
<optional>
|
210
|
+
<attribute name="connective">
|
211
|
+
<choice>
|
212
|
+
<value>and</value>
|
213
|
+
<value>or</value>
|
214
|
+
<value>from</value>
|
215
|
+
<value>to</value>
|
216
|
+
<value/>
|
217
|
+
</choice>
|
218
|
+
</attribute>
|
219
|
+
</optional>
|
220
|
+
<zeroOrMore>
|
221
|
+
<ref name="sourceLocality"/>
|
222
|
+
</zeroOrMore>
|
223
|
+
</element>
|
224
|
+
</define>
|
154
225
|
<define name="ul">
|
155
226
|
<element name="ul">
|
156
227
|
<attribute name="id">
|
@@ -1027,6 +1098,26 @@
|
|
1027
1098
|
</zeroOrMore>
|
1028
1099
|
</element>
|
1029
1100
|
</define>
|
1101
|
+
<define name="sub">
|
1102
|
+
<element name="sub">
|
1103
|
+
<zeroOrMore>
|
1104
|
+
<choice>
|
1105
|
+
<ref name="PureTextElement"/>
|
1106
|
+
<ref name="stem"/>
|
1107
|
+
</choice>
|
1108
|
+
</zeroOrMore>
|
1109
|
+
</element>
|
1110
|
+
</define>
|
1111
|
+
<define name="sup">
|
1112
|
+
<element name="sup">
|
1113
|
+
<zeroOrMore>
|
1114
|
+
<choice>
|
1115
|
+
<ref name="PureTextElement"/>
|
1116
|
+
<ref name="stem"/>
|
1117
|
+
</choice>
|
1118
|
+
</zeroOrMore>
|
1119
|
+
</element>
|
1120
|
+
</define>
|
1030
1121
|
<define name="pagebreak">
|
1031
1122
|
<element name="pagebreak">
|
1032
1123
|
<optional>
|
@@ -1041,6 +1132,16 @@
|
|
1041
1132
|
</define>
|
1042
1133
|
</include>
|
1043
1134
|
<!-- end overrides -->
|
1135
|
+
<define name="image" combine="choice">
|
1136
|
+
<element name="svg">
|
1137
|
+
<oneOrMore>
|
1138
|
+
<choice>
|
1139
|
+
<text/>
|
1140
|
+
<ref name="AnyElement"/>
|
1141
|
+
</choice>
|
1142
|
+
</oneOrMore>
|
1143
|
+
</element>
|
1144
|
+
</define>
|
1044
1145
|
<define name="MultilingualRenderingType">
|
1045
1146
|
<choice>
|
1046
1147
|
<value>common</value>
|
@@ -2216,7 +2317,18 @@
|
|
2216
2317
|
<ref name="MultilingualRenderingType"/>
|
2217
2318
|
</attribute>
|
2218
2319
|
</optional>
|
2219
|
-
<
|
2320
|
+
<oneOrMore>
|
2321
|
+
<choice>
|
2322
|
+
<ref name="formula"/>
|
2323
|
+
<ref name="ul"/>
|
2324
|
+
<ref name="ol"/>
|
2325
|
+
<ref name="dl"/>
|
2326
|
+
<ref name="quote"/>
|
2327
|
+
<ref name="sourcecode"/>
|
2328
|
+
<ref name="paragraph"/>
|
2329
|
+
<ref name="figure"/>
|
2330
|
+
</choice>
|
2331
|
+
</oneOrMore>
|
2220
2332
|
</element>
|
2221
2333
|
</define>
|
2222
2334
|
<define name="termsource">
|
@@ -2563,4 +2675,30 @@
|
|
2563
2675
|
</zeroOrMore>
|
2564
2676
|
</element>
|
2565
2677
|
</define>
|
2678
|
+
<define name="XrefBody">
|
2679
|
+
<zeroOrMore>
|
2680
|
+
<ref name="XrefTarget"/>
|
2681
|
+
</zeroOrMore>
|
2682
|
+
<oneOrMore>
|
2683
|
+
<ref name="PureTextElement"/>
|
2684
|
+
</oneOrMore>
|
2685
|
+
</define>
|
2686
|
+
<define name="XrefTarget">
|
2687
|
+
<element name="location">
|
2688
|
+
<attribute name="target">
|
2689
|
+
<data type="string">
|
2690
|
+
<param name="pattern">\i\c*|\c+#\c+</param>
|
2691
|
+
</data>
|
2692
|
+
</attribute>
|
2693
|
+
<attribute name="connective">
|
2694
|
+
<choice>
|
2695
|
+
<value>and</value>
|
2696
|
+
<value>or</value>
|
2697
|
+
<value>from</value>
|
2698
|
+
<value>to</value>
|
2699
|
+
<value/>
|
2700
|
+
</choice>
|
2701
|
+
</attribute>
|
2702
|
+
</element>
|
2703
|
+
</define>
|
2566
2704
|
</grammar>
|
@@ -40,7 +40,8 @@ module Metanorma
|
|
40
40
|
def symbols_validate(root)
|
41
41
|
f = root.xpath("//definitions")
|
42
42
|
f.empty? && return
|
43
|
-
(f.size == 1
|
43
|
+
(f.size == 1 || @vocab) or
|
44
|
+
@log.add("Style", f.first, ONE_SYMBOLS_WARNING)
|
44
45
|
f.first.elements.each do |e|
|
45
46
|
unless %w(title dl).include? e.name
|
46
47
|
@log.add("Style", f.first, NON_DL_SYMBOLS_WARNING)
|
@@ -100,7 +101,7 @@ module Metanorma
|
|
100
101
|
|
101
102
|
def sections_sequence_validate(root)
|
102
103
|
names, n = sections_sequence_validate_start(root)
|
103
|
-
if
|
104
|
+
if @vocab
|
104
105
|
names, n = sections_sequence_validate_body_vocab(names, n)
|
105
106
|
else
|
106
107
|
names, n = sections_sequence_validate_body(names, n)
|
data/spec/isodoc/amd_spec.rb
CHANGED
@@ -74,6 +74,7 @@ RSpec.describe IsoDoc do
|
|
74
74
|
<bibdata>
|
75
75
|
<ext>
|
76
76
|
<doctype language="">amendment</doctype>
|
77
|
+
<doctype language='en'>Amendment</doctype>
|
77
78
|
</ext>
|
78
79
|
</bibdata>
|
79
80
|
<preface>
|
@@ -243,9 +244,9 @@ RSpec.describe IsoDoc do
|
|
243
244
|
<bibdata>
|
244
245
|
<ext>
|
245
246
|
<doctype language=''>amendment</doctype>
|
247
|
+
<doctype language='en'>Amendment</doctype>
|
246
248
|
</ext>
|
247
249
|
</bibdata>
|
248
|
-
|
249
250
|
<preface>
|
250
251
|
<foreword obligation='informative' displayorder='1'>
|
251
252
|
<title>Foreword</title>
|
@@ -436,6 +437,7 @@ RSpec.describe IsoDoc do
|
|
436
437
|
<bibdata>
|
437
438
|
<ext>
|
438
439
|
<doctype language="">amendment</doctype>
|
440
|
+
<doctype language='en'>Amendment</doctype>
|
439
441
|
</ext>
|
440
442
|
</bibdata>
|
441
443
|
<boilerplate>
|
@@ -636,10 +638,13 @@ RSpec.describe IsoDoc do
|
|
636
638
|
</body>
|
637
639
|
</html>
|
638
640
|
OUTPUT
|
639
|
-
expect(xmlpp(IsoDoc::Iso::PresentationXMLConvert.new({})
|
640
|
-
.
|
641
|
-
|
642
|
-
|
641
|
+
expect(xmlpp(IsoDoc::Iso::PresentationXMLConvert.new({})
|
642
|
+
.convert("test", input, true))
|
643
|
+
.sub(%r{<localized-strings>.*</localized-strings>}m, ""))
|
644
|
+
.to be_equivalent_to xmlpp(presxml)
|
645
|
+
expect(xmlpp(IsoDoc::Iso::HtmlConvert.new({})
|
646
|
+
.convert("test", presxml, true)))
|
647
|
+
.to be_equivalent_to xmlpp(html)
|
643
648
|
end
|
644
649
|
|
645
650
|
it "processes IsoXML metadata" do
|