kramdown-rfc2629 1.0.41 → 1.0.42
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 +4 -0
- data/kramdown-rfc2629.gemspec +1 -1
- data/lib/kramdown-rfc2629.rb +20 -8
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 75ac2b119d2630278f0db1cb169ca40a25dc8f55
|
4
|
+
data.tar.gz: 013e491c8bcd6bb1d0b694919dd87813b958df2f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8f229ee5ceeed8ae1d926ffbe72fefa90a7d37902aad0b78220db53653e5d95ad4721c79a4a7a22edd87608746dbf7a2428175b1ab2d21744081e67dd313fbbd
|
7
|
+
data.tar.gz: b8bfa1df8e6d4679992bae4297940a789bca034553d55e52f2fcec07f6c25f06d6bb117e737ef8b4128064562714c70f4980f67e7f276377809262a28a78e483
|
data/bin/kramdown-rfc2629
CHANGED
@@ -199,6 +199,10 @@ if input[0] == "\uFEFF"
|
|
199
199
|
warn "*** There is a leading byte order mark. Ignored."
|
200
200
|
input[0..0] = ''
|
201
201
|
end
|
202
|
+
if input[-1] != "\n"
|
203
|
+
# warn "*** added missing newline at end"
|
204
|
+
input << "\n" # fix #26
|
205
|
+
end
|
202
206
|
input.gsub!(/^\{::include\s+(.*?)\}/) {
|
203
207
|
File.read($1).chomp
|
204
208
|
} unless ENV["KRAMDOWN_SAFE"]
|
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.0.
|
3
|
+
s.version = '1.0.42'
|
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.}
|
data/lib/kramdown-rfc2629.rb
CHANGED
@@ -408,11 +408,15 @@ module Kramdown
|
|
408
408
|
end
|
409
409
|
|
410
410
|
REFCACHEDIR = ENV["KRAMDOWN_REFCACHEDIR"] || ".refcache"
|
411
|
-
|
411
|
+
|
412
|
+
KRAMDOWN_OFFLINE = ENV["KRAMDOWN_OFFLINE"]
|
413
|
+
KRAMDOWN_REFCACHE_REFETCH = ENV["KRAMDOWN_REFCACHE_REFETCH"]
|
414
|
+
|
415
|
+
def get_and_cache_resource(url, tvalid = 7200, tn = Time.now)
|
412
416
|
Dir.mkdir(REFCACHEDIR) unless Dir.exists?(REFCACHEDIR)
|
413
417
|
fn = "#{REFCACHEDIR}/#{File.basename(url)}"
|
414
|
-
f = File.stat(fn) rescue nil
|
415
|
-
if !f || tn - f.ctime >= tvalid
|
418
|
+
f = File.stat(fn) rescue nil unless KRAMDOWN_REFCACHE_REFETCH
|
419
|
+
if !KRAMDOWN_OFFLINE && (!f || tn - f.ctime >= tvalid)
|
416
420
|
if f
|
417
421
|
message = "renewing (stale by #{"%.1f" % ((tn-f.ctime)/86400)} days)"
|
418
422
|
fetch_timeout = 10 # seconds, give up quickly if just renewing
|
@@ -457,17 +461,22 @@ module Kramdown
|
|
457
461
|
end
|
458
462
|
|
459
463
|
XML_RESOURCE_ORG_MAP = {
|
460
|
-
"RFC" => "bibxml",
|
464
|
+
"RFC" => ["bibxml", 86400*7], # these should change rarely
|
465
|
+
"I-D" => "bibxml3",
|
466
|
+
"W3C" => "bibxml4",
|
467
|
+
"3GPP" => "bibxml5",
|
461
468
|
"ANSI" => "bibxml2",
|
462
469
|
"CCITT" => "bibxml2",
|
463
470
|
"FIPS" => "bibxml2",
|
464
|
-
"IANA" => "bibxml2",
|
465
|
-
"IEEE" => "bibxml2",
|
471
|
+
# "IANA" => "bibxml2", overtaken by bibxml8
|
472
|
+
"IEEE" => "bibxml2", # now, how about bibxml6?
|
466
473
|
"ISO" => "bibxml2",
|
467
474
|
"ITU" => "bibxml2",
|
468
475
|
"NIST" => "bibxml2",
|
469
476
|
"OASIS" => "bibxml2",
|
470
477
|
"PKCS" => "bibxml2",
|
478
|
+
"DOI" => ["bibxml7", 86400], # 24 h cache at source anyway
|
479
|
+
"IANA" => ["bibxml8", 86400], # ditto
|
471
480
|
}
|
472
481
|
|
473
482
|
# XML_RESOURCE_ORG_HOST = ENV["XML_RESOURCE_ORG_HOST"] || "xml.resource.org"
|
@@ -475,6 +484,8 @@ module Kramdown
|
|
475
484
|
XML_RESOURCE_ORG_PREFIX = ENV["XML_RESOURCE_ORG_PREFIX"] ||
|
476
485
|
"https://#{XML_RESOURCE_ORG_HOST}/public/rfc"
|
477
486
|
|
487
|
+
KRAMDOWN_REFCACHETTL = (e = ENV["KRAMDOWN_REFCACHETTL"]) ? e.to_i : 3600
|
488
|
+
|
478
489
|
def convert_img(el, indent, opts) # misuse the tag!
|
479
490
|
if a = el.attr
|
480
491
|
alt = a.delete('alt').strip
|
@@ -487,10 +498,11 @@ module Kramdown
|
|
487
498
|
to_insert = ""
|
488
499
|
anchor.scan(/(W3C|3GPP|[A-Z-]+)[.]?([A-Za-z0-9.-]+)/) do |t, n|
|
489
500
|
fn = "reference.#{t}.#{n}.xml"
|
490
|
-
sub = XML_RESOURCE_ORG_MAP[t]
|
501
|
+
sub, ttl = XML_RESOURCE_ORG_MAP[t]
|
502
|
+
ttl ||= KRAMDOWN_REFCACHETTL # everything but RFCs might change a lot
|
491
503
|
puts "Huh: ${fn}" unless sub
|
492
504
|
url = "#{XML_RESOURCE_ORG_PREFIX}/#{sub}/#{fn}"
|
493
|
-
to_insert = get_and_cache_resource(url)
|
505
|
+
to_insert = get_and_cache_resource(url, ttl)
|
494
506
|
to_insert.scrub! rescue nil # only do this for Ruby >= 2.1
|
495
507
|
end
|
496
508
|
to_insert.gsub(/<\?xml version=["']1.0["'] encoding=["']UTF-8["']\?>/, '').
|