kramdown-rfc2629 1.6.27 → 1.6.28

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: 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