metanorma-iec 2.0.8 → 2.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +0 -2
- data/lib/isodoc/iec/base_convert.rb +5 -5
- data/lib/isodoc/iec/html/html_iec_titlepage.html +1 -0
- data/lib/isodoc/iec/html/htmlstyle.css +28 -22
- data/lib/isodoc/iec/html/htmlstyle.scss +23 -22
- data/lib/isodoc/iec/html/isodoc.css +19 -11
- data/lib/isodoc/iec/html/isodoc.scss +21 -12
- data/lib/isodoc/iec/i18n.rb +1 -1
- data/lib/isodoc/iec/iec.international-standard.xsl +1632 -336
- data/lib/isodoc/iec/init.rb +6 -5
- data/lib/isodoc/iec/metadata.rb +2 -2
- data/lib/isodoc/iec/presentation_xml_convert.rb +9 -7
- data/lib/isodoc/iec/word_convert.rb +4 -4
- data/lib/isodoc/iec/xref.rb +4 -0
- data/lib/metanorma/iec/biblio.rng +69 -42
- data/lib/metanorma/iec/converter.rb +5 -0
- data/lib/metanorma/iec/front.rb +2 -0
- data/lib/metanorma/iec/iec.rng +1 -0
- data/lib/metanorma/iec/isodoc.rng +65 -0
- data/lib/metanorma/iec/isostandard.rng +35 -12
- data/lib/metanorma/iec/version.rb +1 -1
- data/metanorma-iec.gemspec +3 -2
- data/spec/isodoc/blocks_spec.rb +180 -199
- data/spec/isodoc/i18n_spec.rb +22 -7
- data/spec/isodoc/iev_spec.rb +12 -10
- data/spec/isodoc/inline_spec.rb +255 -249
- data/spec/isodoc/metadata_spec.rb +235 -261
- data/spec/isodoc/postproc_spec.rb +2 -6
- data/spec/isodoc/ref_spec.rb +14 -62
- data/spec/isodoc/section_spec.rb +121 -91
- data/spec/metanorma/base_spec.rb +13 -6
- data/spec/metanorma/cleanup_spec.rb +1 -0
- data/spec/metanorma/iev_spec.rb +3 -0
- data/spec/metanorma/inline_spec.rb +6 -6
- data/spec/spec_helper.rb +9 -1
- metadata +5 -5
data/lib/isodoc/iec/init.rb
CHANGED
@@ -10,12 +10,14 @@ module IsoDoc
|
|
10
10
|
@meta = Metadata.new(lang, script, labels)
|
11
11
|
end
|
12
12
|
|
13
|
-
def xref_init(lang, script,
|
14
|
-
@xrefs = Xref.new(lang, script,
|
13
|
+
def xref_init(lang, script, _klass, labels, options)
|
14
|
+
@xrefs = Xref.new(lang, script,
|
15
|
+
HtmlConvert.new(language: lang, script: script),
|
16
|
+
labels, options)
|
15
17
|
end
|
16
18
|
|
17
|
-
|
18
|
-
@i18n = I18n.new(lang, script, i18nyaml || @i18nyaml)
|
19
|
+
def i18n_init(lang, script, i18nyaml = nil)
|
20
|
+
@i18n = I18n.new(lang, script, i18nyaml: i18nyaml || @i18nyaml)
|
19
21
|
end
|
20
22
|
|
21
23
|
def convert1(docxml, filename, dir)
|
@@ -26,4 +28,3 @@ module IsoDoc
|
|
26
28
|
end
|
27
29
|
end
|
28
30
|
end
|
29
|
-
|
data/lib/isodoc/iec/metadata.rb
CHANGED
@@ -3,7 +3,7 @@ require "metanorma-iso"
|
|
3
3
|
|
4
4
|
module IsoDoc
|
5
5
|
module Iec
|
6
|
-
class
|
6
|
+
class Metadata < IsoDoc::Iso::Metadata
|
7
7
|
def docstatus(isoxml, _out)
|
8
8
|
docstatus = isoxml.at(ns("//bibdata/status/stage"))
|
9
9
|
substage = isoxml.at(ns("//bibdata/status/substage"))
|
@@ -22,7 +22,7 @@ module IsoDoc
|
|
22
22
|
|
23
23
|
def doctype(isoxml, _out)
|
24
24
|
super
|
25
|
-
b = isoxml&.at(ns("//bibdata/ext/doctype#{NOLANG}"))&.text
|
25
|
+
b = isoxml&.at(ns("//bibdata/ext/doctype#{NOLANG}"))&.text
|
26
26
|
b1 = isoxml&.at(ns("//bibdata/ext/doctype[@language = 'en']"))&.text || b
|
27
27
|
b1 and set(:doctype_en, status_print(b1))
|
28
28
|
b1 = isoxml&.at(ns("//bibdata/ext/doctype[@language = 'fr']"))&.text || b
|
@@ -7,8 +7,8 @@ module IsoDoc
|
|
7
7
|
def i18n_init(lang, script, i18nyaml = nil)
|
8
8
|
super
|
9
9
|
@i18n_lg = {}
|
10
|
-
@i18n_lg["en"] = I18n.new("en", "Latn", i18nyaml || @i18nyaml)
|
11
|
-
@i18n_lg["fr"] = I18n.new("fr", "Latn", i18nyaml || @i18nyaml)
|
10
|
+
@i18n_lg["en"] = I18n.new("en", "Latn", i18nyaml: i18nyaml || @i18nyaml)
|
11
|
+
@i18n_lg["fr"] = I18n.new("fr", "Latn", i18nyaml: i18nyaml || @i18nyaml)
|
12
12
|
@i18n_lg["default"] = @i18n
|
13
13
|
end
|
14
14
|
|
@@ -37,18 +37,20 @@ module IsoDoc
|
|
37
37
|
.call(elem)
|
38
38
|
end
|
39
39
|
|
40
|
-
DICT_PATHS = { doctype_dict: "./ext/doctype",
|
40
|
+
DICT_PATHS = { doctype_dict: "./ext/doctype",
|
41
41
|
substage_dict: "./status/substage",
|
42
42
|
function_dict: "./ext/function",
|
43
43
|
horizontal_dict: "./ext/horizontal" }.freeze
|
44
44
|
|
45
45
|
def bibdata_i18n(bib)
|
46
|
-
|
47
|
-
|
48
|
-
[{ lang: "en", i18n: en }, { lang: "fr", i18n: fr }].each do |v|
|
46
|
+
[{ lang: "en", i18n: IsoDoc::Iec::I18n.new("en", "Latn") },
|
47
|
+
{ lang: "fr", i18n: IsoDoc::Iec::I18n.new("fr", "Latn") }].each do |v|
|
49
48
|
DICT_PATHS.each do |lbl, xpath|
|
50
49
|
hash_translate(bib, v[:i18n].get[lbl.to_s], xpath, v[:lang])
|
51
50
|
end
|
51
|
+
bibdata_i18n_stage(bib, bib.at(ns("./status/stage")),
|
52
|
+
bib.at(ns("./ext/doctype")),
|
53
|
+
lang: v[:lang], i18n: v[:i18n])
|
52
54
|
end
|
53
55
|
end
|
54
56
|
|
@@ -89,7 +91,7 @@ module IsoDoc
|
|
89
91
|
fr = docxml.at(ns("//term[@language = 'fr'][@tag = '#{en['tag']}']"))
|
90
92
|
merge_fr_into_en_term1(en, fr) if fr
|
91
93
|
end
|
92
|
-
@xrefs.parse docxml
|
94
|
+
@xrefs.parse_inclusions(clauses: true).parse docxml
|
93
95
|
docxml.xpath(ns("//term/name")).each(&:remove)
|
94
96
|
term(docxml)
|
95
97
|
end
|
@@ -58,7 +58,7 @@ module IsoDoc
|
|
58
58
|
<span lang="EN-GB"><span
|
59
59
|
style='mso-element:field-begin'></span><span
|
60
60
|
style='mso-spacerun:yes'> </span>TOC
|
61
|
-
\\h \\z \\t
|
61
|
+
\\h \\z \\t "TableTitle,tabletitle" <span
|
62
62
|
style='mso-element:field-separator'></span></span>
|
63
63
|
TOC
|
64
64
|
|
@@ -66,7 +66,7 @@ module IsoDoc
|
|
66
66
|
<span lang="EN-GB"><span
|
67
67
|
style='mso-element:field-begin'></span><span
|
68
68
|
style='mso-spacerun:yes'> </span>TOC
|
69
|
-
\\h \\z \\t
|
69
|
+
\\h \\z \\t "FigureTitle,figuretitle" <span
|
70
70
|
style='mso-element:field-separator'></span></span>
|
71
71
|
TOC
|
72
72
|
|
@@ -93,7 +93,7 @@ module IsoDoc
|
|
93
93
|
<span lang="EN-GB"><span
|
94
94
|
style='mso-element:field-begin'></span><span
|
95
95
|
style='mso-spacerun:yes'> </span>TOC
|
96
|
-
\\o
|
96
|
+
\\o "1-#{level}" \\h \\z \\u <span
|
97
97
|
style='mso-element:field-separator'></span></span>
|
98
98
|
TOC
|
99
99
|
end
|
@@ -113,7 +113,7 @@ module IsoDoc
|
|
113
113
|
ret = super
|
114
114
|
css_class =
|
115
115
|
cell.name == "th" || header ? "TABLE-col-heading" : "TABLE-cell"
|
116
|
-
ret.merge(
|
116
|
+
ret.merge(class: css_class)
|
117
117
|
end
|
118
118
|
|
119
119
|
def tr_parse(node, out, ord, totalrows, header)
|
data/lib/isodoc/iec/xref.rb
CHANGED
@@ -17,10 +17,14 @@ module IsoDoc
|
|
17
17
|
super
|
18
18
|
return unless @is_iev
|
19
19
|
|
20
|
+
if @parse_settings.empty? || @parse_settings[:clauses]
|
20
21
|
terms_iev_names(docxml)
|
22
|
+
end
|
23
|
+
if @parse_settings.empty?
|
21
24
|
middle_section_asset_names(docxml)
|
22
25
|
termnote_anchor_names(docxml)
|
23
26
|
termexample_anchor_names(docxml)
|
27
|
+
end
|
24
28
|
end
|
25
29
|
|
26
30
|
def terms_iev_names(docxml)
|
@@ -614,12 +614,12 @@
|
|
614
614
|
<optional>
|
615
615
|
<ref name="fetched"/>
|
616
616
|
</optional>
|
617
|
-
<
|
618
|
-
<oneOrMore>
|
619
|
-
<ref name="btitle"/>
|
620
|
-
</oneOrMore>
|
617
|
+
<optional>
|
621
618
|
<ref name="formattedref"/>
|
622
|
-
</
|
619
|
+
</optional>
|
620
|
+
<oneOrMore>
|
621
|
+
<ref name="btitle"/>
|
622
|
+
</oneOrMore>
|
623
623
|
<zeroOrMore>
|
624
624
|
<ref name="bsource"/>
|
625
625
|
</zeroOrMore>
|
@@ -851,17 +851,46 @@
|
|
851
851
|
</define>
|
852
852
|
<define name="bplace">
|
853
853
|
<element name="place">
|
854
|
-
<
|
855
|
-
<
|
856
|
-
|
857
|
-
|
858
|
-
|
859
|
-
|
860
|
-
|
861
|
-
|
854
|
+
<choice>
|
855
|
+
<text/>
|
856
|
+
<group>
|
857
|
+
<ref name="bibliocity"/>
|
858
|
+
<zeroOrMore>
|
859
|
+
<ref name="biblioregion"/>
|
860
|
+
</zeroOrMore>
|
861
|
+
<zeroOrMore>
|
862
|
+
<ref name="bibliocountry"/>
|
863
|
+
</zeroOrMore>
|
864
|
+
</group>
|
865
|
+
</choice>
|
866
|
+
</element>
|
867
|
+
</define>
|
868
|
+
<define name="bibliocity">
|
869
|
+
<element name="city">
|
862
870
|
<text/>
|
863
871
|
</element>
|
864
872
|
</define>
|
873
|
+
<define name="biblioregion">
|
874
|
+
<element name="region">
|
875
|
+
<ref name="RegionType"/>
|
876
|
+
</element>
|
877
|
+
</define>
|
878
|
+
<define name="bibliocountry">
|
879
|
+
<element name="country">
|
880
|
+
<ref name="RegionType"/>
|
881
|
+
</element>
|
882
|
+
</define>
|
883
|
+
<define name="RegionType">
|
884
|
+
<optional>
|
885
|
+
<attribute name="iso"/>
|
886
|
+
</optional>
|
887
|
+
<optional>
|
888
|
+
<attribute name="recommended">
|
889
|
+
<data type="boolean"/>
|
890
|
+
</attribute>
|
891
|
+
</optional>
|
892
|
+
<text/>
|
893
|
+
</define>
|
865
894
|
<define name="bprice">
|
866
895
|
<element name="price">
|
867
896
|
<attribute name="currency"/>
|
@@ -957,36 +986,34 @@
|
|
957
986
|
<ref name="SeriesType"/>
|
958
987
|
</attribute>
|
959
988
|
</optional>
|
960
|
-
<
|
989
|
+
<optional>
|
961
990
|
<ref name="formattedref"/>
|
962
|
-
|
963
|
-
|
964
|
-
|
965
|
-
|
966
|
-
|
967
|
-
|
968
|
-
|
969
|
-
|
970
|
-
|
971
|
-
|
972
|
-
|
973
|
-
|
974
|
-
|
975
|
-
|
976
|
-
|
977
|
-
|
978
|
-
|
979
|
-
|
980
|
-
|
981
|
-
|
982
|
-
|
983
|
-
|
984
|
-
|
985
|
-
|
986
|
-
|
987
|
-
|
988
|
-
</group>
|
989
|
-
</choice>
|
991
|
+
</optional>
|
992
|
+
<ref name="btitle"/>
|
993
|
+
<optional>
|
994
|
+
<ref name="bplace"/>
|
995
|
+
</optional>
|
996
|
+
<optional>
|
997
|
+
<ref name="seriesorganization"/>
|
998
|
+
</optional>
|
999
|
+
<optional>
|
1000
|
+
<ref name="abbreviation"/>
|
1001
|
+
</optional>
|
1002
|
+
<optional>
|
1003
|
+
<ref name="seriesfrom"/>
|
1004
|
+
</optional>
|
1005
|
+
<optional>
|
1006
|
+
<ref name="seriesto"/>
|
1007
|
+
</optional>
|
1008
|
+
<optional>
|
1009
|
+
<ref name="seriesnumber"/>
|
1010
|
+
</optional>
|
1011
|
+
<optional>
|
1012
|
+
<ref name="seriespartnumber"/>
|
1013
|
+
</optional>
|
1014
|
+
<optional>
|
1015
|
+
<ref name="seriesrun"/>
|
1016
|
+
</optional>
|
990
1017
|
</element>
|
991
1018
|
</define>
|
992
1019
|
<define name="SeriesType">
|
data/lib/metanorma/iec/front.rb
CHANGED
data/lib/metanorma/iec/iec.rng
CHANGED
@@ -32,6 +32,43 @@
|
|
32
32
|
<ref name="DocumentType"/>
|
33
33
|
</element>
|
34
34
|
</define>
|
35
|
+
<define name="admonition">
|
36
|
+
<element name="admonition">
|
37
|
+
<attribute name="type">
|
38
|
+
<ref name="AdmonitionType"/>
|
39
|
+
</attribute>
|
40
|
+
<optional>
|
41
|
+
<attribute name="class"/>
|
42
|
+
</optional>
|
43
|
+
<attribute name="id">
|
44
|
+
<data type="ID"/>
|
45
|
+
</attribute>
|
46
|
+
<optional>
|
47
|
+
<attribute name="uri">
|
48
|
+
<data type="anyURI"/>
|
49
|
+
</attribute>
|
50
|
+
</optional>
|
51
|
+
<optional>
|
52
|
+
<attribute name="coverpage">
|
53
|
+
<data type="boolean"/>
|
54
|
+
</attribute>
|
55
|
+
</optional>
|
56
|
+
<optional>
|
57
|
+
<attribute name="notag">
|
58
|
+
<data type="boolean"/>
|
59
|
+
</attribute>
|
60
|
+
</optional>
|
61
|
+
<optional>
|
62
|
+
<ref name="tname"/>
|
63
|
+
</optional>
|
64
|
+
<zeroOrMore>
|
65
|
+
<ref name="paragraph-with-footnote"/>
|
66
|
+
</zeroOrMore>
|
67
|
+
<zeroOrMore>
|
68
|
+
<ref name="note"/>
|
69
|
+
</zeroOrMore>
|
70
|
+
</element>
|
71
|
+
</define>
|
35
72
|
<define name="index">
|
36
73
|
<element name="index">
|
37
74
|
<optional>
|
@@ -245,6 +282,9 @@
|
|
245
282
|
<ref name="MultilingualRenderingType"/>
|
246
283
|
</attribute>
|
247
284
|
</optional>
|
285
|
+
<optional>
|
286
|
+
<ref name="tname"/>
|
287
|
+
</optional>
|
248
288
|
<oneOrMore>
|
249
289
|
<ref name="ul_li"/>
|
250
290
|
</oneOrMore>
|
@@ -287,6 +327,9 @@
|
|
287
327
|
</choice>
|
288
328
|
</attribute>
|
289
329
|
</optional>
|
330
|
+
<optional>
|
331
|
+
<ref name="tname"/>
|
332
|
+
</optional>
|
290
333
|
<oneOrMore>
|
291
334
|
<ref name="li"/>
|
292
335
|
</oneOrMore>
|
@@ -323,6 +366,9 @@
|
|
323
366
|
<ref name="MultilingualRenderingType"/>
|
324
367
|
</attribute>
|
325
368
|
</optional>
|
369
|
+
<optional>
|
370
|
+
<ref name="tname"/>
|
371
|
+
</optional>
|
326
372
|
<oneOrMore>
|
327
373
|
<ref name="dt"/>
|
328
374
|
<ref name="dd"/>
|
@@ -851,6 +897,16 @@
|
|
851
897
|
<ref name="MultilingualRenderingType"/>
|
852
898
|
</attribute>
|
853
899
|
</optional>
|
900
|
+
<optional>
|
901
|
+
<attribute name="coverpage">
|
902
|
+
<data type="boolean"/>
|
903
|
+
</attribute>
|
904
|
+
</optional>
|
905
|
+
<optional>
|
906
|
+
<attribute name="notag">
|
907
|
+
<data type="boolean"/>
|
908
|
+
</attribute>
|
909
|
+
</optional>
|
854
910
|
<oneOrMore>
|
855
911
|
<choice>
|
856
912
|
<ref name="paragraph"/>
|
@@ -1178,6 +1234,7 @@
|
|
1178
1234
|
<ref name="concept"/>
|
1179
1235
|
<ref name="add"/>
|
1180
1236
|
<ref name="del"/>
|
1237
|
+
<ref name="span"/>
|
1181
1238
|
</choice>
|
1182
1239
|
</define>
|
1183
1240
|
<define name="add">
|
@@ -1204,6 +1261,14 @@
|
|
1204
1261
|
</choice>
|
1205
1262
|
</element>
|
1206
1263
|
</define>
|
1264
|
+
<define name="span">
|
1265
|
+
<element name="span">
|
1266
|
+
<attribute name="class"/>
|
1267
|
+
<oneOrMore>
|
1268
|
+
<ref name="TextElement"/>
|
1269
|
+
</oneOrMore>
|
1270
|
+
</element>
|
1271
|
+
</define>
|
1207
1272
|
<define name="concept">
|
1208
1273
|
<element name="concept">
|
1209
1274
|
<optional>
|
@@ -45,6 +45,7 @@
|
|
45
45
|
<ref name="horizontal"/>
|
46
46
|
</optional>
|
47
47
|
<ref name="editorialgroup"/>
|
48
|
+
<ref name="approvalgroup"/>
|
48
49
|
<zeroOrMore>
|
49
50
|
<ref name="ics"/>
|
50
51
|
</zeroOrMore>
|
@@ -249,6 +250,7 @@
|
|
249
250
|
<value>warning</value>
|
250
251
|
<value>important</value>
|
251
252
|
<value>safety precautions</value>
|
253
|
+
<value>editorial</value>
|
252
254
|
</choice>
|
253
255
|
</define>
|
254
256
|
<define name="preface">
|
@@ -308,18 +310,7 @@
|
|
308
310
|
</define>
|
309
311
|
<define name="editorialgroup">
|
310
312
|
<element name="editorialgroup">
|
311
|
-
<
|
312
|
-
<ref name="technical-committee"/>
|
313
|
-
</oneOrMore>
|
314
|
-
<zeroOrMore>
|
315
|
-
<ref name="subcommittee"/>
|
316
|
-
</zeroOrMore>
|
317
|
-
<zeroOrMore>
|
318
|
-
<ref name="workgroup"/>
|
319
|
-
</zeroOrMore>
|
320
|
-
<optional>
|
321
|
-
<ref name="secretariat"/>
|
322
|
-
</optional>
|
313
|
+
<ref name="ISOProjectGroup"/>
|
323
314
|
</element>
|
324
315
|
</define>
|
325
316
|
<define name="Content-Section">
|
@@ -367,6 +358,33 @@
|
|
367
358
|
</define>
|
368
359
|
</include>
|
369
360
|
<!-- end overrides -->
|
361
|
+
<define name="ISOProjectGroup">
|
362
|
+
<zeroOrMore>
|
363
|
+
<ref name="agency"/>
|
364
|
+
</zeroOrMore>
|
365
|
+
<oneOrMore>
|
366
|
+
<ref name="technical-committee"/>
|
367
|
+
</oneOrMore>
|
368
|
+
<zeroOrMore>
|
369
|
+
<ref name="subcommittee"/>
|
370
|
+
</zeroOrMore>
|
371
|
+
<zeroOrMore>
|
372
|
+
<ref name="workgroup"/>
|
373
|
+
</zeroOrMore>
|
374
|
+
<optional>
|
375
|
+
<ref name="secretariat"/>
|
376
|
+
</optional>
|
377
|
+
</define>
|
378
|
+
<define name="approvalgroup">
|
379
|
+
<element name="approvalgroup">
|
380
|
+
<ref name="ISOProjectGroup"/>
|
381
|
+
</element>
|
382
|
+
</define>
|
383
|
+
<define name="agency">
|
384
|
+
<element name="agency">
|
385
|
+
<text/>
|
386
|
+
</element>
|
387
|
+
</define>
|
370
388
|
<!--
|
371
389
|
We display the Normative References between scope and terms; but to keep the
|
372
390
|
grammar simple, we keep the references together
|
@@ -428,6 +446,11 @@
|
|
428
446
|
<data type="int"/>
|
429
447
|
</element>
|
430
448
|
</define>
|
449
|
+
<define name="approvalgroup">
|
450
|
+
<element name="approvalgroup">
|
451
|
+
<ref name="IsoWorkgroup"/>
|
452
|
+
</element>
|
453
|
+
</define>
|
431
454
|
<define name="subcommittee">
|
432
455
|
<element name="subcommittee">
|
433
456
|
<ref name="IsoWorkgroup"/>
|
data/metanorma-iec.gemspec
CHANGED
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
|
|
11
11
|
spec.email = ["open.source@ribose.com"]
|
12
12
|
|
13
13
|
spec.summary = "metanorma-iec lets you write IEC standards "\
|
14
|
-
|
14
|
+
"in AsciiDoc."
|
15
15
|
spec.description = <<~DESCRIPTION
|
16
16
|
metanorma-iec lets you write IEC standards in AsciiDoc syntax.
|
17
17
|
|
@@ -27,7 +27,7 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.test_files = `git ls-files -- {spec}/*`.split("\n")
|
28
28
|
spec.required_ruby_version = Gem::Requirement.new(">= 2.5.0")
|
29
29
|
|
30
|
-
spec.add_dependency "metanorma-iso", "~> 2.
|
30
|
+
spec.add_dependency "metanorma-iso", "~> 2.1.1"
|
31
31
|
spec.add_dependency "ruby-jing"
|
32
32
|
|
33
33
|
spec.add_development_dependency "debug"
|
@@ -41,4 +41,5 @@ Gem::Specification.new do |spec|
|
|
41
41
|
spec.add_development_dependency "sassc", "2.4.0"
|
42
42
|
spec.add_development_dependency "simplecov", "~> 0.15"
|
43
43
|
spec.add_development_dependency "timecop", "~> 0.9"
|
44
|
+
# spec.metadata["rubygems_mfa_required"] = "true"
|
44
45
|
end
|