kramdown-rfc2629 1.5.4 → 1.5.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/kramdown-rfc2629 +46 -2
- data/kramdown-rfc2629.gemspec +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 241fa7d714b5ba3a4bc0060d59d9ae2e2241b4777a60023126570e6f48bdf26f
|
4
|
+
data.tar.gz: b51688aab8adba3ad3b351ecb7d15f52ab71acf70d0c4d27ab72f8ec4d377995
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fdde5cb2f7a8288476259eaa03216c12f1ed231c10275bd3a5b7679d64cbb23b65e00afa3e06dc497a028ffc0997c039f3e909c6ad661d0244208f3fa08c1f03
|
7
|
+
data.tar.gz: 16e3c5e17dd0d7b383c0cd875ea55572ccf8b6c6c1875436873cbbd93d9ab64171e9b93561b5a7f1d8c5ceb301adde38132a2ff10e8e70f66f783a7aade16d37
|
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,6 +1,6 @@
|
|
1
1
|
spec = Gem::Specification.new do |s|
|
2
2
|
s.name = 'kramdown-rfc2629'
|
3
|
-
s.version = '1.5.
|
3
|
+
s.version = '1.5.5'
|
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.}
|