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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 58c77634b1a2903e61a5e2084454f4afe278960c
4
- data.tar.gz: cb25b53f42b6f3a659265933e40e465ccdb511ac
3
+ metadata.gz: 75ac2b119d2630278f0db1cb169ca40a25dc8f55
4
+ data.tar.gz: 013e491c8bcd6bb1d0b694919dd87813b958df2f
5
5
  SHA512:
6
- metadata.gz: 5e7bcf654220959f5a5ecf805e6e887d6c97339ef63c07d7c941c58ce07022e7d75e027f755a36a50682cb3fc9509d894bbcf1f089f59fb1c20ab8bb1fd0fc64
7
- data.tar.gz: 0ec5125e2e848496d9f836d80ccacae49672989bb94adcd63b54e21e218a9a5f1d09ce34309d19f45c36df14b2653d9bcb1269246fa44476afedff496f26e787
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"]
@@ -1,6 +1,6 @@
1
1
  spec = Gem::Specification.new do |s|
2
2
  s.name = 'kramdown-rfc2629'
3
- s.version = '1.0.41'
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.}
@@ -408,11 +408,15 @@ module Kramdown
408
408
  end
409
409
 
410
410
  REFCACHEDIR = ENV["KRAMDOWN_REFCACHEDIR"] || ".refcache"
411
- def get_and_cache_resource(url, tn = Time.now, tvalid = 7200)
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", "I-D" => "bibxml3", "W3C" => "bibxml4", "3GPP" => "bibxml5",
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["']\?>/, '').
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.0.41
4
+ version: 1.0.42
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carsten Bormann