metanorma-ietf 2.3.3 → 2.3.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +1 -1
- data/lib/isodoc/ietf/cleanup.rb +16 -5
- data/lib/isodoc/ietf/references.rb +20 -15
- data/lib/metanorma/ietf/version.rb +1 -1
- data/metanorma-ietf.gemspec +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: 7a12328cf063937699b9e4713e4f02ecb83baed14af90b6cb8c05e44d68361f0
|
4
|
+
data.tar.gz: e89e8c1aa57a7341298ac5a3b01c17ecdab3ed746e9fcb915730dade6a8241db
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3279c11e5298c25e7fd5d45d441416156bbf051791cd8883675c101a1b153455c01a3b14b62cd341f29fb3c2be0c58b2273eeb501dfa7dd5e1e56d7388941c19
|
7
|
+
data.tar.gz: 6662f000dadd312542ba8e57023237bfd9036055df0c53c235fcc0dc7b7ac8b131023139fa4c029d27d5a4d0ea7929f0a2850dd3a1d747f57cd3b50cf2dbcd12
|
data/.rubocop.yml
CHANGED
data/lib/isodoc/ietf/cleanup.rb
CHANGED
@@ -48,6 +48,17 @@ module IsoDoc::Ietf
|
|
48
48
|
figure_postamble(docxml)
|
49
49
|
figure_unnest(docxml)
|
50
50
|
figure_footnote_cleanup(docxml)
|
51
|
+
figure_data_uri(docxml)
|
52
|
+
end
|
53
|
+
|
54
|
+
def figure_data_uri(docxml)
|
55
|
+
docxml.xpath("//artwork").each do |a|
|
56
|
+
next unless %r{^data:image/svg\+xml;base64}.match?(a["src"])
|
57
|
+
|
58
|
+
f = Metanorma::Utils::save_dataimage(a["src"])
|
59
|
+
a.delete("src")
|
60
|
+
a.children = File.read(f).sub(%r{<\?.+\?>}, "")
|
61
|
+
end
|
51
62
|
end
|
52
63
|
|
53
64
|
def figure_unnest(docxml)
|
@@ -133,7 +144,7 @@ module IsoDoc::Ietf
|
|
133
144
|
docxml << "<back/>" and endnotes = docxml.at("//back")
|
134
145
|
end
|
135
146
|
endnotes << "<section><name>Endnotes</name></section>"
|
136
|
-
|
147
|
+
docxml.at("//back/section[last()]")
|
137
148
|
end
|
138
149
|
|
139
150
|
def image_cleanup(docxml)
|
@@ -153,13 +164,13 @@ module IsoDoc::Ietf
|
|
153
164
|
s.children = s.children.to_xml.gsub(%r{<br/>\n}, "\n")
|
154
165
|
.gsub(%r{\s+(<t[ >])}, "\\1").gsub(%r{</t>\s+}, "</t>")
|
155
166
|
sourcecode_remove_markup(s)
|
156
|
-
|
157
|
-
|
167
|
+
s.children = "<![CDATA[#{HTMLEntities.new.decode(s
|
168
|
+
.children.to_xml.sub(/\A\n+/, ''))}]]>"
|
158
169
|
end
|
159
170
|
end
|
160
171
|
|
161
|
-
def sourcecode_remove_markup(
|
162
|
-
|
172
|
+
def sourcecode_remove_markup(node)
|
173
|
+
node.traverse do |n|
|
163
174
|
next if n.text?
|
164
175
|
next if %w(name callout annotation note sourcecode).include? n.name
|
165
176
|
|
@@ -3,6 +3,9 @@ module IsoDoc::Ietf
|
|
3
3
|
# TODO displayreference will be implemented as combination of autofetch and user-provided citations
|
4
4
|
|
5
5
|
def bibliography(isoxml, out)
|
6
|
+
isoxml.xpath(ns("//references/bibitem/docidentifier")).each do |i|
|
7
|
+
i.children = docid_prefix(i["type"], i.text)
|
8
|
+
end
|
6
9
|
isoxml.xpath(ns("//bibliography/references | "\
|
7
10
|
"//bibliography/clause[.//references] | "\
|
8
11
|
"//annex/clause[.//references] | "\
|
@@ -31,22 +34,21 @@ module IsoDoc::Ietf
|
|
31
34
|
i = 0
|
32
35
|
f.xpath(ns("./bibitem | ./note")).each do |b|
|
33
36
|
next if implicit_reference(b)
|
37
|
+
|
34
38
|
i += 1 if b.name == "bibitem"
|
35
39
|
if b.name == "note" then note_parse(b, div)
|
36
|
-
elsif
|
40
|
+
elsif is_ietf(b) then ietf_bibitem_entry(div, b, i)
|
37
41
|
else
|
38
42
|
nonstd_bibitem(div, b, i, biblio)
|
39
43
|
end
|
40
44
|
end
|
41
45
|
end
|
42
46
|
|
43
|
-
def nonstd_bibitem(list, b,
|
47
|
+
def nonstd_bibitem(list, b, _ordinal, _bibliography)
|
44
48
|
uris = b.xpath(ns("./uri"))
|
45
49
|
target = nil
|
46
50
|
uris&.each do |u|
|
47
|
-
if u["type"] == "src"
|
48
|
-
target = u.text
|
49
|
-
end
|
51
|
+
target = u.text if u["type"] == "src"
|
50
52
|
end
|
51
53
|
list.reference **attr_code(target: target,
|
52
54
|
anchor: b["id"]) do |r|
|
@@ -66,7 +68,8 @@ module IsoDoc::Ietf
|
|
66
68
|
r.refcontent id[1]
|
67
69
|
docidentifiers&.each do |u|
|
68
70
|
if %w(DOI IETF).include? u["type"]
|
69
|
-
r.seriesInfo nil, **attr_code(value: u.text
|
71
|
+
r.seriesInfo nil, **attr_code(value: u.text.sub(/^DOI /, ""),
|
72
|
+
name: u["type"])
|
70
73
|
end
|
71
74
|
end
|
72
75
|
end
|
@@ -86,7 +89,7 @@ module IsoDoc::Ietf
|
|
86
89
|
"'publisher']"))
|
87
90
|
auths.each do |a|
|
88
91
|
role = a.at(ns("./role[@type = 'editor']")) ? "editor" : nil
|
89
|
-
p = a&.at(ns("./person/name")) and
|
92
|
+
p = a&.at(ns("./person/name")) and
|
90
93
|
relaton_person_to_author(p, role, f) or
|
91
94
|
relaton_org_to_author(a&.at(ns("./organization")), role, f)
|
92
95
|
end
|
@@ -99,17 +102,17 @@ module IsoDoc::Ietf
|
|
99
102
|
p&.xpath(ns("./forename"))&.map { |i| i.text[0] }&.join(" ")
|
100
103
|
initials = nil if initials.empty?
|
101
104
|
f.author nil,
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
105
|
+
**attr_code(fullname: fullname, asciiFullname: fullname&.transliterate,
|
106
|
+
role: role, surname: surname, initials: initials,
|
107
|
+
asciiSurname: fullname ? surname&.transliterate : nil,
|
108
|
+
asciiInitials: fullname ? initials&.transliterate : nil)
|
106
109
|
end
|
107
110
|
|
108
|
-
def relaton_org_to_author(o,
|
111
|
+
def relaton_org_to_author(o, _role, f)
|
109
112
|
name = o&.at(ns("./name"))&.text
|
110
113
|
abbrev = o&.at(ns("./abbreviation"))&.text
|
111
|
-
f.author do |
|
112
|
-
f.organization name, **attr_code(ascii: name&.transliterate,
|
114
|
+
f.author do |_a|
|
115
|
+
f.organization name, **attr_code(ascii: name&.transliterate,
|
113
116
|
abbrev: abbrev)
|
114
117
|
end
|
115
118
|
end
|
@@ -119,6 +122,7 @@ module IsoDoc::Ietf
|
|
119
122
|
b.at(ns("./date[@type = 'issued']")) ||
|
120
123
|
b.at(ns("./date[@type = 'circulated']"))
|
121
124
|
return unless date
|
125
|
+
|
122
126
|
attr = date_attr(date&.at(ns("./on | ./from"))&.text) || return
|
123
127
|
f.date **attr_code(attr)
|
124
128
|
end
|
@@ -145,13 +149,14 @@ module IsoDoc::Ietf
|
|
145
149
|
end
|
146
150
|
end
|
147
151
|
|
148
|
-
def ietf_bibitem_entry(div, b,
|
152
|
+
def ietf_bibitem_entry(div, b, _i)
|
149
153
|
url = b&.at(ns("./uri[@type = 'xml']"))&.text
|
150
154
|
div << "<xi:include href='#{url}'/>"
|
151
155
|
end
|
152
156
|
|
153
157
|
def is_ietf(b)
|
154
158
|
return false if !@xinclude
|
159
|
+
|
155
160
|
url = b.at(ns("./uri[@type = 'xml']")) or return false
|
156
161
|
/xml2rfc\.tools\.ietf\.org/.match(url)
|
157
162
|
end
|
data/metanorma-ietf.gemspec
CHANGED
@@ -33,7 +33,7 @@ Gem::Specification.new do |spec|
|
|
33
33
|
spec.bindir = "exe"
|
34
34
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
35
35
|
spec.require_paths = ["lib"]
|
36
|
-
spec.required_ruby_version = Gem::Requirement.new(">= 2.
|
36
|
+
spec.required_ruby_version = Gem::Requirement.new(">= 2.5.0")
|
37
37
|
|
38
38
|
spec.add_dependency "isodoc", "~> 1.6.0"
|
39
39
|
spec.add_dependency "mathml2asciimath"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metanorma-ietf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.3.
|
4
|
+
version: 2.3.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-06-
|
11
|
+
date: 2021-06-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: isodoc
|
@@ -320,7 +320,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
320
320
|
requirements:
|
321
321
|
- - ">="
|
322
322
|
- !ruby/object:Gem::Version
|
323
|
-
version: 2.
|
323
|
+
version: 2.5.0
|
324
324
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
325
325
|
requirements:
|
326
326
|
- - ">="
|