relaton-render 0.3.7 → 0.3.10
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/README.adoc +6 -3
- data/lib/isodoc-yaml/i18n-ar.yaml +6 -0
- data/lib/isodoc-yaml/i18n-de.yaml +6 -0
- data/lib/isodoc-yaml/i18n-en.yaml +6 -1
- data/lib/isodoc-yaml/i18n-es.yaml +7 -0
- data/lib/isodoc-yaml/i18n-fr.yaml +6 -0
- data/lib/isodoc-yaml/i18n-ru.yaml +7 -0
- data/lib/isodoc-yaml/i18n-zh-Hans.yaml +6 -0
- data/lib/relaton/render/fields/fields.rb +9 -6
- data/lib/relaton/render/general/config.yml +2 -2
- data/lib/relaton/render/parse/parse.rb +2 -1
- data/lib/relaton/render/parse/parse_contributors.rb +4 -1
- data/lib/relaton/render/parse/parse_extract.rb +5 -1
- data/lib/relaton/render/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 963f65bd45b2b7d271822ba18c63f2a6e34768da2e77b73dee08f43ae9e68c3d
|
4
|
+
data.tar.gz: 989731f97b400da01dbf2d549b7319f3b04d4450f087866b1622ba381674c744
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d8b0815748c83dd0daf24055a1c4e4f7b2a51f2c7d65632d2e5b8596fd112df4882610626716e9feb5f46ce0054ba66ad28543a55aa3162b867dedff92cd2180
|
7
|
+
data.tar.gz: 917f533dfe7158d182bbd679c1e921442b0786d59a25db92d8cbd330fb01cb05bf9655e0ff566ac4574ab66b670d29d91b1c1b4796bfebb0e82db0e0ef07c479
|
data/README.adoc
CHANGED
@@ -99,6 +99,7 @@ drawn from the bibliographic item:
|
|
99
99
|
| title | ./title | | |
|
100
100
|
| edition | ./edition | | Y | If numeric value, is given internationalised rendering of "nth edition", as set in edition_numbering. Otherwise, the textual content of the tag is given.
|
101
101
|
| edition_raw | ./edition | | Y | The strict textual content of the tag is given.
|
102
|
+
| edition_num | ./edition[@number] | | Y |
|
102
103
|
| medium | ./medium | | Y |
|
103
104
|
| place | ./place | | Y |
|
104
105
|
| publisher | ./contributor[role/@type = 'publisher']/organization/name | | Y |
|
@@ -223,11 +224,11 @@ The extent of a bibliographic item may be expressed differently depending on the
|
|
223
224
|
|
224
225
|
To capture this, a separate template is supplied under `extenttemplate` for each bibliographic item type. For those types where none is supplied, the template given for `misc` is used as the default.
|
225
226
|
|
226
|
-
The template draws on the defined types of locality of extents; the most common of these is `
|
227
|
+
The template draws on the defined types of locality of extents; the most common of these is `volume`, `issue` (within volume; "number" for journals), and `page`. Locality types are the fields used in the Liquid templates; for example:
|
227
228
|
|
228
229
|
....
|
229
230
|
{
|
230
|
-
article: "{{ volume_raw }}: {{ page_raw }}"
|
231
|
+
article: "{{ volume_raw }}|({{ issue_raw }}) : {{ page_raw }}"
|
231
232
|
misc: "{{ volume }}, {{ page }}"
|
232
233
|
}
|
233
234
|
....
|
@@ -237,7 +238,7 @@ The internationalisation files define a singular and a plural version of the loc
|
|
237
238
|
* The plural label is always used if the extent is a range (with a `<from>` and `<to>`).
|
238
239
|
* The singular label is used if the extent is not a range (_pp. 2–4_ vs. _p. 3_).
|
239
240
|
* The internationalisation files include a slot where the number or number range is inserted, indicated by `%`, since this varies by language. (For instance, English has `pp. %`, whereas Chinese has `第%页`.)
|
240
|
-
* The number of the volume or page, without accompanying labels, is given in `volume_raw` and `page_raw`.
|
241
|
+
* The number of the volume, issue/number, or page, without accompanying labels, is given in `volume_raw`, `issue_raw`, and `page_raw`.
|
241
242
|
|
242
243
|
=== Size template
|
243
244
|
|
@@ -252,6 +253,8 @@ The template draws on the defined types of locality of extents; the following ar
|
|
252
253
|
|
253
254
|
| volume | ./medium/size[@type = 'volume'] | With internationalisation of label
|
254
255
|
| volume_raw | ./medium/size[@type = 'volume'] |
|
256
|
+
| issue | ./medium/size[@type = 'issue'] | With internationalisation of label
|
257
|
+
| issue_raw | ./medium/size[@type = 'issue'] |
|
255
258
|
| page | ./medium/size[@type = 'page'] | With internationalisation of label
|
256
259
|
| page_raw | ./medium/size[@type = 'page'] |
|
257
260
|
| data | ./medium/size[@type = 'data'] | Unit of size is included in value
|
@@ -23,6 +23,9 @@ extent:
|
|
23
23
|
volume:
|
24
24
|
sg: "% المجلد"
|
25
25
|
pl: "% المجلدين"
|
26
|
+
issue:
|
27
|
+
sg: "% عدد"
|
28
|
+
pl: "% عدد"
|
26
29
|
size:
|
27
30
|
page:
|
28
31
|
sg: "ص %"
|
@@ -30,6 +33,9 @@ size:
|
|
30
33
|
volume:
|
31
34
|
sg: "المجلد %"
|
32
35
|
pl: "المجلدين %"
|
36
|
+
issue:
|
37
|
+
sg: "% عدد"
|
38
|
+
pl: "% عدد"
|
33
39
|
inflection:
|
34
40
|
الطبعة:
|
35
41
|
gender: f
|
@@ -22,6 +22,9 @@ extent:
|
|
22
22
|
volume:
|
23
23
|
sg: "Bd. %"
|
24
24
|
pl: "Bde. %"
|
25
|
+
issue:
|
26
|
+
sg: "Nr. %"
|
27
|
+
pl: "Nr. %"
|
25
28
|
size:
|
26
29
|
page:
|
27
30
|
sg: "% S."
|
@@ -29,6 +32,9 @@ size:
|
|
29
32
|
volume:
|
30
33
|
sg: "% Bd."
|
31
34
|
pl: "% Bde."
|
35
|
+
issue:
|
36
|
+
sg: "% Nr."
|
37
|
+
pl: "% Nr."
|
32
38
|
inflection:
|
33
39
|
Auflage:
|
34
40
|
gender: f
|
@@ -25,6 +25,9 @@ extent:
|
|
25
25
|
volume:
|
26
26
|
sg: "vol. %"
|
27
27
|
pl: "vols. %"
|
28
|
+
issue:
|
29
|
+
sg: "núm. %"
|
30
|
+
pl: "núms. %"
|
28
31
|
size:
|
29
32
|
page:
|
30
33
|
sg: "% pág."
|
@@ -32,6 +35,10 @@ size:
|
|
32
35
|
volume:
|
33
36
|
sg: "% vol."
|
34
37
|
pl: "% vols."
|
38
|
+
issue:
|
39
|
+
sg: "% núm."
|
40
|
+
pl: "% núms."
|
41
|
+
|
35
42
|
inflection:
|
36
43
|
edición:
|
37
44
|
gender: f
|
@@ -27,6 +27,9 @@ extent:
|
|
27
27
|
volume:
|
28
28
|
sg: "vol. %"
|
29
29
|
pl: "vol. %"
|
30
|
+
issue:
|
31
|
+
sg: "nᵒ %"
|
32
|
+
pl: "nᵒˢ %"
|
30
33
|
size:
|
31
34
|
page:
|
32
35
|
sg: "% p."
|
@@ -34,6 +37,9 @@ size:
|
|
34
37
|
volume:
|
35
38
|
sg: "% vol."
|
36
39
|
pl: "% vol."
|
40
|
+
issue:
|
41
|
+
sg: "% nᵒ"
|
42
|
+
pl: "% nᵒˢ"
|
37
43
|
inflection:
|
38
44
|
édition:
|
39
45
|
gender: f
|
@@ -29,6 +29,10 @@ extent:
|
|
29
29
|
volume:
|
30
30
|
sg: "т. %"
|
31
31
|
pl: "тт. %"
|
32
|
+
issue:
|
33
|
+
sg: "шт. %"
|
34
|
+
pl: "шт. %"
|
35
|
+
|
32
36
|
size:
|
33
37
|
page:
|
34
38
|
sg: "% стр."
|
@@ -36,6 +40,9 @@ size:
|
|
36
40
|
volume:
|
37
41
|
sg: "% т."
|
38
42
|
pl: "% тт."
|
43
|
+
issue:
|
44
|
+
sg: "% шт."
|
45
|
+
pl: "% шт."
|
39
46
|
inflection:
|
40
47
|
издание:
|
41
48
|
gender: n
|
@@ -34,7 +34,7 @@ module Relaton
|
|
34
34
|
end
|
35
35
|
|
36
36
|
def edition_fields_format(hash)
|
37
|
-
hash[:edition] = editionformat(hash[:edition_raw])
|
37
|
+
hash[:edition] = editionformat(hash[:edition_raw], hash[:edition_num])
|
38
38
|
hash[:draft] = draftformat(hash[:draft_raw], hash)
|
39
39
|
end
|
40
40
|
|
@@ -95,11 +95,11 @@ module Relaton
|
|
95
95
|
@r.i18n.get[role][number] || role
|
96
96
|
end
|
97
97
|
|
98
|
-
def editionformat(edn)
|
99
|
-
return edn unless /^\d+$/.match?(edn)
|
98
|
+
def editionformat(edn, num)
|
99
|
+
return edn unless num || /^\d+$/.match?(edn)
|
100
100
|
|
101
|
-
|
102
|
-
@r.edition_ordinal.sub(/%(Spellout|Ordinal)?/,
|
101
|
+
ret = edition_translate1(num || edn.to_i)
|
102
|
+
@r.edition_ordinal.sub(/%(Spellout|Ordinal)?/, ret)
|
103
103
|
end
|
104
104
|
|
105
105
|
def edition_translate1(num)
|
@@ -133,7 +133,7 @@ module Relaton
|
|
133
133
|
end
|
134
134
|
|
135
135
|
def extentformat1(key, val, hash, norm_hash)
|
136
|
-
if %i(volume page).include?(key)
|
136
|
+
if %i(volume issue page).include?(key)
|
137
137
|
hash["#{key}_raw".to_sym] = norm_hash[key]
|
138
138
|
hash[key] = pagevolformat(norm_hash[key], val, key.to_s, false)
|
139
139
|
end
|
@@ -164,6 +164,9 @@ module Relaton
|
|
164
164
|
when "volume"
|
165
165
|
hash[:volume_raw] = val
|
166
166
|
hash[:volume] = pagevolformat(val, nil, "volume", true)
|
167
|
+
when "issue"
|
168
|
+
hash[:issue_raw] = val
|
169
|
+
hash[:issue] = pagevolformat(val, nil, "issue", true)
|
167
170
|
when "page"
|
168
171
|
hash[:page_raw] = val
|
169
172
|
hash[:page] = pagevolformat(val, nil, "page", true)
|
@@ -15,12 +15,12 @@ extenttemplate:
|
|
15
15
|
standard: book
|
16
16
|
techreport: book
|
17
17
|
inbook: "{{ volume }}: {{ page }}"
|
18
|
-
misc: "{{ volume }}, {{ page }}, {{ duration }}"
|
18
|
+
misc: "{{ volume }} {{issue}} , {{ page }}, {{ duration }}"
|
19
19
|
sizetemplate:
|
20
20
|
dataset: "{{ data }}"
|
21
21
|
electronic resource: dataset
|
22
22
|
webresource: dataset
|
23
|
-
misc: "{{ volume }}, {{ page }}, {{ data }}, {{ duration }}"
|
23
|
+
misc: "{{ volume }}, {{ issue }}, {{ page }}, {{ data }}, {{ duration }}"
|
24
24
|
language: en
|
25
25
|
script: Latn
|
26
26
|
template:
|
@@ -27,7 +27,8 @@ module Relaton
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def simple_or_host_xml2hash(doc, host)
|
30
|
-
{ edition_raw: edition(doc, host),
|
30
|
+
{ edition_raw: edition(doc, host), edition_num: edition_num(doc, host),
|
31
|
+
medium_raw: medium(doc, host),
|
31
32
|
place_raw: place(doc, host), publisher_raw: publisher(doc, host),
|
32
33
|
publisher_abbrev_raw: publisher_abbrev(doc, host),
|
33
34
|
distributor_raw: distributor(doc, host), draft_raw: draft(doc, host),
|
@@ -115,7 +115,10 @@ module Relaton
|
|
115
115
|
x = pick_contributor(doc, "publisher")
|
116
116
|
host and x ||= pick_contributor(host, "publisher")
|
117
117
|
x.nil? and return nil
|
118
|
-
x.map
|
118
|
+
x.map do |c|
|
119
|
+
c.entity.abbreviation&.content ||
|
120
|
+
c.entity.name.first&.content
|
121
|
+
end
|
119
122
|
end
|
120
123
|
|
121
124
|
def distributor(doc, host)
|
@@ -33,7 +33,11 @@ module Relaton
|
|
33
33
|
end
|
34
34
|
|
35
35
|
def edition(doc, host)
|
36
|
-
doc.edition || host&.edition
|
36
|
+
doc.edition&.content || host&.edition&.content
|
37
|
+
end
|
38
|
+
|
39
|
+
def edition_num(doc, host)
|
40
|
+
doc.edition&.number || host&.edition&.number
|
37
41
|
end
|
38
42
|
|
39
43
|
def place(doc, host)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: relaton-render
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-07-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -236,7 +236,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
236
236
|
- !ruby/object:Gem::Version
|
237
237
|
version: '0'
|
238
238
|
requirements: []
|
239
|
-
rubygems_version: 3.3.
|
239
|
+
rubygems_version: 3.3.16
|
240
240
|
signing_key:
|
241
241
|
specification_version: 4
|
242
242
|
summary: Rendering of ISO 690 XML
|