metanorma-utils 1.9.0 → 1.10.0
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/utils/version.rb +1 -1
- data/lib/utils/xml.rb +14 -26
- data/metanorma-utils.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: bdf1c0f7c6fc507ad433fe2050575ce055f637d14be8d8422841aa562c710b71
|
4
|
+
data.tar.gz: 1492564fdf19ecdea102ec3042f38222ae1c495d33ccc07db74d40312d01be66
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c20276334e3ae738d797f823d809d45242677571f0b1746af012b08789b2da879877eb96f3196639fdc80ca1aa880294462cb07a3f36dbd91b20e8940fd84b0e
|
7
|
+
data.tar.gz: 6339006703fe2e0fc338a06a5c55b5b7c38bbc899623a16b22deb18fac01967db131e7b8888fab7388a710dfda658d51db0ce76d8556285c01a54616f034ba2b
|
data/lib/utils/version.rb
CHANGED
data/lib/utils/xml.rb
CHANGED
@@ -48,49 +48,37 @@ module Metanorma
|
|
48
48
|
# block for processing XML document fragments as XHTML,
|
49
49
|
# to allow for HTMLentities
|
50
50
|
# Unescape special chars used in Asciidoctor substitution processing
|
51
|
-
def noko(script = "Latn", &block)
|
52
|
-
doc = ::Nokogiri::XML.parse(NOKOHEAD)
|
53
|
-
fragment = doc.fragment("")
|
54
|
-
::Nokogiri::XML::Builder.with fragment, &block
|
55
|
-
eoln = %w(Hans Hant Jpan).include?(script) ? "" : " "
|
56
|
-
fragment.to_xml(encoding: "US-ASCII", indent: 0,
|
57
|
-
save_with: Nokogiri::XML::Node::SaveOptions::AS_XML)
|
58
|
-
.lines.map do |l|
|
59
|
-
l.gsub(/>\n$/, ">").gsub(/\n$/m, eoln).gsub("–", "\u0096")
|
60
|
-
.gsub("—", "\u0097").gsub("–", "\u0096")
|
61
|
-
.gsub("—", "\u0097")
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
51
|
def noko(_script = "Latn", &block)
|
66
52
|
fragment = ::Nokogiri::XML.parse(NOKOHEAD).fragment("")
|
67
53
|
::Nokogiri::XML::Builder.with fragment, &block
|
68
|
-
|
54
|
+
fragment
|
69
55
|
.to_xml(encoding: "UTF-8", indent: 0,
|
70
56
|
save_with: Nokogiri::XML::Node::SaveOptions::AS_XML)
|
71
|
-
.
|
72
|
-
|
73
|
-
.gsub("–", "\u0096").gsub("—", "\u0097")
|
74
|
-
end
|
75
|
-
line_sanitise(ret)
|
57
|
+
.gsub("–", "\u0096").gsub("—", "\u0097")
|
58
|
+
.gsub("–", "\u0096").gsub("—", "\u0097")
|
76
59
|
end
|
77
60
|
|
78
61
|
# By default, carriage return in source translates to whitespace;
|
79
|
-
# but in CJK, it does not.
|
80
|
-
# output because of CJK complications
|
62
|
+
# but in CJK, it does not. (Non-CJK text \n CJK)
|
81
63
|
def line_sanitise(ret)
|
82
64
|
ret.size == 1 and return ret
|
83
|
-
(0...ret.size).each do |i|
|
65
|
+
(0...(ret.size - 1)).each do |i|
|
84
66
|
last = firstchar_xml(ret[i].reverse)
|
85
67
|
nextfirst = firstchar_xml(ret[i + 1])
|
86
|
-
|
87
|
-
|
68
|
+
cjk1 = /#{CJK}/o.match?(last)
|
69
|
+
cjk2 = /#{CJK}/o.match?(nextfirst)
|
70
|
+
text1 = /[^\p{Z}\p{C}]/.match?(last)
|
71
|
+
text2 = /[^\p{Z}\p{C}]/.match?(nextfirst)
|
72
|
+
(cjk1 && (cjk2 || !text2)) and next
|
73
|
+
!text1 && cjk2 and next
|
74
|
+
ret[i] += " "
|
88
75
|
end
|
89
76
|
ret
|
90
77
|
end
|
91
78
|
|
79
|
+
# need to deal with both <em> and its reverse string, >me<
|
92
80
|
def firstchar_xml(line)
|
93
|
-
m = /^(
|
81
|
+
m = /^([<>][^<>]+[<>])*(.)/.match(line) or return ""
|
94
82
|
m[2]
|
95
83
|
end
|
96
84
|
|
data/metanorma-utils.gemspec
CHANGED
@@ -46,5 +46,6 @@ Gem::Specification.new do |spec|
|
|
46
46
|
spec.add_development_dependency "timecop", "~> 0.9"
|
47
47
|
spec.add_development_dependency "vcr", "~> 6.1.0"
|
48
48
|
spec.add_development_dependency "webmock"
|
49
|
+
spec.add_development_dependency "xml-c14n"
|
49
50
|
#spec.metadata["rubygems_mfa_required"] = "true"
|
50
51
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metanorma-utils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-08-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: asciidoctor
|
@@ -276,6 +276,20 @@ dependencies:
|
|
276
276
|
- - ">="
|
277
277
|
- !ruby/object:Gem::Version
|
278
278
|
version: '0'
|
279
|
+
- !ruby/object:Gem::Dependency
|
280
|
+
name: xml-c14n
|
281
|
+
requirement: !ruby/object:Gem::Requirement
|
282
|
+
requirements:
|
283
|
+
- - ">="
|
284
|
+
- !ruby/object:Gem::Version
|
285
|
+
version: '0'
|
286
|
+
type: :development
|
287
|
+
prerelease: false
|
288
|
+
version_requirements: !ruby/object:Gem::Requirement
|
289
|
+
requirements:
|
290
|
+
- - ">="
|
291
|
+
- !ruby/object:Gem::Version
|
292
|
+
version: '0'
|
279
293
|
description: 'metanorma-utils provides utilities for the Metanorma stack
|
280
294
|
|
281
295
|
'
|