kramdown-rfc2629 1.5.4 → 1.5.8
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/de-gfm +40 -0
- data/bin/kramdown-rfc-cache-i-d-bibxml +2 -2
- data/bin/kramdown-rfc2629 +46 -2
- data/kramdown-rfc2629.gemspec +4 -3
- data/lib/kramdown-rfc/refxml.rb +4 -0
- data/lib/kramdown-rfc2629.rb +6 -2
- metadata +18 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aae2496e99617a40af73396c192f95468dc6121cf70c5e922f99a6b556845b9b
|
4
|
+
data.tar.gz: dc169593b56f2f5fe7c8aa4e0856235fbe8d30ee4305b2d9683bf48738602b9e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7700dc39c4cd1d577dce2b3247b8ccd69f162a8c07054fc07ad3c624e40cc1001b3c7d62caf61998ae604262c5a922b755d0982ca9c359c5d0f90e0fc7c93805
|
7
|
+
data.tar.gz: ad59b578ac48256e82068806ebb1a8fad4f61f4b8849f25a18875378103f0d91e4595877979fce2af76225d3c6c9043cd833de7102782af8c9dd4c7343474f45
|
data/bin/de-gfm
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
#!/usr/bin/env ruby -Ku
|
2
|
+
|
3
|
+
Encoding.default_external = "UTF-8" # wake up, smell the coffee
|
4
|
+
|
5
|
+
require 'kramdown'
|
6
|
+
require 'kramdown-parser-gfm'
|
7
|
+
|
8
|
+
if ARGV[0] == '-k' # kramdown
|
9
|
+
MARKDOWN_BR = "\\\\\n"
|
10
|
+
ARGV.shift
|
11
|
+
end
|
12
|
+
|
13
|
+
if ARGV[0] == '-c' # commonmark
|
14
|
+
MARKDOWN_BR = "\\\n"
|
15
|
+
ARGV.shift
|
16
|
+
end
|
17
|
+
|
18
|
+
if ARGV[0] == '-b' # universal HTML
|
19
|
+
MARKDOWN_BR = "<br/>\n"
|
20
|
+
ARGV.shift
|
21
|
+
end
|
22
|
+
|
23
|
+
MARKDOWN_BR ||= " \n" # original Gruber
|
24
|
+
|
25
|
+
module Kramdown
|
26
|
+
|
27
|
+
module Converter
|
28
|
+
|
29
|
+
# Converts an element tree to the kramdown format.
|
30
|
+
class Kramdown < Base
|
31
|
+
|
32
|
+
# Argh
|
33
|
+
def convert_br(_el, _opts)
|
34
|
+
MARKDOWN_BR
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
puts Kramdown::Document.new(ARGF.read, input: 'GFM', gfm_quirks: 'paragraph_end').to_kramdown
|
@@ -87,9 +87,9 @@ active_names.each do |name|
|
|
87
87
|
FileUtils.touch(name0) # because name1 already exists, we believe name0 is fresh
|
88
88
|
else
|
89
89
|
begin
|
90
|
-
url0 = "https://datatracker.ietf.org/doc/bibxml3/draft-#{namepart}
|
90
|
+
url0 = "https://datatracker.ietf.org/doc/bibxml3/draft-#{namepart}.xml"
|
91
91
|
get_and_write_resource_persistently(url0, name0) # get name0 first
|
92
|
-
url1 = "https://datatracker.ietf.org/doc/bibxml3/draft-#{namepart}-#{version}
|
92
|
+
url1 = "https://datatracker.ietf.org/doc/bibxml3/draft-#{namepart}-#{version}.xml"
|
93
93
|
get_and_write_resource_persistently(url1, name1) # then name1 to mark this as updated
|
94
94
|
rescue => e
|
95
95
|
warn "*** #{name0}: #{e}"
|
data/bin/kramdown-rfc2629
CHANGED
@@ -12,6 +12,24 @@ KDRFC_VERSION=Gem.loaded_specs["kramdown-rfc2629"].version rescue "unknown-versi
|
|
12
12
|
|
13
13
|
Encoding.default_external = "UTF-8" # wake up, smell the coffee
|
14
14
|
|
15
|
+
# Note that this doesn't attempt to handle HT characters
|
16
|
+
def remove_indentation(s)
|
17
|
+
l = s.lines
|
18
|
+
indent = l.grep(/\S/).map {|l| l[/^\s*/].size}.min
|
19
|
+
l.map {|li| li.sub(/^ {0,#{indent}}/, "")}.join
|
20
|
+
end
|
21
|
+
|
22
|
+
def add_quote(s)
|
23
|
+
l = s.lines
|
24
|
+
l.map {|li| "> #{li}"}.join
|
25
|
+
end
|
26
|
+
|
27
|
+
def process_chunk(s, dedent, quote)
|
28
|
+
s = remove_indentation(s) if dedent
|
29
|
+
s = add_quote(s) if quote
|
30
|
+
s
|
31
|
+
end
|
32
|
+
|
15
33
|
def boilerplate(key)
|
16
34
|
case key.downcase
|
17
35
|
when /\Abcp14(info)?(\+)?(-tagged)?\z/i
|
@@ -437,8 +455,34 @@ if input[-1] != "\n"
|
|
437
455
|
# warn "*** added missing newline at end"
|
438
456
|
input << "\n" # fix #26
|
439
457
|
end
|
440
|
-
input.gsub!(/^\{::include\s+(.*?)\}/) {
|
441
|
-
|
458
|
+
input.gsub!(/^\{::include((?:-[a-z]+)*)\s+(.*?)\}/) {
|
459
|
+
include_flags = $1
|
460
|
+
fn = [$2]
|
461
|
+
chunks = false
|
462
|
+
dedent = false
|
463
|
+
quote = false
|
464
|
+
include_flags.split("-") do |flag|
|
465
|
+
case flag
|
466
|
+
when ""
|
467
|
+
when "quote"
|
468
|
+
quote = true
|
469
|
+
when "dedent"
|
470
|
+
dedent = true
|
471
|
+
when "all", "last"
|
472
|
+
fn = fn.flat_map{|n| Dir[n]}
|
473
|
+
fn = [fn.last] if flag == "last"
|
474
|
+
chunks = fn.map{ |f|
|
475
|
+
ret = process_chunk(File.read(f), dedent, quote)
|
476
|
+
dedent = false; quote = false
|
477
|
+
ret
|
478
|
+
}
|
479
|
+
else
|
480
|
+
warn "** unknown include flag #{flag}"
|
481
|
+
end
|
482
|
+
end
|
483
|
+
chunks = fn.map{|f| File.read(f)} unless chunks # no all/last
|
484
|
+
chunks = chunks.map {|ch| process_chunk(ch, dedent, quote)}
|
485
|
+
chunks.join.chomp
|
442
486
|
} unless ENV["KRAMDOWN_SAFE"]
|
443
487
|
input.gsub!(/^\{::boilerplate\s+(.*?)\}/) {
|
444
488
|
boilerplate($1)
|
data/kramdown-rfc2629.gemspec
CHANGED
@@ -1,17 +1,18 @@
|
|
1
1
|
spec = Gem::Specification.new do |s|
|
2
2
|
s.name = 'kramdown-rfc2629'
|
3
|
-
s.version = '1.5.
|
3
|
+
s.version = '1.5.8'
|
4
4
|
s.summary = "Kramdown extension for generating RFC 7749 XML."
|
5
5
|
s.description = %{An RFC7749 (XML2RFC) generating backend for Thomas Leitner's
|
6
6
|
"kramdown" markdown parser. Mostly useful for RFC writers.}
|
7
7
|
s.add_dependency('kramdown', '~> 2.3.0')
|
8
|
+
s.add_dependency('kramdown-parser-gfm', '~> 1.1')
|
8
9
|
s.add_dependency('certified', '~> 1.0')
|
9
10
|
s.add_dependency('json_pure', '~> 2.0')
|
10
|
-
s.files = Dir['lib/**/*.rb'] + %w(README.md LICENSE kramdown-rfc2629.gemspec bin/kdrfc bin/kramdown-rfc2629 bin/doilit bin/kramdown-rfc-extract-markdown data/kramdown-rfc2629.erb data/encoding-fallbacks.txt data/math.json)
|
11
|
+
s.files = Dir['lib/**/*.rb'] + %w(README.md LICENSE kramdown-rfc2629.gemspec bin/kdrfc bin/kramdown-rfc2629 bin/doilit bin/kramdown-rfc-extract-markdown data/kramdown-rfc2629.erb data/encoding-fallbacks.txt data/math.json bin/kramdown-rfc-cache-subseries-bibxml bin/de-gfm)
|
11
12
|
s.require_path = 'lib'
|
12
13
|
s.executables = ['kramdown-rfc2629', 'doilit', 'kramdown-rfc-extract-markdown',
|
13
14
|
'kdrfc', 'kramdown-rfc-cache-i-d-bibxml',
|
14
|
-
'kramdown-rfc-cache-subseries-bibxml']
|
15
|
+
'kramdown-rfc-cache-subseries-bibxml', 'de-gfm']
|
15
16
|
s.required_ruby_version = '>= 2.3.0'
|
16
17
|
# s.requirements = 'wget'
|
17
18
|
# s.has_rdoc = true
|
data/lib/kramdown-rfc/refxml.rb
CHANGED
@@ -51,6 +51,10 @@ module KramdownRFC
|
|
51
51
|
# -- only works for people with exactly one last name and uncomplicated first names
|
52
52
|
if n = aups.rest["name"]
|
53
53
|
n = n.split
|
54
|
+
if s = aups.rest["surname"]
|
55
|
+
s = s.split
|
56
|
+
# XXX remove s from n; use n[0..-2] otherwise.
|
57
|
+
end
|
54
58
|
aups.rest["initials"] ||= n[0..-2].map(&:chr).join('.') << '.'
|
55
59
|
aups.rest["surname"] ||= n[-1]
|
56
60
|
end
|
data/lib/kramdown-rfc2629.rb
CHANGED
@@ -54,7 +54,11 @@ module Kramdown
|
|
54
54
|
def self.idref_cleanup(href)
|
55
55
|
# can't start an IDREF with a number or reserved start
|
56
56
|
if href =~ / /
|
57
|
-
|
57
|
+
if $options.v3
|
58
|
+
warn "** space(s) in cross-reference '#{href}' -- are you trying to use section references?"
|
59
|
+
else
|
60
|
+
warn "** space(s) in cross-reference '#{href}' -- note that section references are supported in v3 mode only."
|
61
|
+
end
|
58
62
|
end
|
59
63
|
href.gsub(/\A(?:[0-9]|section-|u-|figure-|table-|iref-)/) { "_#{$&}" }
|
60
64
|
end
|
@@ -944,7 +948,7 @@ COLORS
|
|
944
948
|
],
|
945
949
|
"I-D" => ["bibxml3", false, false,
|
946
950
|
->(fn, n){ [fn,
|
947
|
-
"https://datatracker.ietf.org/doc/bibxml3/draft-#{n.sub(/\Adraft-/, '')}
|
951
|
+
"https://datatracker.ietf.org/doc/bibxml3/draft-#{n.sub(/\Adraft-/, '')}.xml"] }
|
948
952
|
],
|
949
953
|
"BCP" => ["bibxml-rfcsubseries", 86400*7, false,
|
950
954
|
->(fn, n){ Rfc2629::bcp_std_ref("BCP", n) }
|
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.5.
|
4
|
+
version: 1.5.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Carsten Bormann
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-07
|
11
|
+
date: 2021-10-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: kramdown
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 2.3.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: kramdown-parser-gfm
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.1'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.1'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: certified
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -63,11 +77,13 @@ executables:
|
|
63
77
|
- kdrfc
|
64
78
|
- kramdown-rfc-cache-i-d-bibxml
|
65
79
|
- kramdown-rfc-cache-subseries-bibxml
|
80
|
+
- de-gfm
|
66
81
|
extensions: []
|
67
82
|
extra_rdoc_files: []
|
68
83
|
files:
|
69
84
|
- LICENSE
|
70
85
|
- README.md
|
86
|
+
- bin/de-gfm
|
71
87
|
- bin/doilit
|
72
88
|
- bin/kdrfc
|
73
89
|
- bin/kramdown-rfc-cache-i-d-bibxml
|