kramdown-rfc2629 1.3.32 → 1.3.33

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
  SHA256:
3
- metadata.gz: 7a63a768cc08e589dd15a5d52c77d3567ecd689ed5521ecb2f4772ee6b933a88
4
- data.tar.gz: db71bef12f52b7777f1a19b84ff5c19bf1f37835761291b2aaaa626b92d67c54
3
+ metadata.gz: 7b532912e56847cec71ed5c419ea08af4d19d3f6c7a4d91edffbfaa3005dd37f
4
+ data.tar.gz: 6dbf519c9eadbddb50a07f6b1cef88cdcc9d877a5f66614ececf6bf5bc2d3353
5
5
  SHA512:
6
- metadata.gz: 51deb8472aa941d6c7d21ec8e60173064a59cb426ccd3e48fdc2fad463a633197077be21a4d7298d08c32280d4df79e0a4990da23d39b96b94a881a27e6f5a91
7
- data.tar.gz: f38b8bde3c0464622b652994f67c0fb9bc501bd3fd3c7d53f3536d0e0dc251f8b706b38550967a268c1b21e156e272f78c3aafac4899621ed7077447bc5e0f91
6
+ metadata.gz: 0f7f9faf79c570a7bcca633aef94a6f27d997d861eca1ecad0855795eef44728d925cc1d1b7751454b6c122168d12ef4f341b4ed350d8aeb9247b53e13d523ba
7
+ data.tar.gz: 2dcdb7cf588bd99e8e983b71eefbbb0a2aec8785f466abe8e83f6b7ea40061aecea69abe6466d94d2dc69c019dd798a0569e5ed66b65efc42bf76d448ef45778
@@ -1,6 +1,6 @@
1
1
  spec = Gem::Specification.new do |s|
2
2
  s.name = 'kramdown-rfc2629'
3
- s.version = '1.3.32'
3
+ s.version = '1.3.33'
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.}
@@ -20,6 +20,7 @@ Kramdown::Parser::Html::Constants::HTML_SPAN_ELEMENTS.concat my_span_elements
20
20
  require 'rexml/parsers/baseparser'
21
21
  require 'open3' # for math
22
22
  require 'json' # for math
23
+ require 'rexml/document' # for SVG and bibxml acrobatics
23
24
 
24
25
  class Object
25
26
  def deep_clone
@@ -179,6 +180,7 @@ module Kramdown
179
180
  # :stopdoc:
180
181
 
181
182
  KRAMDOWN_PERSISTENT = ENV["KRAMDOWN_PERSISTENT"]
183
+ KRAMDOWN_PERSISTENT_VERBOSE = /v/ === KRAMDOWN_PERSISTENT
182
184
 
183
185
  if KRAMDOWN_PERSISTENT
184
186
  begin
@@ -292,7 +294,6 @@ COLORS
292
294
  end
293
295
 
294
296
  def svg_clean(s) # expensive, risky
295
- require "rexml/document"
296
297
  d = REXML::Document.new(s)
297
298
  REXML::XPath.each(d.root, "//*[@shape-rendering]") { |x| x.attributes["shape-rendering"] = nil } #; warn x.inspect }
298
299
  REXML::XPath.each(d.root, "//*[@text-rendering]") { |x| x.attributes["text-rendering"] = nil } #; warn x.inspect }
@@ -718,7 +719,7 @@ COLORS
718
719
  File.write(fn, response.body)
719
720
  end
720
721
  t2 = Time.now
721
- warn "(#{"%.3f" % (t2 - t1)} s)"
722
+ warn "(#{"%.3f" % (t2 - t1)} s)" if KRAMDOWN_PERSISTENT_VERBOSE
722
723
  end
723
724
 
724
725
  # this is now slightly dangerous as multiple urls could map to the same cachefile
@@ -805,6 +806,8 @@ COLORS
805
806
 
806
807
  KRAMDOWN_REFCACHETTL = (e = ENV["KRAMDOWN_REFCACHETTL"]) ? e.to_i : 3600
807
808
 
809
+ KRAMDOWN_NO_TARGETS = ENV['KRAMDOWN_NO_TARGETS']
810
+
808
811
  def convert_img(el, indent, opts) # misuse the tag!
809
812
  if a = el.attr
810
813
  alt = a.delete('alt').strip
@@ -838,10 +841,32 @@ COLORS
838
841
  # end
839
842
  to_insert = get_and_cache_resource(url, fn.gsub('/', '_'), ttl)
840
843
  to_insert.scrub! rescue nil # only do this for Ruby >= 2.1
841
- to_insert.gsub!(%r{target="https?://www.ietf.org/internet-drafts/},
842
- %{target="https://www.ietf.org/archive/id/}) if t == "I-D"
844
+
845
+ begin
846
+ d = REXML::Document.new(to_insert)
847
+ d.xml_decl.nowrite
848
+ d.root.attributes["anchor"] = anchor
849
+ if t == "RFC" or t == "I-D"
850
+ if KRAMDOWN_NO_TARGETS
851
+ d.root.attributes["target"] = nil
852
+ REXML::XPath.each(d.root, "/reference/format") { |x|
853
+ d.root.delete_element(x)
854
+ }
855
+ else
856
+ REXML::XPath.each(d.root, "/reference/format") { |x|
857
+ x.attributes["target"].sub!(%r{https?://www.ietf.org/internet-drafts/},
858
+ %{https://www.ietf.org/archive/id/}) if t == "I-D"
859
+ }
860
+ end
861
+ end
862
+ to_insert = d.to_s
863
+ rescue Exception => e
864
+ warn "** Can't manipulate reference XML: #{e}"
865
+ broken = true
866
+ to_insert = nil
867
+ end
843
868
  # this may be a bit controversial: Don't break the build if reference is broken
844
- if KRAMDOWN_OFFLINE
869
+ if KRAMDOWN_OFFLINE || broken
845
870
  unless to_insert
846
871
  to_insert = "<reference anchor='#{anchor}'> <front> <title>*** BROKEN REFERENCE ***</title> <author> <organization/> </author> <date/> </front> </reference>"
847
872
  warn "*** KRAMDOWN_OFFLINE: Inserting broken reference for #{fn}"
@@ -850,8 +875,7 @@ COLORS
850
875
  exit 66 unless to_insert # EX_NOINPUT
851
876
  end
852
877
  end
853
- to_insert.sub(/<\?xml version=["']1.0["'] encoding=["']UTF-8["']\?>/, '')
854
- .sub(/\banchor=(?:"[^"]+"|'[^']+')/, "anchor=\"#{anchor}\"")
878
+ to_insert
855
879
  else
856
880
  "<xref#{el_html_attributes(el)}>#{alt}</xref>"
857
881
  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.3.32
4
+ version: 1.3.33
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carsten Bormann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-16 00:00:00.000000000 Z
11
+ date: 2021-02-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: kramdown