kramdown-rfc2629 1.6.32 → 1.6.33
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 -1
- data/kramdown-rfc2629.gemspec +1 -1
- data/lib/kramdown-rfc/rfc8792.rb +32 -0
- data/lib/kramdown-rfc2629.rb +7 -4
- 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: d4c663bed0e8e2dc848a9e532ba201b9e9a26b4090368c0d83f8c518275df710
|
|
4
|
+
data.tar.gz: a2ac5d0be0615b41ecd65964ca7dfd61e3163fbb3aa612994fa5ac05ae1504ca
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 90ef1269825ef2b9484fc358cf92fa7ffa1ce255ea6e0b520cf99e98ed9f463551bf060d9af84de1ef87f0bd2e8a12442c4b9dc866858e1ed18bf23d4084829a
|
|
7
|
+
data.tar.gz: 840c014bc4efcabb1491e81126f577541bb237b0fa92a06fdaa293556eed480997829a357728da96caadc480347d32ddfb3be76a8e7027c986c775adff9babc7
|
|
@@ -3,6 +3,7 @@ require 'rexml/document' # for SVG and bibxml acrobatics
|
|
|
3
3
|
require 'yaml'
|
|
4
4
|
require 'shellwords'
|
|
5
5
|
require 'fileutils'
|
|
6
|
+
require_relative '../lib/kramdown-rfc/rfc8792'
|
|
6
7
|
|
|
7
8
|
def clean(s)
|
|
8
9
|
s.gsub!(/\//, ":")
|
|
@@ -12,6 +13,7 @@ end
|
|
|
12
13
|
|
|
13
14
|
target = nil
|
|
14
15
|
dir = nil
|
|
16
|
+
unfold = true
|
|
15
17
|
targets = [:list, :files, :zip, :yaml]
|
|
16
18
|
require 'optparse'
|
|
17
19
|
begin
|
|
@@ -23,6 +25,9 @@ begin
|
|
|
23
25
|
opts.on("-dDIR", "--dir=DIR", "Target directory (default: sourcecode)") do |v|
|
|
24
26
|
dir = v
|
|
25
27
|
end
|
|
28
|
+
opts.on("-f", "--[no-]unfold", "RFC8972-unfold (default: yes)") do |v|
|
|
29
|
+
unfold = v
|
|
30
|
+
end
|
|
26
31
|
end
|
|
27
32
|
op.parse!
|
|
28
33
|
rescue Exception => e
|
|
@@ -56,7 +61,7 @@ REXML::XPath.each(d.root, "//sourcecode|//artwork") do |x|
|
|
|
56
61
|
else
|
|
57
62
|
taken[ty][name] = ''
|
|
58
63
|
end
|
|
59
|
-
taken[ty][name] << x.text
|
|
64
|
+
taken[ty][name] << handle_artwork_sourcecode(x.text, unfold)
|
|
60
65
|
end
|
|
61
66
|
end
|
|
62
67
|
|
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.33'
|
|
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/rfc8792.rb
CHANGED
|
@@ -6,8 +6,40 @@ def remove_indentation(s)
|
|
|
6
6
|
l.map {|li| li.sub(/^ {0,#{indent}}/, "")}.join
|
|
7
7
|
end
|
|
8
8
|
|
|
9
|
+
def trim_empty_lines_around(s) # this deletes the trailing newline, which may need to be reconstructed
|
|
10
|
+
s.sub(/\A(\r?\n)*/, '').sub(/(\r?\n)*\z/, '')
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def fix_unterminated_line(s)
|
|
14
|
+
s.sub(/[^\n]\z/) { "#$&\n" } # XXX
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def handle_artwork_sourcecode(s, unfold = true)
|
|
18
|
+
s = trim_empty_lines_around(s)
|
|
19
|
+
s = unfold8792(s) if unfold
|
|
20
|
+
fix_unterminated_line(s)
|
|
21
|
+
end
|
|
9
22
|
|
|
10
23
|
FOLD_MSG = "NOTE: '\\' line wrapping per RFC 8792".freeze
|
|
24
|
+
UNFOLD_RE = /\A.*#{FOLD_MSG.sub("\\", "(\\\\\\\\\\\\\\\\?)")}.*\n\r?\n/
|
|
25
|
+
|
|
26
|
+
def unfold8792(s)
|
|
27
|
+
if s =~ UNFOLD_RE
|
|
28
|
+
indicator = $1
|
|
29
|
+
s = $'
|
|
30
|
+
sub = case indicator
|
|
31
|
+
when "\\"
|
|
32
|
+
s.gsub!(/\\\n[ \t]*/, '')
|
|
33
|
+
when "\\\\"
|
|
34
|
+
s.gsub!(/\\\n[ \t]*\\/, '')
|
|
35
|
+
else
|
|
36
|
+
fail "indicator" # Cannot happen
|
|
37
|
+
end
|
|
38
|
+
warn "** encountered RFC 8792 header without folded lines" unless sub
|
|
39
|
+
end
|
|
40
|
+
s
|
|
41
|
+
end
|
|
42
|
+
|
|
11
43
|
MIN_FOLD_COLUMNS = FOLD_MSG.size
|
|
12
44
|
FOLD_COLUMNS = 69
|
|
13
45
|
RE_IDENT = /\A[A-Za-z0-9_]\z/
|
data/lib/kramdown-rfc2629.rb
CHANGED
|
@@ -696,7 +696,7 @@ COLORS
|
|
|
696
696
|
fold = [$1.to_i, # col 0 for ''
|
|
697
697
|
($3.to_i if $2), # left 0 for '', nil if no "left"
|
|
698
698
|
$4] # dry
|
|
699
|
-
result = fold8792_1(result, *fold)
|
|
699
|
+
result = fix_unterminated_line(fold8792_1(trim_empty_lines_around(result), *fold)) # XXX
|
|
700
700
|
when "yaml2json"
|
|
701
701
|
begin
|
|
702
702
|
y = YAML.safe_load(result, aliases: true, filename: loc_str)
|
|
@@ -714,16 +714,19 @@ COLORS
|
|
|
714
714
|
preprocs.each do |proc|
|
|
715
715
|
result = sourcecode_proc(proc, loc_str, result)
|
|
716
716
|
end if preprocs
|
|
717
|
+
check_input = result
|
|
717
718
|
checks.each do |check|
|
|
718
719
|
case check
|
|
720
|
+
when "skipheader"
|
|
721
|
+
check_input = handle_artwork_sourcecode(check_input).sub(/.*?\n\n/m, '')
|
|
719
722
|
when "json"
|
|
720
|
-
#
|
|
723
|
+
# check for 8792; undo if needed:
|
|
721
724
|
begin
|
|
722
|
-
JSON.load(
|
|
725
|
+
JSON.load(handle_artwork_sourcecode(check_input))
|
|
723
726
|
rescue => e
|
|
724
727
|
err1 = "*** #{loc_str}: JSON isn't: #{JSON.dump(e.message[0..40])}\n"
|
|
725
728
|
begin
|
|
726
|
-
JSON.load("{" <<
|
|
729
|
+
JSON.load("{" << check_input << "}")
|
|
727
730
|
rescue => e
|
|
728
731
|
warn err1 << "*** not even with braces added around: #{JSON.dump(e.message[0..40])}"
|
|
729
732
|
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.33
|
|
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-04-
|
|
11
|
+
date: 2023-04-30 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: kramdown
|