kramdown-rfc2629 1.6.43 → 1.7.2
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-extract-sourcecode +6 -2
- data/kramdown-rfc2629.gemspec +1 -1
- data/lib/kramdown-rfc/command.rb +9 -14
- data/lib/kramdown-rfc2629.rb +24 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6fd72c01ed7024958d451c3342f16b8985dc145ef09a6e4d33ba2f3d290d81e4
|
4
|
+
data.tar.gz: 7ada0cb08e8481cfef450606bcfdaab0303a49b0306fdf5be7041121b57a1143
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c525300de7bf414755c50476de45b9842ab011965a2dcfa82206d9e614a12b482b958707021dc3fff51a6c66f98b39b55d3dd6556d001ec255b50fde926a82e9
|
7
|
+
data.tar.gz: 200cb7e1760cc81b628354dc2343eaee5595294d1334b16d17b1e47ed3bc2f83174ee588d9e5d50289aebf0b0f579b4ad635124779cc66e5578bd600f4e17b9f
|
@@ -8,7 +8,8 @@ require_relative '../lib/kramdown-rfc/rexml-all-text.rb'
|
|
8
8
|
|
9
9
|
def clean(s)
|
10
10
|
s.gsub!(/\//, ":")
|
11
|
-
s.gsub!(
|
11
|
+
s.gsub!(/\A([-.]+)/) {"_" * $1.size }
|
12
|
+
s.gsub!(/[^-.:\w]/, "_")
|
12
13
|
s
|
13
14
|
end
|
14
15
|
|
@@ -53,7 +54,10 @@ REXML::XPath.each(d.root, "//sourcecode|//artwork") do |x|
|
|
53
54
|
if ty = x[:type]
|
54
55
|
ty = clean(ty)
|
55
56
|
name = x[:name]
|
56
|
-
|
57
|
+
if !name || name.empty?
|
58
|
+
name = gensym.succ!.dup
|
59
|
+
name = "#{name}.#{ty}" unless ty.empty?
|
60
|
+
end
|
57
61
|
name = clean(name)
|
58
62
|
if taken[ty][name]
|
59
63
|
unless warned[ty][name]
|
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.
|
3
|
+
s.version = '1.7.2'
|
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.}
|
data/lib/kramdown-rfc/command.rb
CHANGED
@@ -294,12 +294,6 @@ def xml_from_sections(input)
|
|
294
294
|
if o = ps[:'svg-id-cleanup']
|
295
295
|
$options.svg_id_cleanup = o
|
296
296
|
end
|
297
|
-
if o = ps[:'span-into']
|
298
|
-
Array(o).each do |el|
|
299
|
-
Kramdown::Parser::Html::Constants::HTML_CONTENT_MODEL[el] = :span
|
300
|
-
warn Kramdown::Parser::Html::Constants::HTML_CONTENT_MODEL.inspect
|
301
|
-
end
|
302
|
-
end
|
303
297
|
|
304
298
|
coding_override = ps.has(:coding)
|
305
299
|
smart_quotes = ps[:smart_quotes] || ps[:"smart-quotes"]
|
@@ -366,18 +360,19 @@ warn Kramdown::Parser::Html::Constants::HTML_CONTENT_MODEL.inspect
|
|
366
360
|
next if k == "fluff"
|
367
361
|
v.gsub!(/{{(#{
|
368
362
|
spacify_re(XSR_PREFIX)
|
369
|
-
})?(?:([?!])(-)?|(-))([\w._\-]+)(?:=([\w.\/_\-]+))?(#{
|
363
|
+
})?([\w.\/_\-]+@)?(?:([?!])(-)?|(-))([\w._\-]+)(?:=([\w.\/_\-]+))?(#{
|
370
364
|
XREF_TXT_SUFFIX
|
371
365
|
})?(#{
|
372
366
|
spacify_re(XSR_SUFFIX)
|
373
367
|
})?}}/) do |match|
|
374
368
|
xsr_prefix = $1
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
369
|
+
subref = $2
|
370
|
+
norminform = $3
|
371
|
+
replacing = $4 || $5
|
372
|
+
word = $6
|
373
|
+
bibref = $7
|
374
|
+
xrt_suffix = $8
|
375
|
+
xsr_suffix = $9
|
381
376
|
if replacing
|
382
377
|
if new = ref_replacements[word]
|
383
378
|
word = new
|
@@ -401,7 +396,7 @@ warn Kramdown::Parser::Html::Constants::HTML_CONTENT_MODEL.inspect
|
|
401
396
|
if norminform
|
402
397
|
norm_ref[word] ||= norminform == '!' # one normative ref is enough
|
403
398
|
end
|
404
|
-
"{{#{xsr_prefix}#{word}#{xrt_suffix}#{xsr_suffix}}}"
|
399
|
+
"{{#{xsr_prefix}#{subref}#{word}#{xrt_suffix}#{xsr_suffix}}}"
|
405
400
|
end
|
406
401
|
end
|
407
402
|
|
data/lib/kramdown-rfc2629.rb
CHANGED
@@ -78,6 +78,11 @@ module Kramdown
|
|
78
78
|
href.gsub(/\A(?:[0-9]|section-|u-|figure-|table-|iref-)/) { "_#{$&}" }
|
79
79
|
end
|
80
80
|
|
81
|
+
def rfc_mention(target1) # only works for RFCnnnn
|
82
|
+
target1 =~ /\A([A-Z]*)(.*)\z/
|
83
|
+
"#$1 #$2 "
|
84
|
+
end
|
85
|
+
|
81
86
|
def handle_bares(s, attr, format, href, last_join = nil)
|
82
87
|
if s.match(/\A(#{XREF_ANY}) and (#{XREF_ANY})\z/)
|
83
88
|
handle_bares($1, {}, nil, href, " and ")
|
@@ -86,13 +91,14 @@ module Kramdown
|
|
86
91
|
end
|
87
92
|
|
88
93
|
href = href.split(' ')[0] # Remove any trailing (...)
|
94
|
+
target1, target2 = href.split("@", 2)
|
89
95
|
multi = last_join != nil
|
90
96
|
(sn, s) = s.split(' ', 2)
|
91
97
|
loop do
|
92
98
|
m = s.match(/\A#{XREF_RE_M}(, (?:and )?| and )?/)
|
93
99
|
break if not m
|
94
100
|
|
95
|
-
if not multi and not m[2] and not m[3]
|
101
|
+
if not multi and not m[2] and not m[3] and not target2
|
96
102
|
# Modify |attr| if there is a single reference. This can only be
|
97
103
|
# used if there is only one section reference and the section part
|
98
104
|
# has no title.
|
@@ -110,9 +116,13 @@ module Kramdown
|
|
110
116
|
multi = true
|
111
117
|
s[m[0]] = ''
|
112
118
|
|
113
|
-
attr1 = { 'target' =>
|
119
|
+
attr1 = { 'target' => target1, 'section' => m[1], 'sectionFormat' => 'bare', 'text' => m[2] }
|
114
120
|
@tree.children << Element.new(:xref, nil, attr1)
|
115
|
-
|
121
|
+
andof = m[3] || last_join || " of "
|
122
|
+
if andof == " of " && target2
|
123
|
+
andof += rfc_mention(target1)
|
124
|
+
end
|
125
|
+
@tree.children << Element.new(:text, andof, {})
|
116
126
|
end
|
117
127
|
end
|
118
128
|
|
@@ -135,18 +145,22 @@ module Kramdown
|
|
135
145
|
else
|
136
146
|
href = @src[3]
|
137
147
|
attr = {}
|
148
|
+
handled_subref = false
|
138
149
|
if $options.v3
|
139
150
|
# match Section ... of ...; set section, sectionFormat
|
140
151
|
case href.gsub(/[\u00A0\s]+/, ' ') # may need nbsp and/or newlines
|
141
152
|
when /\A(#{SECTIONS_RE}) of (.*)\z/
|
142
153
|
href = $2
|
143
154
|
handle_bares($1, attr, "of", href)
|
155
|
+
handled_subref = true
|
144
156
|
when /\A(.*), (#{SECTIONS_RE})\z/
|
145
157
|
href = $1
|
146
158
|
handle_bares($2, attr, "comma", href)
|
159
|
+
handled_subref = true
|
147
160
|
when /\A(.*) \((#{SECTIONS_RE})\)\z/
|
148
161
|
href = $1
|
149
162
|
handle_bares($2, attr, "parens", href)
|
163
|
+
handled_subref = true
|
150
164
|
when /#{XREF_RE_M}<(.+)\z/
|
151
165
|
href = $3
|
152
166
|
if $2
|
@@ -168,6 +182,13 @@ module Kramdown
|
|
168
182
|
href = $1
|
169
183
|
attr['text'] = $2
|
170
184
|
end
|
185
|
+
target1, target2 = href.split("@", 2) # should do this only for sectionref...
|
186
|
+
if target2
|
187
|
+
href = target2
|
188
|
+
unless handled_subref
|
189
|
+
@tree.children << Element.new(:text, rfc_mention(target1), {})
|
190
|
+
end
|
191
|
+
end
|
171
192
|
href = self.class.idref_cleanup(href)
|
172
193
|
attr['target'] = href
|
173
194
|
el = Element.new(:xref, nil, attr)
|
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.
|
4
|
+
version: 1.7.2
|
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-10-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: kramdown
|