kramdown-rfc2629 1.6.27 → 1.6.28
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/kramdown-rfc-clean-svg-ids +48 -0
- data/kramdown-rfc2629.gemspec +4 -3
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 172e0d4fcfbb65449f29ffa7ca743ecf090a031638feaa355d8d5f7df10eca28
|
4
|
+
data.tar.gz: 335e0852a920a3e9f3a8b5319a0328bcb49216a2bc6ba9dd1ce8c5e515759587
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 446b0fb243297a7eff9231b43615ee06b389f9a7ab571f5699cf2527e4d062ed116caf5e9924c3a4fa842e2bfae82d47c2e9be68886c9be7005fbc23944cf326
|
7
|
+
data.tar.gz: 14679cac5457fa6238a408e0547e27ce84d611af5d503db23aed52c76df1ef574f873cd13b467393e5e57111460c283f216c8b00c248c458b4b606e9d7455631
|
@@ -0,0 +1,48 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
|
4
|
+
require 'rexml/document'
|
5
|
+
|
6
|
+
SVG_NAMESPACES = {"svg"=>"http://www.w3.org/2000/svg",
|
7
|
+
"xlink"=>"http://www.w3.org/1999/xlink"}
|
8
|
+
|
9
|
+
def svg_clean_ids(s)
|
10
|
+
d = REXML::Document.new(s)
|
11
|
+
d.context[:attribute_quote] = :quote # <-- Set double-quote as the attribute value delimiter
|
12
|
+
gensym = "gensym000"
|
13
|
+
REXML::XPath.each(d.root, "//svg:svg", SVG_NAMESPACES) do |x|
|
14
|
+
gensym = gensym.succ
|
15
|
+
# warn "*** SVG"
|
16
|
+
# warn "*** SVG: #{x.to_s.size}"
|
17
|
+
found_as_id = Set[]
|
18
|
+
found_as_href = Set[]
|
19
|
+
REXML::XPath.each(x, ".//*[@id]", SVG_NAMESPACES) do |y|
|
20
|
+
# warn "*** ID: #{y}"
|
21
|
+
name = y.attributes["id"]
|
22
|
+
if found_as_id === name
|
23
|
+
warn "*** duplicate ID #{name}"
|
24
|
+
end
|
25
|
+
found_as_id.add(name)
|
26
|
+
y.attributes["id"] = "#{name}-#{gensym}"
|
27
|
+
end
|
28
|
+
REXML::XPath.each(x, ".//*[@xlink:href]", SVG_NAMESPACES) do |y|
|
29
|
+
# warn "*** HREF: #{y}"
|
30
|
+
name = y.attributes["href"]
|
31
|
+
name1 = name[1..-1]
|
32
|
+
if !found_as_id === name1
|
33
|
+
warn "*** unknown HREF #{name}"
|
34
|
+
end
|
35
|
+
found_as_href.add(name1)
|
36
|
+
y.attributes["xlink:href"] = "#{name}-#{gensym}"
|
37
|
+
end
|
38
|
+
found_as_id -= found_as_href
|
39
|
+
warn "*** warning: unused ID: #{found_as_id}" unless found_as_id.empty?
|
40
|
+
end
|
41
|
+
d.to_s
|
42
|
+
rescue => detail
|
43
|
+
warn "*** Can't clean SVG: #{detail}"
|
44
|
+
d
|
45
|
+
end
|
46
|
+
|
47
|
+
c = svg_clean_ids(ARGF.read)
|
48
|
+
puts c.to_s
|
data/kramdown-rfc2629.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
spec = Gem::Specification.new do |s|
|
2
2
|
s.name = 'kramdown-rfc2629'
|
3
|
-
s.version = '1.6.
|
3
|
+
s.version = '1.6.28'
|
4
4
|
s.summary = "Kramdown extension for generating RFCXML (RFC 799x)."
|
5
5
|
s.description = %{An RFCXML (RFC 799x) generating backend for Thomas Leitner's
|
6
6
|
"kramdown" markdown parser. Mostly useful for RFC writers.}
|
@@ -13,14 +13,15 @@ spec = Gem::Specification.new do |s|
|
|
13
13
|
s.add_dependency('unicode-scripts', '~> 1.0')
|
14
14
|
s.add_dependency('net-http-persistent', '~> 4.0')
|
15
15
|
s.add_dependency('differ', '~>0.1')
|
16
|
-
s.files = Dir['lib/**/*.rb'] + %w(README.md LICENSE kramdown-rfc2629.gemspec bin/kdrfc bin/kramdown-rfc bin/kramdown-rfc2629 bin/doilit bin/echars bin/kramdown-rfc-extract-markdown data/kramdown-rfc2629.erb data/encoding-fallbacks.txt data/math.json bin/kramdown-rfc-cache-subseries-bibxml bin/kramdown-rfc-autolink-iref-cleanup bin/de-gfm)
|
16
|
+
s.files = Dir['lib/**/*.rb'] + %w(README.md LICENSE kramdown-rfc2629.gemspec bin/kdrfc bin/kramdown-rfc bin/kramdown-rfc2629 bin/doilit bin/echars bin/kramdown-rfc-extract-markdown data/kramdown-rfc2629.erb data/encoding-fallbacks.txt data/math.json bin/kramdown-rfc-cache-subseries-bibxml bin/kramdown-rfc-autolink-iref-cleanup bin/de-gfm bin/kramdown-rfc-clean-svg-ids)
|
17
17
|
s.require_path = 'lib'
|
18
18
|
s.executables = ['kramdown-rfc', 'kramdown-rfc2629', 'doilit', 'echars',
|
19
19
|
'kramdown-rfc-extract-markdown',
|
20
20
|
'kdrfc', 'kramdown-rfc-cache-i-d-bibxml',
|
21
21
|
'kramdown-rfc-cache-subseries-bibxml',
|
22
22
|
'kramdown-rfc-autolink-iref-cleanup',
|
23
|
-
'de-gfm'
|
23
|
+
'de-gfm',
|
24
|
+
'kramdown-rfc-clean-svg-ids']
|
24
25
|
s.required_ruby_version = '>= 2.3.0'
|
25
26
|
# s.requirements = 'wget'
|
26
27
|
# s.has_rdoc = true
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kramdown-rfc2629
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.6.
|
4
|
+
version: 1.6.28
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Carsten Bormann
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-04-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: kramdown
|
@@ -151,6 +151,7 @@ executables:
|
|
151
151
|
- kramdown-rfc-cache-subseries-bibxml
|
152
152
|
- kramdown-rfc-autolink-iref-cleanup
|
153
153
|
- de-gfm
|
154
|
+
- kramdown-rfc-clean-svg-ids
|
154
155
|
extensions: []
|
155
156
|
extra_rdoc_files: []
|
156
157
|
files:
|
@@ -164,6 +165,7 @@ files:
|
|
164
165
|
- bin/kramdown-rfc-autolink-iref-cleanup
|
165
166
|
- bin/kramdown-rfc-cache-i-d-bibxml
|
166
167
|
- bin/kramdown-rfc-cache-subseries-bibxml
|
168
|
+
- bin/kramdown-rfc-clean-svg-ids
|
167
169
|
- bin/kramdown-rfc-extract-markdown
|
168
170
|
- bin/kramdown-rfc2629
|
169
171
|
- data/encoding-fallbacks.txt
|