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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7debb198a9e9bf5c199901337cdaa69059c72345a83c18092aaa24bbc1b533b7
4
- data.tar.gz: c321ce924e845f46ded79a23b1ffbc8bee52e6fb6352ec49e332b94fd63e8b1e
3
+ metadata.gz: 172e0d4fcfbb65449f29ffa7ca743ecf090a031638feaa355d8d5f7df10eca28
4
+ data.tar.gz: 335e0852a920a3e9f3a8b5319a0328bcb49216a2bc6ba9dd1ce8c5e515759587
5
5
  SHA512:
6
- metadata.gz: 36ea96fc6d606198c451fc2fab24cf50a8472a099380c5ff82b6326aa924e55b3a3e51b9180210dd4caf97e57a8aad0c6652e12c8cd05d814b32b5511f969e25
7
- data.tar.gz: 025bc51c6061f60e258f512a0a5c10710da45083408a16135ffa6d4f234e412cabc8b17e8ce98bd913ccfb5c97869a02084400d9c9917df3e49b08c7a2016c6a
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
@@ -1,6 +1,6 @@
1
1
  spec = Gem::Specification.new do |s|
2
2
  s.name = 'kramdown-rfc2629'
3
- s.version = '1.6.27'
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.27
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-03-18 00:00:00.000000000 Z
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