metanorma-iec 2.2.4 → 2.2.5
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/iec/html/htmlstyle.css +4 -0
- data/lib/isodoc/iec/html/htmlstyle.scss +6 -0
- data/lib/isodoc/iec/iec.international-standard.xsl +1041 -835
- data/lib/isodoc/iec/presentation_xml_convert.rb +6 -0
- data/lib/metanorma/iec/biblio.rng +11 -1
- data/lib/metanorma/iec/converter.rb +4 -3
- data/lib/metanorma/iec/front.rb +7 -5
- data/lib/metanorma/iec/isodoc.rng +10 -0
- data/lib/metanorma/iec/version.rb +1 -1
- data/lib/relaton/render-iec/config.yml +57 -0
- data/lib/relaton/render-iec/general.rb +20 -0
- data/lib/relaton/render-iec/parse.rb +20 -0
- metadata +5 -2
@@ -1,5 +1,6 @@
|
|
1
1
|
require_relative "init"
|
2
2
|
require "isodoc"
|
3
|
+
require_relative "../../relaton/render-iec/general"
|
3
4
|
|
4
5
|
module IsoDoc
|
5
6
|
module Iec
|
@@ -233,6 +234,11 @@ module IsoDoc
|
|
233
234
|
@i18n = @i18n_lg["default"]
|
234
235
|
end
|
235
236
|
|
237
|
+
def bibrenderer
|
238
|
+
::Relaton::Render::Iec::General.new(language: @lang,
|
239
|
+
i18nhash: @i18n.get)
|
240
|
+
end
|
241
|
+
|
236
242
|
include Init
|
237
243
|
end
|
238
244
|
end
|
@@ -216,6 +216,9 @@
|
|
216
216
|
<optional>
|
217
217
|
<ref name="fullname"/>
|
218
218
|
</optional>
|
219
|
+
<zeroOrMore>
|
220
|
+
<ref name="credential"/>
|
221
|
+
</zeroOrMore>
|
219
222
|
<zeroOrMore>
|
220
223
|
<ref name="affiliation"/>
|
221
224
|
</zeroOrMore>
|
@@ -232,6 +235,11 @@
|
|
232
235
|
<ref name="FullNameType"/>
|
233
236
|
</element>
|
234
237
|
</define>
|
238
|
+
<define name="credential">
|
239
|
+
<element name="credential">
|
240
|
+
<text/>
|
241
|
+
</element>
|
242
|
+
</define>
|
235
243
|
<define name="FullNameType">
|
236
244
|
<choice>
|
237
245
|
<group>
|
@@ -305,7 +313,9 @@
|
|
305
313
|
<zeroOrMore>
|
306
314
|
<ref name="affiliationdescription"/>
|
307
315
|
</zeroOrMore>
|
308
|
-
<
|
316
|
+
<optional>
|
317
|
+
<ref name="organization"/>
|
318
|
+
</optional>
|
309
319
|
</element>
|
310
320
|
</define>
|
311
321
|
<define name="affiliationname">
|
@@ -134,7 +134,8 @@ module Metanorma
|
|
134
134
|
|
135
135
|
def ol_attrs(node)
|
136
136
|
attr_code(keep_attrs(node)
|
137
|
-
.merge(id: ::Metanorma::Utils::anchor_or_uuid(node)
|
137
|
+
.merge(id: ::Metanorma::Utils::anchor_or_uuid(node),
|
138
|
+
"explicit-type": olist_style(node.attributes[1])))
|
138
139
|
end
|
139
140
|
|
140
141
|
# TODO remove when I adopt pubid-iec
|
@@ -143,11 +144,11 @@ module Metanorma
|
|
143
144
|
xmldoc.xpath("//bibdata/contributor[role/@type = 'publisher']" \
|
144
145
|
"/organization").each_with_object([]) do |x, prefix|
|
145
146
|
x1 = x.at("abbreviation")&.text || x.at("name")&.text
|
146
|
-
#(x1 == "IEC" and prefix.unshift("IEC")) or prefix << x1
|
147
|
+
# (x1 == "IEC" and prefix.unshift("IEC")) or prefix << x1
|
147
148
|
prefix << x1
|
148
149
|
end
|
149
150
|
end
|
150
|
-
|
151
|
+
|
151
152
|
def docidentifier_cleanup(xmldoc)
|
152
153
|
prefix = get_id_prefix(xmldoc)
|
153
154
|
id = xmldoc.at("//bibdata/docidentifier[@type = 'ISO']") or return
|
data/lib/metanorma/iec/front.rb
CHANGED
@@ -42,12 +42,14 @@ module Metanorma
|
|
42
42
|
end
|
43
43
|
|
44
44
|
def iso_id(node, xml)
|
45
|
-
return unless node.attr("docnumber")
|
45
|
+
return unless node.attr("docnumber") || node.attr("docidentifier")
|
46
46
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
47
|
+
unless dn = node.attr("docidentifier")
|
48
|
+
part, subpart = node&.attr("partnumber")&.split(/-/)
|
49
|
+
dn = add_id_parts(node.attr("docnumber"), part, subpart)
|
50
|
+
dn = id_stage_prefix(dn, node)
|
51
|
+
dn = id_edition_suffix(dn, node)
|
52
|
+
end
|
51
53
|
xml.docidentifier dn, **attr_code(type: "ISO")
|
52
54
|
end
|
53
55
|
|
@@ -1578,6 +1578,9 @@
|
|
1578
1578
|
<zeroOrMore>
|
1579
1579
|
<ref name="indexsect"/>
|
1580
1580
|
</zeroOrMore>
|
1581
|
+
<optional>
|
1582
|
+
<ref name="colophon"/>
|
1583
|
+
</optional>
|
1581
1584
|
</element>
|
1582
1585
|
</define>
|
1583
1586
|
<define name="misccontainer">
|
@@ -1600,6 +1603,13 @@
|
|
1600
1603
|
</oneOrMore>
|
1601
1604
|
</element>
|
1602
1605
|
</define>
|
1606
|
+
<define name="colophon">
|
1607
|
+
<element name="colophon">
|
1608
|
+
<oneOrMore>
|
1609
|
+
<ref name="content"/>
|
1610
|
+
</oneOrMore>
|
1611
|
+
</element>
|
1612
|
+
</define>
|
1603
1613
|
<define name="foreword">
|
1604
1614
|
<element name="foreword">
|
1605
1615
|
<ref name="Content-Section"/>
|
@@ -0,0 +1,57 @@
|
|
1
|
+
extenttemplate:
|
2
|
+
book: "{{ volume }} {{ page }}"
|
3
|
+
booklet: book
|
4
|
+
proceedings: book
|
5
|
+
journal: book
|
6
|
+
standard: book
|
7
|
+
techreport: book
|
8
|
+
inbook: "{{ volume }} {{ page }}"
|
9
|
+
misc: "{{ volume }} {{issue}} {{ page }}, {{ duration }}"
|
10
|
+
nametemplate:
|
11
|
+
one: "{% if nonpersonal[0] %}{{ nonpersonal[0] }}{% else %}{{surname[0]}} {{initials[0] | join: ''}}.{% endif %}"
|
12
|
+
two: "{% if nonpersonal[0] %}{{ nonpersonal[0] }}{% else %}{{surname[0]}} {{initials[0] | join: ''}}.{% endif %} , & {% if nonpersonal[1] %}{{ nonpersonal[1] }}{% else %}{{surname[1]}} {{initials[1] | join: ''}}.{% endif %}"
|
13
|
+
more: "{% if nonpersonal[0] %}{{ nonpersonal[0] }}{% else %}{{surname[0]}} {{initials[0] | join: ''}}.{% endif %} , {% if nonpersonal[1] %}{{ nonpersonal[1] }}{% else %}{{surname[1]}} {{initials[1] | join: ''}}. {% endif %} , & {% if nonpersonal[2] %}{{ nonpersonal[2] }}{% else %}{{surname[2]}} {{initials[2] | join: ''}}.{% endif %}"
|
14
|
+
# disabled the following: they should be provided in inheriting calls
|
15
|
+
# etal: "{% if nonpersonal[0] %}{{ nonpersonal[0] }}{% else %}{{surname[0] | upcase}} ,_{%if given[0]%}{{given[0]}} {{middle[0]}}{%else%}{{initials[0] | join: ' '}}.{%endif%}{% endif %}, {% if nonpersonal[1] %}{{ nonpersonal[1] }}{% else %}{%if given[1]%}{{given[1]}} {{middle[1]}}{%else%}{{initials[1] | join: ' '}}.{%endif%} {{surname[1] | upcase}}{% endif %} <em>et al.</em>"
|
16
|
+
# etal_count: 5
|
17
|
+
seriestemplate: "{% if series_formatted %}{{ series_formatted }}{%else%}{% if series_abbr %}{{series_abbr}}{% else %}{{series_title}}{% endif %} ({{series_run}}) {{series_num}}|({{series_partnumber}}){%endif%}"
|
18
|
+
journaltemplate: "<em>{% if series_abbr %}{{series_abbr}}{% else %}{{series_title}}{% endif %}</em> ({{series_run}}) {{ labels['volume'] }}_{{series_num}} {{ labels['part'] }}_{{series_partnumber}}"
|
19
|
+
template:
|
20
|
+
# skip standardidentifier, it is inserted in front of formattedref within metanorma
|
21
|
+
standard: "{% if home_standard %}<em><span_class='stddocTitle'>{{ title }}</span></em> ,_{{ extent }}{% else %}<smallcap>{{ creatornames }}</smallcap>. <em><span_class='stddocTitle'>{{ title }}</span></em> ,_{{ extent }} . {{ labels['version'] | capitalize }}_{{ edition_raw }}. {{labels['updated'] | capitalize }}_{{date_updated}}. {{status | capitalize}}. {{ authorizer }}. {{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>.{% endif %}"
|
22
|
+
website: "<smallcap>{{ creatornames }}</smallcap> ({{ role }}) . <em><span_class='stddocTitle'>{{ title }}</span></em> [website]. {{ labels['version'] | capitalize }}_{{ edition_raw }}. {{place}}: {{ publisher }}. {{date}}. {{ labels['updated'] | capitalize }}:_{{date_updated}}. ._{{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>. [{{ labels['viewed'] }}:_{{date_accessed}}]. "
|
23
|
+
book: "<smallcap>{{ creatornames }}</smallcap> ({{role}}) . <em>{{ title }}</em> . {{ edition | capitalize_first }}. ({{ series }}). {% if place %}{{place}}{%else%}{{ labels['no_place']}}{%endif%}: {{publisher}}. {{date}}. {{size}}. {{extent}}. ._{{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>. {{ labels['at'] | capitalize}}:_{{ access_location }}. [{{ labels['viewed'] }}:_{{date_accessed}}]."
|
24
|
+
booklet: book
|
25
|
+
manual: book
|
26
|
+
techreport: book
|
27
|
+
proceedings: book
|
28
|
+
inbook: "<smallcap>{{ creatornames }}</smallcap> ({{role}}) . {{ title }} . <em>{{host_title}}</em> ({{host_role}} {{ host_creatornames}}). {{ edition | capitalize_first }}. ({{ series }}). {% if place %}{{place}}{%else%}{{ labels['no_place']}}{%endif%}: {{publisher}}. {{date}}. {{size}}. {{extent}}. ._{{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>. {{ labels['at'] | capitalize}}:_{{ access_location }}. [{{ labels['viewed'] }}:_{{date_accessed}}]."
|
29
|
+
inproceedings: inbook
|
30
|
+
incollection: inbook
|
31
|
+
journal: "<em>{{ title}}</em> . {{ edition | capitalize_first }}. {{place}}: {{publisher}}. {{date}}. {{size}}. {{extent}}. ._{{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>. {{ labels['at'] | capitalize}}:_{{ access_location }}. [{{ labels['viewed'] }}:_{{date_accessed}}]."
|
32
|
+
article: "<smallcap>{{ creatornames }}</smallcap> ({{role}}) . {{ title }}. {{ series }} . {{date}}, {{ extent }}. {{ labels['updated'] | capitalize }}:_{{date_updated}}. ._{{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>. {{ labels['at'] | capitalize}}:_{{ access_location }}. [{{ labels['viewed'] }}:_{{date_accessed}}]."
|
33
|
+
software: "<smallcap>{{ creatornames }}</smallcap> ({{ role}}) . <em>{{ title }}</em> . {{ labels['version'] | capitalize }}_{{ edition_raw }}. {{medium | capitalize}}. {{place}}: {{publisher}}. {{date}}. {{size}}. {{extent}}. {{ labels['updated'] | capitalize }}:_{{date_updated}}. ._{{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>. [{{ labels['viewed'] }}:_{{date_accessed}}]. "
|
34
|
+
electronic resource: software
|
35
|
+
dataset: "<smallcap>{{ creatornames }}</smallcap> ({{ role }}) . <em>{{ title }}</em> . {{ labels['version'] | capitalize }}_{{ edition_raw }}. {{medium | capitalize }}. {{ labels['in'] | capitalize }}:_{{series}}. {{date}}. {{ labels['updated'] | capitalize }}:_{{date_updated}}. {{ authoritative_identifier | join '. ' }}. {{ other_identifier | join '. ' }}. ._{{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>. {{ size }}. {{ extent}}. [{{ labels['viewed'] }}:_{{date_accessed}}]. "
|
36
|
+
webresource: website
|
37
|
+
unpublished: "<smallcap>{{ creatornames }}</smallcap> ({{ role }}) . <em>{{ title }}</em> . {{ medium | capitalize }}. {{ date }}. {{ labels['at'] | capitalize}}:_{{ access_location }}. ._{{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>. [{{ labels['viewed'] }}:_{{date_accessed}}]."
|
38
|
+
presentation: unpublished
|
39
|
+
thesis: "<smallcap>{{ creatornames }}</smallcap> ({{ role }}) . <em>{{ title }}</em> . {{ medium | capitalize }}. {{place}}: {{ publisher }}. {{ date }}. {{ labels['at'] | capitalize}}:_{{ access_location }}. ._{{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>. [{{ labels['viewed'] }}:_{{date_accessed}}]."
|
40
|
+
misc: "<smallcap>{{ creatornames }}</smallcap> ({{ role }}) . <em>{{ title }}</em> . {{ date }}."
|
41
|
+
# following are # unsupported types:
|
42
|
+
map: misc
|
43
|
+
audiovisual: misc
|
44
|
+
film: misc
|
45
|
+
video: misc
|
46
|
+
broadcast: misc
|
47
|
+
graphic_work: misc
|
48
|
+
music: misc
|
49
|
+
performance: misc
|
50
|
+
patent: misc
|
51
|
+
archival: misc
|
52
|
+
social_media: misc
|
53
|
+
alert: misc
|
54
|
+
message: misc
|
55
|
+
conversation: misc
|
56
|
+
internal: misc
|
57
|
+
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require "relaton-render"
|
2
|
+
require "isodoc"
|
3
|
+
require_relative "parse"
|
4
|
+
|
5
|
+
module Relaton
|
6
|
+
module Render
|
7
|
+
module Iec
|
8
|
+
class General < ::Relaton::Render::IsoDoc::General
|
9
|
+
def config_loc
|
10
|
+
YAML.load_file(File.join(File.dirname(__FILE__), "config.yml"))
|
11
|
+
end
|
12
|
+
|
13
|
+
def klass_initialize(_options)
|
14
|
+
super
|
15
|
+
@parseklass = Relaton::Render::Iec::Parse
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Relaton
|
2
|
+
module Render
|
3
|
+
module Iec
|
4
|
+
class Parse < ::Relaton::Render::Parse
|
5
|
+
def simple_or_host_xml2hash(doc, host)
|
6
|
+
ret = super
|
7
|
+
ret.merge(home_standard: home_standard(doc, ret[:publisher_raw]))
|
8
|
+
end
|
9
|
+
|
10
|
+
def home_standard(_doc, pubs)
|
11
|
+
pubs&.any? do |r|
|
12
|
+
["International Organization for Standardization", "ISO",
|
13
|
+
"International Electrotechnical Commission", "IEC"]
|
14
|
+
.include?(r[:nonpersonal])
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
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: 2.2.
|
4
|
+
version: 2.2.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: 2023-02-
|
11
|
+
date: 2023-02-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: metanorma-iso
|
@@ -250,6 +250,9 @@ files:
|
|
250
250
|
- lib/metanorma/iec/relaton-iec.rng
|
251
251
|
- lib/metanorma/iec/reqt.rng
|
252
252
|
- lib/metanorma/iec/version.rb
|
253
|
+
- lib/relaton/render-iec/config.yml
|
254
|
+
- lib/relaton/render-iec/general.rb
|
255
|
+
- lib/relaton/render-iec/parse.rb
|
253
256
|
- metanorma-iec.gemspec
|
254
257
|
homepage: https://github.com/metanorma/metanorma-iec
|
255
258
|
licenses:
|