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 +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["']\?>/, '').
         
     |