kramdown-rfc2629 1.6.9 → 1.6.10

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: a5efefbd462f83ca8a6028732587b93cdcb325dced1d3517c431951a460935ba
4
- data.tar.gz: 5e419a6c6450b96ef213aa875beb1ebd2a8fab50a7dfbbe3c75f551fd40fb160
3
+ metadata.gz: 0011d934206208f849e93de498b4b423f5576d3c689c88ba1f68c4e9977d402e
4
+ data.tar.gz: f7aad173988f7fb96d53aba881ec7fef5338b2f358a765af289bd3dd1112ce0a
5
5
  SHA512:
6
- metadata.gz: c7f4b69d71d42913d164727465b4e998a58ef5df9378e563030ec9edea6028ea55908c41fca51aa6db760d806fa80372a71a83a5b3a134a294b90bc3ad99e5ae
7
- data.tar.gz: a22265e02addd8fefcc79b40acd864df936147d9c0e3004916e8f0c5649d719970e4a19772f47a70d92051efa50f0dcde2771d7f8994c15536d8ed8d8143fd19
6
+ metadata.gz: 431a7f5f7ca19ad6a4ac9f2b4bd5d874c71b873c9456befea5846059c69eefb6ecc900fe06a75e3d50359af811e970292ac3f3f2d56d9798b4294891706b7b09
7
+ data.tar.gz: e7b15df29c4f805d16547650f751535cc0a47e710959f384b58bf9b8351b064d90775a64eff4285711607c9b10d93c05a98309e5bafcc158f7b8b947c0145e71
data/bin/doilit CHANGED
@@ -12,6 +12,7 @@ require 'kramdown-rfc/refxml'
12
12
  ACCEPT_CITE_JSON = {"Accept" => "application/citeproc+json"}
13
13
 
14
14
  $verbose = false
15
+ $fuzzy = false
15
16
  $handle = "a"
16
17
  $xml = false
17
18
 
@@ -25,6 +26,9 @@ ARGV.each do |doi|
25
26
  warn '*** please "gem install open-uri-cached" to enable caching'
26
27
  end
27
28
  next
29
+ when "-f"
30
+ $fuzzy = true
31
+ next
28
32
  when "-v"
29
33
  $verbose = true
30
34
  next
@@ -36,7 +40,7 @@ ARGV.each do |doi|
36
40
  $xml = true
37
41
  next
38
42
  when /\A-/
39
- warn "*** Usage: doilit [-c] [-v] [-h=handle|-x=xmlhandle] doi..."
43
+ warn "*** Usage: doilit [-c] [-f] [-v] [-h=handle|-x=xmlhandle] doi..."
40
44
  exit 1
41
45
  end
42
46
  cite = JSON.parse(URI("https://dx.doi.org/#{doi}").open(ACCEPT_CITE_JSON).read)
@@ -72,6 +76,13 @@ ARGV.each do |doi|
72
76
  end
73
77
  end
74
78
  end
79
+ if !lit.key?("date") && $fuzzy && (iss = cite["created"])
80
+ if dp = iss["date-parts"]
81
+ if Integer === (dp = dp[0])[0]
82
+ lit["date"] = ["%04d" % dp[0], *dp[1..-1].map {|p| "%02d" % p}].join("-")
83
+ end
84
+ end
85
+ end
75
86
  if (ct = cite["container-title"]) && ct != []
76
87
  info = []
77
88
  if v = cite["volume"]
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+ # -*- coding: utf-8 -*-
3
+ require 'rexml/document'
4
+ require 'kramdown-rfc/autolink-iref-cleanup'
5
+
6
+ d = REXML::Document.new(ARGF.read)
7
+ autolink_iref_cleanup(d)
8
+ puts d.to_s
@@ -1,6 +1,6 @@
1
1
  spec = Gem::Specification.new do |s|
2
2
  s.name = 'kramdown-rfc2629'
3
- s.version = '1.6.9'
3
+ s.version = '1.6.10'
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.}
@@ -8,11 +8,13 @@ spec = Gem::Specification.new do |s|
8
8
  s.add_dependency('kramdown-parser-gfm', '~> 1.1')
9
9
  s.add_dependency('certified', '~> 1.0')
10
10
  s.add_dependency('json_pure', '~> 2.0')
11
- s.files = Dir['lib/**/*.rb'] + %w(README.md LICENSE kramdown-rfc2629.gemspec bin/kdrfc bin/kramdown-rfc 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/kramdown-rfc-autolink-iref-cleanup.rb bin/de-gfm)
11
+ s.files = Dir['lib/**/*.rb'] + %w(README.md LICENSE kramdown-rfc2629.gemspec bin/kdrfc bin/kramdown-rfc 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/kramdown-rfc-autolink-iref-cleanup bin/de-gfm)
12
12
  s.require_path = 'lib'
13
13
  s.executables = ['kramdown-rfc', 'kramdown-rfc2629', 'doilit', 'kramdown-rfc-extract-markdown',
14
14
  'kdrfc', 'kramdown-rfc-cache-i-d-bibxml',
15
- 'kramdown-rfc-cache-subseries-bibxml', 'de-gfm']
15
+ 'kramdown-rfc-cache-subseries-bibxml',
16
+ 'kramdown-rfc-autolink-iref-cleanup',
17
+ 'de-gfm']
16
18
  s.required_ruby_version = '>= 2.3.0'
