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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 49968f621678e46d7ecde1451347a63f8a9dd93d0c7dc1f822ee7314f1c7c3fc
4
- data.tar.gz: d94a74186a8be6c9880c8e15d73b7961df19ab566a55b5a3a643a34aaa1f3c5a
3
+ metadata.gz: aae2496e99617a40af73396c192f95468dc6121cf70c5e922f99a6b556845b9b
4
+ data.tar.gz: dc169593b56f2f5fe7c8aa4e0856235fbe8d30ee4305b2d9683bf48738602b9e
5
5
  SHA512:
6
- metadata.gz: 424d084703c00e29cad08da0ee6f4568ac6861772eef79fadf26c6f39a4747d6ec192f04abf262d3f26579d4e7fb8493d00c34f9cf01183cabec1b3ccbe1bf4a
7
- data.tar.gz: f5d6cf7487ce6601bf2cb3198c9d12727d5c4cc0752c5c9b11f6f29a43304874dca36653e047812486888889bc07e0999fad89d3847b0cb1122f0c020f9f33a1
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}/xml"
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}/xml"
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
- File.read($1).chomp
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)
@@ -1,17 +1,18 @@
1
1
  spec = Gem::Specification.new do |s|
2
2
  s.name = 'kramdown-rfc2629'
3
- s.version = '1.5.4'
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
@@ -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
@@ -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
- warn "** space(s) in cross-reference '#{href}' -- are you trying to use section references?"
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-/, '')}/xml"] }
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
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-25 00:00:00.000000000 Z
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