relaton-render 0.10.0 → 0.10.1
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-yaml/i18n-ja.yaml +4 -4
- data/lib/relaton/render/fields/fields.rb +2 -1
- data/lib/relaton/render/general/citations.rb +3 -3
- data/lib/relaton/render/general/render.rb +10 -3
- data/lib/relaton/render/parse/parse_contributors.rb +12 -3
- data/lib/relaton/render/parse/parse_extract.rb +1 -1
- data/lib/relaton/render/parse/parse_id.rb +4 -3
- data/lib/relaton/render/template/template.rb +8 -3
- data/lib/relaton/render/version.rb +1 -1
- data/relaton-render.gemspec +1 -0
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a19104c38ea80010334bb8a9b010149f61bc0293cdda062595d77202e21fd2d3
|
4
|
+
data.tar.gz: 9e087b89f7eb6aef7a07d22264a08d8ffd1ac9310a790c1cbd30fbc59df8727e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5debe31c38c1d10ede1806b5915fa47408715f51f318afe95d45f0b2ae6c2b24d6eec99d160dbfcb0efeb3490c663f42fdb6b52da347b5644975b55e22b63e9f
|
7
|
+
data.tar.gz: f05613f9b3081a153287550cb4f774f81276c8c424ec6b25842843a22826f248bfc8060493afb3b6d0b355721a1a50489bb1e36bc02ee68a6f43a6db3853c237
|
@@ -29,8 +29,8 @@ stage:
|
|
29
29
|
withdrawn: 取り消されました
|
30
30
|
extent:
|
31
31
|
page:
|
32
|
-
sg: "
|
33
|
-
pl: "
|
32
|
+
sg: "%頁"
|
33
|
+
pl: "%頁"
|
34
34
|
volume:
|
35
35
|
sg: "巻%"
|
36
36
|
pl: "巻%"
|
@@ -39,8 +39,8 @@ extent:
|
|
39
39
|
pl: "いいえ%"
|
40
40
|
size:
|
41
41
|
page:
|
42
|
-
sg: "
|
43
|
-
pl: "
|
42
|
+
sg: "%頁"
|
43
|
+
pl: "%頁"
|
44
44
|
volume:
|
45
45
|
sg: "巻%"
|
46
46
|
pl: "巻%"
|
@@ -77,7 +77,7 @@ module Relaton
|
|
77
77
|
def generic_citation(ret)
|
78
78
|
ret.each_with_object({}) do |b, m|
|
79
79
|
m[b[:id]] = { data_liquid: b[:data_liquid], type: b[:type],
|
80
|
-
citation: b[:data_liquid][:docidentifier] }
|
80
|
+
citation: @i18n.l10n(b[:data_liquid][:docidentifier]) }
|
81
81
|
end
|
82
82
|
end
|
83
83
|
|
@@ -126,8 +126,8 @@ module Relaton
|
|
126
126
|
ret.each_with_object({}) do |(_k, v), m|
|
127
127
|
v.each_value do |v1|
|
128
128
|
v1.each do |b|
|
129
|
-
m[b[:id]] = { author: b[:author], date: b[:date],
|
130
|
-
citation: "#{b[:author]} #{b[:date]}",
|
129
|
+
m[b[:id]] = { author: @i18n.l10n(b[:author]), date: b[:date],
|
130
|
+
citation: @i18n.l10n("#{b[:author]} #{b[:date]}"),
|
131
131
|
data_liquid: b[:data_liquid], type: b[:type] }
|
132
132
|
end
|
133
133
|
end
|
@@ -112,6 +112,7 @@ module Relaton
|
|
112
112
|
end
|
113
113
|
|
114
114
|
def render(bib, embedded: false)
|
115
|
+
require "debug"; binding.b
|
115
116
|
bib = xml2relaton(bib)
|
116
117
|
f = bib.formattedref and
|
117
118
|
return embedded ? f.content : fmtref(f.content)
|
@@ -139,11 +140,17 @@ module Relaton
|
|
139
140
|
ret
|
140
141
|
end
|
141
142
|
|
143
|
+
# <esc> in field can get capitalised in filters
|
144
|
+
def esc_cleanup(text)
|
145
|
+
text.gsub(/<esc>/i, "<esc>").gsub(/<\/esc>/i, "</esc>")
|
146
|
+
end
|
147
|
+
|
142
148
|
def render1(doc)
|
143
149
|
r = doc.relation.select { |x| x.type == "hasRepresentation" }
|
144
150
|
.map { |x| @i18n.also_pub_as + render_single_bibitem(x.bibitem) }
|
145
151
|
out = [render_single_bibitem(doc)] + r
|
146
|
-
@i18n.l10n(out.join(". ").gsub("
|
152
|
+
@i18n.l10n(esc_cleanup(out.join(". ")).gsub(".</esc>.", ".</esc>")
|
153
|
+
.gsub(".. ", ". "))
|
147
154
|
end
|
148
155
|
|
149
156
|
def render_single_bibitem(doc)
|
@@ -152,7 +159,7 @@ module Relaton
|
|
152
159
|
end
|
153
160
|
|
154
161
|
def liquid(data_liquid, renderer)
|
155
|
-
valid_parse(
|
162
|
+
valid_parse(renderer.render(data_liquid))
|
156
163
|
end
|
157
164
|
|
158
165
|
def parse(doc)
|
@@ -201,7 +208,7 @@ module Relaton
|
|
201
208
|
end
|
202
209
|
|
203
210
|
# add to liquid data based on template
|
204
|
-
def enhance_data(
|
211
|
+
def enhance_data(_data, template)
|
205
212
|
template.is_a?(String) or return
|
206
213
|
# add_date_accessed(data, template)
|
207
214
|
end
|
@@ -17,7 +17,7 @@ module Relaton
|
|
17
17
|
def extract_personname(person)
|
18
18
|
surname = person.name.surname || person.name.completename
|
19
19
|
given, middle, initials = given_and_middle_name(person)
|
20
|
-
{ surname: content(surname),
|
20
|
+
{ surname: wrap_in_esc(content(surname)),
|
21
21
|
given: given,
|
22
22
|
middle: middle,
|
23
23
|
initials: initials }
|
@@ -28,7 +28,16 @@ module Relaton
|
|
28
28
|
initials = extract_initials(person)
|
29
29
|
forenames.empty? and initials.empty? and return [nil, nil, nil]
|
30
30
|
initials.empty? and initials = initials_from_forenames(forenames)
|
31
|
-
[forenames.first, forenames[1..-1],
|
31
|
+
[forenames.first, forenames[1..-1],
|
32
|
+
wrap_in_esc(Array(initials))]
|
33
|
+
end
|
34
|
+
|
35
|
+
def wrap_in_esc(obj)
|
36
|
+
case obj
|
37
|
+
when String then "<esc>#{obj}</esc>"
|
38
|
+
when Array then obj.map { |e| wrap_in_esc(e) }
|
39
|
+
else obj
|
40
|
+
end
|
32
41
|
end
|
33
42
|
|
34
43
|
def extract_initials(person)
|
@@ -41,7 +50,7 @@ module Relaton
|
|
41
50
|
|
42
51
|
def forenames_parse(person)
|
43
52
|
person.name.forename.map do |x|
|
44
|
-
x.content.empty? ? "
|
53
|
+
x.content.empty? ? "<esc>#{x.initial}.</esc>" : content(x)
|
45
54
|
end
|
46
55
|
end
|
47
56
|
|
@@ -48,7 +48,8 @@ module Relaton
|
|
48
48
|
out = authoritative_identifier_select(a)
|
49
49
|
out.empty? or break
|
50
50
|
end
|
51
|
-
|
51
|
+
# prevent l10n of identifier contents
|
52
|
+
out.map(&:id).map { |i| "<esc>#{i.strip}</esc>" }
|
52
53
|
end
|
53
54
|
|
54
55
|
def authoritative_identifier_select(idents)
|
@@ -71,7 +72,7 @@ module Relaton
|
|
71
72
|
doc.docidentifier.each_with_object([]) do |id, ret|
|
72
73
|
type = id_type_norm(id)
|
73
74
|
other_identifier_include.include? type or next
|
74
|
-
ret << @i18n.l10n("#{type}:
|
75
|
+
ret << @i18n.l10n("#{type}: <esc>#{id.id}</esc>")
|
75
76
|
end
|
76
77
|
end
|
77
78
|
|
@@ -85,7 +86,7 @@ module Relaton
|
|
85
86
|
type.casecmp("doi").zero? or next
|
86
87
|
ret << id.id
|
87
88
|
end
|
88
|
-
out.empty? ? nil : out
|
89
|
+
out.empty? ? nil : out.map { |i| "<esc>#{i.strip}</esc>" }
|
89
90
|
end
|
90
91
|
|
91
92
|
def id_type_norm(id)
|
@@ -97,8 +97,8 @@ module Relaton
|
|
97
97
|
end
|
98
98
|
a.join
|
99
99
|
end.join.tr("\t", " ")
|
100
|
-
t.gsub(/\}\}#{FIELD_DELIM}\|/o, "}}#{FIELD_DELIM}
|
101
|
-
.gsub(/\|#{FIELD_DELIM}\{\{/o, "
|
100
|
+
t.gsub(/\}\}#{FIELD_DELIM}\|/o, "}}#{FIELD_DELIM}#{NON_SPACING_DELIM}")
|
101
|
+
.gsub(/\|#{FIELD_DELIM}\{\{/o, "#{NON_SPACING_DELIM}#{FIELD_DELIM}{{")
|
102
102
|
end
|
103
103
|
|
104
104
|
def render(hash)
|
@@ -124,8 +124,11 @@ module Relaton
|
|
124
124
|
def template_clean1(str)
|
125
125
|
str.gsub(/\S*#{FIELD_DELIM}#{FIELD_DELIM}\S*/o, "")
|
126
126
|
.gsub(/#{FIELD_DELIM}/o, "")
|
127
|
+
.gsub(/([,:;]\s*)+<\/esc>([,:;])(\s|_|$)/, "\\2</esc>\\3")
|
127
128
|
.gsub(/([,:;]\s*)+([,:;](\s|_|$))/, "\\2")
|
129
|
+
.gsub(/([,.:;]\s*)+<\/esc>([.])(\s|_|$)/, "\\2</esc>\\3")
|
128
130
|
.gsub(/([,.:;]\s*)+([.](\s|_|$))/, "\\2")
|
131
|
+
.gsub(/([,:;]\s*)+<\/esc>(,)(\s|_|$)/, "\\2</esc>\\3")
|
129
132
|
.gsub(/([,:;]\s*)+(,(\s|_|$))/, "\\2")
|
130
133
|
.gsub(/(:\s+)(&\s)/, "\\2")
|
131
134
|
.gsub(/\s+([,.:;)])/, "\\1")
|
@@ -133,7 +136,9 @@ module Relaton
|
|
133
136
|
.sub(/[,:;]\s*$/, "")
|
134
137
|
.gsub(/(?<!\\)_/, " ")
|
135
138
|
.gsub("\\_", "_")
|
136
|
-
.gsub(/#{NON_SPACING_DELIM}/o, "")
|
139
|
+
.gsub(/#{NON_SPACING_DELIM}/o, "")
|
140
|
+
.gsub(/\s+/, " ")
|
141
|
+
.gsub(/<(\/)?esc>/i, "<\\1esc>")
|
137
142
|
end
|
138
143
|
|
139
144
|
# need non-breaking spaces in fields: "Updated:_nil" ---
|
data/relaton-render.gemspec
CHANGED
@@ -24,6 +24,7 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.add_development_dependency "bundler"
|
25
25
|
spec.add_development_dependency "debug"
|
26
26
|
spec.add_development_dependency "equivalent-xml", "~> 0.6"
|
27
|
+
spec.add_development_dependency "isodoc"
|
27
28
|
spec.add_development_dependency "rake", ">= 12.3.3"
|
28
29
|
spec.add_development_dependency "rspec", "~> 3.0"
|
29
30
|
spec.add_development_dependency "simplecov"
|
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.10.
|
4
|
+
version: 0.10.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-
|
11
|
+
date: 2025-10-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0.6'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: isodoc
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: rake
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|