kramdown-rfc2629 1.6.27 → 1.6.29
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 +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:
|