kramdown-rfc2629 1.7.33 → 1.7.34

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 47f324d710ac5e825e53466b15d1d6e498d72ff36269c8efd62e2d91df388b29
4
- data.tar.gz: 9d590ac7999e30b0bcd46db31bbaac323adf7afcba882a1246ce2a755ae8e6c4
3
+ metadata.gz: 578ba11fded96819876c37b58d2218984ea5e555d45b92b6f43eb9e0bf0db92e
4
+ data.tar.gz: 60005eb557bee97cf0ce1edfe00a64c976a6b2e8df999f9dc1a30ca6aa346bd9
5
5
  SHA512:
6
- metadata.gz: 82e9a4b4ae341f1d63f72d06830dc7c0c53daf9656442a27da13431d7bde2e45597b8c30ca0bf2a8c7021103526a60a67854c0bd432e55ac76182e1061939b88
7
- data.tar.gz: bc165c04270073db5bda471218774a6a8260905be9ed2330523655a65990a1327647a9eb4616f7865b8545b3b4c51fe9208db14f6c46870dc1dad65715a59fbb
6
+ metadata.gz: 6d1e37362972e50c000f548921a8e34d6eab1d54c81fabb1a563eee7218806593f8db5dbf74007ff2a2bd221f6249e57c853e83c5c8f9315301e82fd45b0fffb
7
+ data.tar.gz: 5ac5dc95f10144fbf805b644df0cef37b7bb3bbb15c1fa9ae75e0b5ec9bd437d8539a5e60d0885f7ead3b611d978aa4c54ac4662c996cf4b7d11c5783cb2e578
@@ -1,6 +1,6 @@
1
1
  spec = Gem::Specification.new do |s|
2
2
  s.name = 'kramdown-rfc2629'
3
- s.version = '1.7.33'
3
+ s.version = '1.7.34'
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.}
@@ -18,9 +18,18 @@ def add_quote(s)
18
18
  l.map {|li| "> #{li}"}.join
19
19
  end
20
20
 
21
- def process_chunk(s, nested, dedent, fold, quote)
21
+ def process_xml(s)
22
+ d = REXML::Document.new(s) # XXX add some better error handling
23
+ d.xml_decl.nowrite
24
+ d.delete d.doctype
25
+ d.to_s
26
+ end
27
+
28
+ def process_chunk(s, nested, dedent, fold, quote, xml, data)
22
29
  process_includes(s) if nested
23
30
  s = remove_indentation(s) if dedent
31
+ s = process_xml(s) if xml
32
+ s = %{src="data:application/octet-stream;base64,#{[s].pack('m0')}"} if data
24
33
  s = fold8792_1(s, *fold) if fold
25
34
  s = add_quote(s) if quote
26
35
  s
@@ -35,6 +44,8 @@ def process_includes(input)
35
44
  dedent = false
36
45
  fold = false
37
46
  quote = false
47
+ xml = false
48
+ data = false
38
49
  include_flags.split("-") do |flag|
39
50
  case flag
40
51
  when ""
@@ -44,6 +55,10 @@ def process_includes(input)
44
55
  quote = true
45
56
  when "dedent"
46
57
  dedent = true
58
+ when "xml"
59
+ xml = true
60
+ when "data"
61
+ data = true
47
62
  when /\Afold(\d*)(left(\d*))?(dry)?\z/
48
63
  fold = [$1.to_i, # col 0 for ''
49
64
  ($3.to_i if $2), # left 0 for '', nil if no "left"
@@ -52,7 +67,7 @@ def process_includes(input)
52
67
  fn = fn.flat_map{|n| Dir[n]}
53
68
  fn = [fn.last] if flag == "last"
54
69
  chunks = fn.map{ |f|
55
- ret = process_chunk(File.read(f), nested, dedent, fold, quote)
70
+ ret = process_chunk(File.read(f), nested, dedent, fold, quote, xml, data)
56
71
  nested = false; dedent = false; fold = false; quote = false
57
72
  ret
58
73
  }
@@ -61,7 +76,7 @@ def process_includes(input)
61
76
  end
62
77
  end
63
78
  chunks = fn.map{|f| File.read(f)} unless chunks # no all/last
64
- chunks = chunks.map {|ch| process_chunk(ch, nested, dedent, fold, quote)}
79
+ chunks = chunks.map {|ch| process_chunk(ch, nested, dedent, fold, quote, xml, data)}
65
80
  chunks.join.chomp
66
81
  }
67
82
  end
@@ -44,7 +44,7 @@ def doi_citeproc_to_lit(cite, fuzzy)
44
44
  lit["author"] = authors.map do |au|
45
45
  lau = {}
46
46
  if (l = au["literal"])
47
- case l
47
+ case l # 10.3254/978-1-61499-018-5-115
48
48
  when /\A(.*) ([A-Z][.](?:-[A-Z][.])*)\z/
49
49
  lau["ins"] = "#$2 #$1"
50
50
  else
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kramdown-rfc2629
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.33
4
+ version: 1.7.34
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carsten Bormann