kramdown-rfc2629 1.0.41 → 1.0.42

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
  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