kramdown-rfc2629 1.6.27 → 1.6.29
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 +19 -0
- data/kramdown-rfc2629.gemspec +4 -3
- data/lib/kramdown-rfc/command.rb +17 -3
- data/lib/kramdown-rfc/svg-id-cleanup.rb +39 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 062a31f4914296fa8729f4256c83c79420950605b944076b923b836f6a982ced
|
4
|
+
data.tar.gz: d9a463cf4cbcc663bbd639b29c1641df308716d92b50b1add469bdc056937fad
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3cecb965efec5d1d40e0da6dee5a8389d45cc65f78a835cf756d979e9e836200b2ab80cd6fbd7686cd30bcd2cbf1beb08993a2615df049376705c8170e44dfc9
|
7
|
+
data.tar.gz: '056960710e1102ea0724d57774073c882411db9392f7c256c4ee5fe1c1e7118fa67a6518eeec87e4e456f92184e289c42479270144dcfdffda6b17d956902925'
|
@@ -0,0 +1,19 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
|
4
|
+
require 'rexml/document'
|
5
|
+
require 'kramdown-rfc/svg-id-cleanup'
|
6
|
+
|
7
|
+
def svg_clean_ids(s)
|
8
|
+
d = REXML::Document.new(s)
|
9
|
+
d.context[:attribute_quote] = :quote # Set double-quote as the attribute value delimiter
|
10
|
+
|
11
|
+
svg_id_cleanup(d)
|
12
|
+
|
13
|
+
d.to_s
|
14
|
+
rescue => detail
|
15
|
+
warn "*** Can't clean SVG: #{detail}"
|
16
|
+
d.to_s
|
17
|
+
end
|
18
|
+
|
19
|
+
puts svg_clean_ids(ARGF.read)
|
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.29'
|
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
|
data/lib/kramdown-rfc/command.rb
CHANGED
@@ -262,6 +262,9 @@ def xml_from_sections(input)
|
|
262
262
|
if o = ps[:'autolink-iref-cleanup']
|
263
263
|
$options.autolink_iref_cleanup = o
|
264
264
|
end
|
265
|
+
if o = ps[:'svg-id-cleanup']
|
266
|
+
$options.svg_id_cleanup = o
|
267
|
+
end
|
265
268
|
|
266
269
|
coding_override = ps.has(:coding)
|
267
270
|
smart_quotes = ps[:smart_quotes]
|
@@ -579,12 +582,23 @@ if $options.v3_used && !$options.v3
|
|
579
582
|
$options.v3 = true
|
580
583
|
end
|
581
584
|
|
582
|
-
if
|
585
|
+
# only reparse output document if cleanup actions required
|
586
|
+
if $options.autolink_iref_cleanup || $options.svg_id_cleanup
|
583
587
|
require 'rexml/document'
|
584
|
-
require 'kramdown-rfc/autolink-iref-cleanup'
|
585
588
|
|
586
589
|
d = REXML::Document.new(output)
|
587
|
-
|
590
|
+
d.context[:attribute_quote] = :quote # Set double-quote as the attribute value delimiter
|
591
|
+
|
592
|
+
if $options.autolink_iref_cleanup
|
593
|
+
require 'kramdown-rfc/autolink-iref-cleanup'
|
594
|
+
autolink_iref_cleanup(d)
|
595
|
+
end
|
596
|
+
|
597
|
+
if $options.svg_id_cleanup
|
598
|
+
require 'kramdown-rfc/svg-id-cleanup'
|
599
|
+
svg_id_cleanup(d)
|
600
|
+
end
|
601
|
+
|
588
602
|
output = d.to_s
|
589
603
|
end
|
590
604
|
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'rexml/document'
|
2
|
+
|
3
|
+
SVG_NAMESPACES = {"svg"=>"http://www.w3.org/2000/svg",
|
4
|
+
"xlink"=>"http://www.w3.org/1999/xlink"}
|
5
|
+
|
6
|
+
def svg_id_cleanup(d)
|
7
|
+
gensym = "gensym000"
|
8
|
+
|
9
|
+
REXML::XPath.each(d.root, "//svg:svg", SVG_NAMESPACES) do |x|
|
10
|
+
gensym = gensym.succ
|
11
|
+
# warn "*** SVG"
|
12
|
+
# warn "*** SVG: #{x.to_s.size}"
|
13
|
+
found_as_id = Set[]
|
14
|
+
found_as_href = Set[]
|
15
|
+
REXML::XPath.each(x, ".//*[@id]", SVG_NAMESPACES) do |y|
|
16
|
+
# warn "*** ID: #{y}"
|
17
|
+
name = y.attributes["id"]
|
18
|
+
if found_as_id === name
|
19
|
+
warn "*** duplicate ID #{name}"
|
20
|
+
end
|
21
|
+
found_as_id.add(name)
|
22
|
+
y.attributes["id"] = "#{name}-#{gensym}"
|
23
|
+
end
|
24
|
+
REXML::XPath.each(x, ".//*[@xlink:href]", SVG_NAMESPACES) do |y|
|
25
|
+
# warn "*** HREF: #{y}"
|
26
|
+
name = y.attributes["href"]
|
27
|
+
name1 = name[1..-1]
|
28
|
+
if !found_as_id === name1
|
29
|
+
warn "*** unknown HREF #{name}"
|
30
|
+
end
|
31
|
+
found_as_href.add(name1)
|
32
|
+
y.attributes["xlink:href"] = "#{name}-#{gensym}"
|
33
|
+
end
|
34
|
+
found_as_id -= found_as_href
|
35
|
+
warn "*** warning: unused ID: #{found_as_id.to_a.join(", ")}" unless found_as_id.empty?
|
36
|
+
end
|
37
|
+
rescue => detail
|
38
|
+
warn "*** Can't clean SVG: #{detail}"
|
39
|
+
end
|
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.29
|
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-09 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
|
@@ -179,6 +181,7 @@ files:
|
|
179
181
|
- lib/kramdown-rfc/parameterset.rb
|
180
182
|
- lib/kramdown-rfc/refxml.rb
|
181
183
|
- lib/kramdown-rfc/rfc8792.rb
|
184
|
+
- lib/kramdown-rfc/svg-id-cleanup.rb
|
182
185
|
- lib/kramdown-rfc2629.rb
|
183
186
|
homepage: http://github.com/cabo/kramdown-rfc
|
184
187
|
licenses:
|