relaton-render 1.1.0 → 1.2.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
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4bcf0448a633329d256fee9e297e7c50182a5e214014a7cb78a9d3ab7ec3147f
|
|
4
|
+
data.tar.gz: 766c8ddbb23a88334eaf2d3be35894ffe62ce300126c7cdded5af90e8341a7a6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9ff2d1381a4075e7c0c5b46a5fb174b1190621b25760600928f2b49da2379eea21006f17468d74c89e9c1f30cd8abb49f591bd5361e5ab57e029a6de04d09c57
|
|
7
|
+
data.tar.gz: 18b0f1710c29a3e8ce67f055d3dcdefeaf62191ff7711beaa296bf95f669f49699186868172a617a429765c9544de52eb30669b98c2b63f41a46c76b36b91b65
|
|
@@ -82,6 +82,8 @@ module Relaton
|
|
|
82
82
|
end
|
|
83
83
|
end
|
|
84
84
|
|
|
85
|
+
ALLOWED_INLINE_TAGS = %w[em strong sub sup a smallcap].freeze
|
|
86
|
+
|
|
85
87
|
private
|
|
86
88
|
|
|
87
89
|
def blank?(text)
|
|
@@ -93,6 +95,19 @@ module Relaton
|
|
|
93
95
|
"<esc>#{text}</esc>"
|
|
94
96
|
end
|
|
95
97
|
|
|
98
|
+
# Strip any tag not in ALLOWED_INLINE_TAGS, in both literal (<tag>) and
|
|
99
|
+
# entity-encoded (<tag>) forms. Used to defend Liquid template
|
|
100
|
+
# output against embedded structural markup (most commonly <title>) in
|
|
101
|
+
# bibliographic text fields, where relaton-bib may surface either form
|
|
102
|
+
# depending on lutaml-model serialisation behaviour.
|
|
103
|
+
def sanitise_inline_markup(str)
|
|
104
|
+
blank?(str) and return str
|
|
105
|
+
allowed = ALLOWED_INLINE_TAGS.join("|")
|
|
106
|
+
literal = %r{</?(?!(?:#{allowed})\b)[A-Za-z][\w:-]*(?:\s[^>]*)?/?>}
|
|
107
|
+
encoded = %r{</?(?!(?:#{allowed})\b)[A-Za-z][\w:-]*(?:\s[^&]*?)?/?>}
|
|
108
|
+
str.gsub(literal, "").gsub(encoded, "")
|
|
109
|
+
end
|
|
110
|
+
|
|
96
111
|
def wrap_in_esc(obj)
|
|
97
112
|
case obj
|
|
98
113
|
when String then esc(obj)
|
|
@@ -4,15 +4,12 @@ module Relaton
|
|
|
4
4
|
def content(node)
|
|
5
5
|
node.nil? and return node
|
|
6
6
|
node.is_a?(String) and
|
|
7
|
-
return node.strip
|
|
7
|
+
return sanitise_inline_markup(node.strip)
|
|
8
8
|
.gsub(/>\n\s*</, "><").gsub(/\n\s*/, " ")
|
|
9
9
|
node.content.is_a?(Array) and return node.content.map { |x| content(x) }
|
|
10
|
-
ret = node.content.strip
|
|
11
|
-
.gsub("</title>", "").gsub("<title>", "")
|
|
10
|
+
ret = sanitise_inline_markup(node.content.strip)
|
|
12
11
|
# safeguard against indented XML
|
|
13
12
|
ret.gsub(/>\n\s*</, "><").gsub(/\n\s*/, " ")
|
|
14
|
-
# node.children.map { |n| n.text? ? n.content : n.to_xml }.join
|
|
15
|
-
# node.text? ? node.content.strip : node.to_xml.strip
|
|
16
13
|
end
|
|
17
14
|
|
|
18
15
|
def extract_orgname(org)
|
data/relaton-render.gemspec
CHANGED
|
@@ -19,11 +19,11 @@ Gem::Specification.new do |spec|
|
|
|
19
19
|
spec.bindir = "exe"
|
|
20
20
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
21
21
|
spec.require_paths = ["lib"]
|
|
22
|
-
spec.required_ruby_version = Gem::Requirement.new(">= 2.
|
|
22
|
+
spec.required_ruby_version = Gem::Requirement.new(">= 3.2.0")
|
|
23
23
|
|
|
24
24
|
spec.add_development_dependency "bundler"
|
|
25
|
+
spec.add_development_dependency "canon"
|
|
25
26
|
spec.add_development_dependency "debug"
|
|
26
|
-
spec.add_development_dependency "equivalent-xml", "~> 0.6"
|
|
27
27
|
spec.add_development_dependency "isodoc"
|
|
28
28
|
spec.add_development_dependency "openssl"
|
|
29
29
|
spec.add_development_dependency "rake", ">= 12.3.3"
|
|
@@ -32,7 +32,7 @@ Gem::Specification.new do |spec|
|
|
|
32
32
|
|
|
33
33
|
spec.add_dependency "base64" # Liquid
|
|
34
34
|
spec.add_dependency "bigdecimal" # Liquid
|
|
35
|
-
spec.add_dependency "isodoc-i18n", "~> 1.
|
|
35
|
+
spec.add_dependency "isodoc-i18n", "~> 1.5.0"
|
|
36
36
|
spec.add_dependency "liquid", "~> 5"
|
|
37
37
|
spec.add_dependency "metanorma-utils", "~> 2"
|
|
38
38
|
spec.add_dependency "nokogiri"
|
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: 1.1
|
|
4
|
+
version: 1.2.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: 2026-
|
|
11
|
+
date: 2026-05-13 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -25,7 +25,7 @@ dependencies:
|
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
26
|
version: '0'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
|
-
name:
|
|
28
|
+
name: canon
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
31
|
- - ">="
|
|
@@ -39,19 +39,19 @@ dependencies:
|
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
40
|
version: '0'
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
|
-
name:
|
|
42
|
+
name: debug
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
|
-
- - "
|
|
45
|
+
- - ">="
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '0
|
|
47
|
+
version: '0'
|
|
48
48
|
type: :development
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
|
-
- - "
|
|
52
|
+
- - ">="
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: '0
|
|
54
|
+
version: '0'
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
56
|
name: isodoc
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -156,14 +156,14 @@ dependencies:
|
|
|
156
156
|
requirements:
|
|
157
157
|
- - "~>"
|
|
158
158
|
- !ruby/object:Gem::Version
|
|
159
|
-
version: 1.
|
|
159
|
+
version: 1.5.0
|
|
160
160
|
type: :runtime
|
|
161
161
|
prerelease: false
|
|
162
162
|
version_requirements: !ruby/object:Gem::Requirement
|
|
163
163
|
requirements:
|
|
164
164
|
- - "~>"
|
|
165
165
|
- !ruby/object:Gem::Version
|
|
166
|
-
version: 1.
|
|
166
|
+
version: 1.5.0
|
|
167
167
|
- !ruby/object:Gem::Dependency
|
|
168
168
|
name: liquid
|
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -313,7 +313,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
313
313
|
requirements:
|
|
314
314
|
- - ">="
|
|
315
315
|
- !ruby/object:Gem::Version
|
|
316
|
-
version: 2.
|
|
316
|
+
version: 3.2.0
|
|
317
317
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
318
318
|
requirements:
|
|
319
319
|
- - ">="
|