metanorma-iec 1.4.5 → 2.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/rake.yml +4 -32
- data/.gitignore +14 -0
- data/Gemfile +4 -0
- data/lib/isodoc/iec/base_convert.rb +3 -2
- data/lib/isodoc/iec/html/htmlstyle.css +23 -17
- data/lib/isodoc/iec/html/htmlstyle.scss +9 -3
- data/lib/isodoc/iec/html/isodoc.css +1 -2
- data/lib/isodoc/iec/html/isodoc.scss +0 -1
- data/lib/isodoc/iec/html_convert.rb +2 -1
- data/lib/isodoc/iec/i18n-fr.yaml +1 -1
- data/lib/isodoc/iec/iec.international-standard.xsl +2198 -1850
- data/lib/isodoc/iec/word_convert.rb +2 -0
- data/lib/isodoc/iec/xref.rb +9 -8
- data/lib/{asciidoctor → metanorma}/iec/basicdoc.rng +5 -3
- data/lib/{asciidoctor → metanorma}/iec/biblio.rng +7 -5
- data/lib/{asciidoctor → metanorma}/iec/converter.rb +22 -8
- data/lib/{asciidoctor → metanorma}/iec/front.rb +1 -1
- data/lib/{asciidoctor → metanorma}/iec/iec.rng +0 -0
- data/lib/{asciidoctor → metanorma}/iec/iec_intro_en.xml +0 -0
- data/lib/{asciidoctor → metanorma}/iec/iec_intro_fr.xml +0 -0
- data/lib/{asciidoctor → metanorma}/iec/isodoc.rng +98 -1
- data/lib/{asciidoctor → metanorma}/iec/isostandard.rng +0 -0
- data/lib/{asciidoctor → metanorma}/iec/reqt.rng +0 -0
- data/lib/metanorma/iec/version.rb +1 -1
- data/lib/metanorma-iec.rb +1 -1
- data/metanorma-iec.gemspec +1 -1
- data/spec/isodoc/i18n_spec.rb +2 -2
- data/spec/isodoc/iev_spec.rb +6 -5
- data/spec/isodoc/ref_spec.rb +359 -353
- data/spec/{asciidoctor → metanorma}/base_spec.rb +1 -1
- data/spec/{asciidoctor → metanorma}/blocks_spec.rb +1 -1
- data/spec/{asciidoctor → metanorma}/cleanup_spec.rb +1 -1
- data/spec/{asciidoctor → metanorma}/iev_spec.rb +10 -2
- data/spec/{asciidoctor → metanorma}/inline_spec.rb +1 -1
- data/spec/{asciidoctor → metanorma}/lists_spec.rb +1 -1
- data/spec/{asciidoctor → metanorma}/section_spec.rb +1 -1
- data/spec/{asciidoctor → metanorma}/validate_spec.rb +1 -1
- data/spec/spec_helper.rb +2 -2
- metadata +22 -22
@@ -221,10 +221,12 @@ module IsoDoc
|
|
221
221
|
end
|
222
222
|
|
223
223
|
def annex_name(_annex, name, div)
|
224
|
+
preceding_floating_titles(name, div)
|
224
225
|
return if name.nil?
|
225
226
|
|
226
227
|
div.h1 **{ class: "Annex" } do |t|
|
227
228
|
name.children.each { |c2| parse(c2, t) }
|
229
|
+
clause_parse_subtitle(name, t)
|
228
230
|
end
|
229
231
|
end
|
230
232
|
|
data/lib/isodoc/iec/xref.rb
CHANGED
@@ -16,6 +16,7 @@ module IsoDoc
|
|
16
16
|
def initial_anchor_names(d)
|
17
17
|
super
|
18
18
|
return unless @is_iev
|
19
|
+
|
19
20
|
terms_iev_names(d)
|
20
21
|
middle_section_asset_names(d)
|
21
22
|
termnote_anchor_names(d)
|
@@ -24,21 +25,21 @@ module IsoDoc
|
|
24
25
|
|
25
26
|
def terms_iev_names(d)
|
26
27
|
d.xpath(ns("//sections/clause/terms")).each_with_index do |t, i|
|
27
|
-
num = "#{@iev_part}-%02d" % [i+1]
|
28
|
+
num = "#{@iev_part}-%02d" % [i + 1]
|
28
29
|
@anchors[t["id"]] =
|
29
|
-
{ label: num, xref: l10n("#{@labels[
|
30
|
-
type: "clause" }
|
31
|
-
t.xpath(ns("./term")).each_with_index do |c,
|
32
|
-
num2 = "%02d" % [
|
30
|
+
{ label: num, xref: l10n("#{@labels['section_iev']} #{num}"),
|
31
|
+
level: 2, type: "clause" }
|
32
|
+
t.xpath(ns("./term")).each_with_index do |c, j|
|
33
|
+
num2 = "%02d" % [j + 1]
|
33
34
|
section_names1(c, "#{num}-#{num2}", 3)
|
34
35
|
end
|
35
36
|
end
|
36
37
|
end
|
37
38
|
|
38
39
|
def annex_name_lbl(clause, num)
|
39
|
-
obl = l10n("(#{@labels[
|
40
|
-
obl = l10n("(#{@labels[
|
41
|
-
l10n("<strong>#{@labels[
|
40
|
+
obl = l10n("(#{@labels['inform_annex']})")
|
41
|
+
obl = l10n("(#{@labels['norm_annex']})") if clause["obligation"] == "normative"
|
42
|
+
l10n("<strong>#{@labels['annex']} #{num}</strong><br/>#{obl}")
|
42
43
|
end
|
43
44
|
end
|
44
45
|
end
|
@@ -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>
|
@@ -1,8 +1,9 @@
|
|
1
1
|
require "asciidoctor"
|
2
2
|
require "metanorma-iso"
|
3
|
+
require "metanorma/iso/converter"
|
3
4
|
require_relative "./front"
|
4
5
|
|
5
|
-
module
|
6
|
+
module Metanorma
|
6
7
|
module Iec
|
7
8
|
class Converter < ISO::Converter
|
8
9
|
XML_ROOT_TAG = "iec-standard".freeze
|
@@ -81,13 +82,6 @@ module Asciidoctor
|
|
81
82
|
end
|
82
83
|
end
|
83
84
|
|
84
|
-
def norm_ref_preface(node)
|
85
|
-
return super unless @is_iev
|
86
|
-
|
87
|
-
node.at("./title").next =
|
88
|
-
"<p>#{@i18n.norm_empty_pref}</p>"
|
89
|
-
end
|
90
|
-
|
91
85
|
def term_defs_boilerplate(div, source, term, preface, isodoc)
|
92
86
|
return super unless @is_iev
|
93
87
|
end
|
@@ -117,6 +111,26 @@ module Asciidoctor
|
|
117
111
|
end
|
118
112
|
|
119
113
|
def image_name_validate(xmldoc); end
|
114
|
+
|
115
|
+
def toc_cleanup(xmldoc)
|
116
|
+
toc_iev_cleanup(xmldoc) if @is_iev
|
117
|
+
super
|
118
|
+
end
|
119
|
+
|
120
|
+
def toc_iev_cleanup(xmldoc)
|
121
|
+
iev_variant_titles(xmldoc)
|
122
|
+
end
|
123
|
+
|
124
|
+
def iev_variant_titles(xmldoc)
|
125
|
+
id = xmldoc&.at("//bibdata/docidentifier[@type = 'ISO']")&.text
|
126
|
+
m = /60050-(\d+)/.match(id) or return
|
127
|
+
xmldoc.xpath("//sections/clause/terms/title").each_with_index do |t, i|
|
128
|
+
num = "%02d" % [i + 1]
|
129
|
+
t.next = "<variant-title type='toc'>"\
|
130
|
+
"#{@i18n.section_iev} #{m[1]}-#{num} – "\
|
131
|
+
"#{t.children.to_xml}</variant-title>"
|
132
|
+
end
|
133
|
+
end
|
120
134
|
end
|
121
135
|
end
|
122
136
|
end
|
File without changes
|
File without changes
|
File without changes
|
@@ -32,6 +32,56 @@
|
|
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>
|
72
|
+
<define name="bibitem">
|
73
|
+
<element name="bibitem">
|
74
|
+
<attribute name="id">
|
75
|
+
<data type="ID"/>
|
76
|
+
</attribute>
|
77
|
+
<optional>
|
78
|
+
<attribute name="hidden">
|
79
|
+
<data type="boolean"/>
|
80
|
+
</attribute>
|
81
|
+
</optional>
|
82
|
+
<ref name="BibliographicItem"/>
|
83
|
+
</element>
|
84
|
+
</define>
|
35
85
|
<define name="section-title">
|
36
86
|
<element name="title">
|
37
87
|
<zeroOrMore>
|
@@ -690,6 +740,7 @@
|
|
690
740
|
<ref name="terms"/>
|
691
741
|
<ref name="term-clause"/>
|
692
742
|
<ref name="definitions"/>
|
743
|
+
<ref name="floating-title"/>
|
693
744
|
</choice>
|
694
745
|
</oneOrMore>
|
695
746
|
</element>
|
@@ -1013,6 +1064,26 @@
|
|
1013
1064
|
</zeroOrMore>
|
1014
1065
|
</element>
|
1015
1066
|
</define>
|
1067
|
+
<define name="sub">
|
1068
|
+
<element name="sub">
|
1069
|
+
<zeroOrMore>
|
1070
|
+
<choice>
|
1071
|
+
<ref name="PureTextElement"/>
|
1072
|
+
<ref name="stem"/>
|
1073
|
+
</choice>
|
1074
|
+
</zeroOrMore>
|
1075
|
+
</element>
|
1076
|
+
</define>
|
1077
|
+
<define name="sup">
|
1078
|
+
<element name="sup">
|
1079
|
+
<zeroOrMore>
|
1080
|
+
<choice>
|
1081
|
+
<ref name="PureTextElement"/>
|
1082
|
+
<ref name="stem"/>
|
1083
|
+
</choice>
|
1084
|
+
</zeroOrMore>
|
1085
|
+
</element>
|
1086
|
+
</define>
|
1016
1087
|
<define name="pagebreak">
|
1017
1088
|
<element name="pagebreak">
|
1018
1089
|
<optional>
|
@@ -1680,6 +1751,7 @@
|
|
1680
1751
|
<ref name="clause-subsection"/>
|
1681
1752
|
<ref name="terms"/>
|
1682
1753
|
<ref name="definitions"/>
|
1754
|
+
<ref name="floating-title"/>
|
1683
1755
|
</choice>
|
1684
1756
|
</oneOrMore>
|
1685
1757
|
</choice>
|
@@ -1722,6 +1794,7 @@
|
|
1722
1794
|
<ref name="terms"/>
|
1723
1795
|
<ref name="definitions"/>
|
1724
1796
|
<ref name="references"/>
|
1797
|
+
<ref name="floating-title"/>
|
1725
1798
|
</choice>
|
1726
1799
|
</zeroOrMore>
|
1727
1800
|
</group>
|
@@ -2200,7 +2273,18 @@
|
|
2200
2273
|
<ref name="MultilingualRenderingType"/>
|
2201
2274
|
</attribute>
|
2202
2275
|
</optional>
|
2203
|
-
<
|
2276
|
+
<oneOrMore>
|
2277
|
+
<choice>
|
2278
|
+
<ref name="formula"/>
|
2279
|
+
<ref name="ul"/>
|
2280
|
+
<ref name="ol"/>
|
2281
|
+
<ref name="dl"/>
|
2282
|
+
<ref name="quote"/>
|
2283
|
+
<ref name="sourcecode"/>
|
2284
|
+
<ref name="paragraph"/>
|
2285
|
+
<ref name="figure"/>
|
2286
|
+
</choice>
|
2287
|
+
</oneOrMore>
|
2204
2288
|
</element>
|
2205
2289
|
</define>
|
2206
2290
|
<define name="termsource">
|
@@ -2534,4 +2618,17 @@
|
|
2534
2618
|
</oneOrMore>
|
2535
2619
|
</element>
|
2536
2620
|
</define>
|
2621
|
+
<define name="floating-title">
|
2622
|
+
<element name="floating-title">
|
2623
|
+
<attribute name="id">
|
2624
|
+
<data type="ID"/>
|
2625
|
+
</attribute>
|
2626
|
+
<attribute name="depth">
|
2627
|
+
<data type="int"/>
|
2628
|
+
</attribute>
|
2629
|
+
<zeroOrMore>
|
2630
|
+
<ref name="TextElement"/>
|
2631
|
+
</zeroOrMore>
|
2632
|
+
</element>
|
2633
|
+
</define>
|
2537
2634
|
</grammar>
|
File without changes
|
File without changes
|
data/lib/metanorma-iec.rb
CHANGED
data/metanorma-iec.gemspec
CHANGED
@@ -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", "~>
|
30
|
+
spec.add_dependency "metanorma-iso", "~> 2.0.0"
|
31
31
|
spec.add_dependency "ruby-jing"
|
32
32
|
|
33
33
|
spec.add_development_dependency "debug"
|
data/spec/isodoc/i18n_spec.rb
CHANGED
@@ -83,7 +83,7 @@ RSpec.describe IsoDoc do
|
|
83
83
|
<docnumber>1</docnumber>
|
84
84
|
<language current="true">en</language>
|
85
85
|
<ext>
|
86
|
-
<doctype language="">international-standard</doctype><doctype language="fr">Norme
|
86
|
+
<doctype language="">international-standard</doctype><doctype language="fr">Norme internationale</doctype><doctype language="en">International Standard</doctype>
|
87
87
|
<horizontal language="">true</horizontal><horizontal language="fr">Norme horizontale</horizontal><horizontal language="en">Horizontal Standard</horizontal>
|
88
88
|
<function language="">emc</function><function language="fr">Publication fondamentale en CEM</function><function language="en">Basic EMC Publication</function>
|
89
89
|
</ext>
|
@@ -444,7 +444,7 @@ RSpec.describe IsoDoc do
|
|
444
444
|
<bibdata>
|
445
445
|
<language current="true">fr</language>
|
446
446
|
<ext>
|
447
|
-
<doctype language="">international-standard</doctype><doctype language="fr">Norme
|
447
|
+
<doctype language="">international-standard</doctype><doctype language="fr">Norme internationale</doctype><doctype language="en">International Standard</doctype>
|
448
448
|
<horizontal language="">false</horizontal>
|
449
449
|
<function language="">emc</function><function language="fr">Publication fondamentale en CEM</function><function language="en">Basic EMC Publication</function>
|
450
450
|
</ext>
|
data/spec/isodoc/iev_spec.rb
CHANGED
@@ -211,6 +211,7 @@ RSpec.describe IsoDoc do
|
|
211
211
|
<formattedref format='application/x-isodoc+xml'>
|
212
212
|
<em>TITLE</em>
|
213
213
|
</formattedref>
|
214
|
+
<docidentifier type='metanorma-ordinal'>[1]</docidentifier>
|
214
215
|
<docidentifier>B</docidentifier>
|
215
216
|
</bibitem>
|
216
217
|
</references>
|
@@ -369,9 +370,9 @@ RSpec.describe IsoDoc do
|
|
369
370
|
<h1>1  Terms and definitions</h1>
|
370
371
|
<br/>
|
371
372
|
<div id='_general'>
|
372
|
-
<
|
373
|
+
<h2 class='zzSTDTitle2'>
|
373
374
|
<b>192-01 General</b>
|
374
|
-
</
|
375
|
+
</h2>
|
375
376
|
<p class='TermNum' id='paddy1'>192-01-01</p>
|
376
377
|
<p class='Terms' style='text-align:left;'>
|
377
378
|
<b>paddy</b>
|
@@ -537,9 +538,9 @@ RSpec.describe IsoDoc do
|
|
537
538
|
</p>
|
538
539
|
<div>
|
539
540
|
<a name='_general' id='_general'/>
|
540
|
-
<
|
541
|
+
<h2 class='zzSTDTitle2'>
|
541
542
|
<b>192-01 General</b>
|
542
|
-
</
|
543
|
+
</h2>
|
543
544
|
<p class='TermNum'>
|
544
545
|
<a name='paddy1' id='paddy1'/>
|
545
546
|
192-01-01
|
@@ -600,7 +601,7 @@ RSpec.describe IsoDoc do
|
|
600
601
|
<docnumber>60050</docnumber>
|
601
602
|
<ext>
|
602
603
|
<doctype language=''>international-standard</doctype>
|
603
|
-
<doctype language='fr'>Norme
|
604
|
+
<doctype language='fr'>Norme internationale</doctype>
|
604
605
|
<doctype language='en'>International Standard</doctype>
|
605
606
|
<horizontal language=''>false</horizontal>
|
606
607
|
<structuredidentifier>
|