17
19
  # s.requirements = 'wget'
18
20
  # s.has_rdoc = true
@@ -0,0 +1,29 @@
1
+ require 'rexml/document'
2
+
3
+ def autolink_iref_cleanup(d)
4
+
5
+ d.root.get_elements("//section[@anchor]").each do |sec|
6
+ anchor = sec['anchor']
7
+ irefs = {}
8
+ sec.get_elements(".//xref[@target='#{anchor}'][@format='none']").each do |xr|
9
+ ne = xr.next_element
10
+ if ne && ne.name == "iref" && (item = ne['item'])
11
+ irefs[item] = ne['subitem'] # XXX one subitem only
12
+ ne.remove
13
+ chi = xr.children
14
+ chi[1..-1].reverse.each do |ch|
15
+ xr.parent.insert_after(xr, ch)
16
+ end
17
+ xr.replace_with(chi[0])
18
+ end
19
+ end
20
+ irefs.each do |k, v|
21
+ sec.insert_after(sec.get_elements("name").first,
22
+ e = REXML::Element.new("iref", sec))
23
+ e.attributes["item"] = k
24
+ e.attributes["subitem"] = v
25
+ e.attributes["primary"] = 'true'
26
+ end
27
+ end
28
+
29
+ end
@@ -254,6 +254,10 @@ def xml_from_sections(input)
254
254
  end
255
255
  end
256
256
 
257
+ if o = ps[:'autolink-iref-cleanup']
258
+ $options.autolink_iref_cleanup = o
259
+ end
260
+
257
261
  coding_override = ps.has(:coding)
258
262
  smart_quotes = ps[:smart_quotes]
259
263
  typographic_symbols = ps[:typographic_symbols]
@@ -570,6 +574,15 @@ if $options.v3_used && !$options.v3
570
574
  $options.v3 = true
571
575
  end
572
576
 
577
+ if $options.autolink_iref_cleanup
578
+ require 'rexml/document'
579
+ require 'kramdown-rfc/autolink-iref-cleanup'
580
+
581
+ d = REXML::Document.new(output)
582
+ autolink_iref_cleanup(d)
583
+ output = d.to_s
584
+ end
585
+
573
586
  if coding_override
574
587
  output = output.encode(Encoding.find(coding_override), fallback: FALLBACK)
575
588
  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.9
4
+ version: 1.6.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carsten Bormann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-05-05 00:00:00.000000000 Z
11
+ date: 2022-05-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: kramdown
@@ -78,6 +78,7 @@ executables:
78
78
  - kdrfc
79
79
  - kramdown-rfc-cache-i-d-bibxml
80
80
  - kramdown-rfc-cache-subseries-bibxml
81
+ - kramdown-rfc-autolink-iref-cleanup
81
82
  - de-gfm
82
83
  extensions: []
83
84
  extra_rdoc_files: []
@@ -88,7 +89,7 @@ files:
88
89
  - bin/doilit
89
90
  - bin/kdrfc
90
91
  - bin/kramdown-rfc
91
- - bin/kramdown-rfc-autolink-iref-cleanup.rb
92
+ - bin/kramdown-rfc-autolink-iref-cleanup
92
93
  - bin/kramdown-rfc-cache-i-d-bibxml
93
94
  - bin/kramdown-rfc-cache-subseries-bibxml
94
95
  - bin/kramdown-rfc-extract-markdown
@@ -97,6 +98,7 @@ files:
97
98
  - data/kramdown-rfc2629.erb
98
99
  - data/math.json
99
100
  - kramdown-rfc2629.gemspec
101
+ - lib/kramdown-rfc/autolink-iref-cleanup.rb
100
102
  - lib/kramdown-rfc/command.rb
101
103
  - lib/kramdown-rfc/erb.rb
102
104
  - lib/kramdown-rfc/gzip-clone.rb
@@ -1,31 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # -*- coding: utf-8 -*-
3
- require 'rexml/document'
4
-
5
- d = REXML::Document.new(ARGF.read)
6
-
7
- d.root.get_elements("//section[@anchor]").each do |sec|
8
- anchor = sec['anchor']
9
- irefs = {}
10
- sec.get_elements(".//xref[@target='#{anchor}'][@format='none']").each do |xr|
11
- ne = xr.next_element
12
- if ne && ne.name == "iref" && (item = ne['item'])
13
- irefs[item] = ne['subitem'] # XXX one subitem only
14
- ne.remove
15
- chi = xr.children
16
- chi[1..-1].reverse.each do |ch|
17
- xr.parent.insert_after(xr, ch)
18
- end
19
- xr.replace_with(chi[0])
20
- end
21
- end
22
- irefs.each do |k, v|
23
- sec.insert_after(sec.get_elements("name").first,
24
- e = REXML::Element.new("iref", sec))
25
- e.attributes["item"] = k
26
- e.attributes["subitem"] = v
27
- e.attributes["primary"] = 'true'
28
- end
29
- end
30
-
31
- puts d.to_s