kramdown-rfc2629 1.7.17 → 1.7.18

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: 52b682df54c2649c4ef7f2d2e08652c3709866207eab40c6fd40d667b4a00693
4
- data.tar.gz: dba5488edbd5881fa69f5bca0b98db2347500fc34aa2fcdb33d71ba881f9596c
3
+ metadata.gz: 2293add21de7f2adbd52f281c96186e5f5b5abc6be095cc5416eb2a8edb2a482
4
+ data.tar.gz: c4be0e44b23064c5462e7b9fc677472ff7a87be8f797cef028748cafde8f2621
5
5
  SHA512:
6
- metadata.gz: 9d4215bd5369fa73c6618101ae5c5e242ad3a1c6b6a586a588a81d8a31441efda575b3e1135be88c5204e7f81b744b744346086ea06dfb8b61b9a7eaf193c427
7
- data.tar.gz: db9621882c176186a9d407c38a0d573e849de7f6eac7483a7a666c788b9a14b3662faedb48a43796caad7a50b9b65c0f48cb4d523dae1e88c1fa940c582fc1d7
6
+ metadata.gz: d8acb9cfb46cc5fbfa2413bbd86bcde74998a99f21481cb910173205564d973a0329bd33574508df0e1f6317826c9da76672ae70c8b990525b0bb2186af79338
7
+ data.tar.gz: 0ee95eeaf8a6074923e41d47836b702e332f6b6719b78ff4d1cdd348cc1887c2229c93060a4f1456630a0b7960bb330fd0b0d1fb86e89b00045ed34d33f5914f
@@ -163,6 +163,7 @@
163
163
  {:/nomarkdown}
164
164
  {:quote: gi="blockquote"}
165
165
  {:aside: gi="aside"}
166
+ {:cref: gi="cref"}
166
167
  {:markers: sourcecode-markers="true"}
167
168
  {:unnumbered: numbered="false"}
168
169
  {:vspace: vspace="0"}
@@ -182,22 +183,34 @@
182
183
  <displayreference target="<%=k%>" to="<%=v%>"/>
183
184
  <% end -%>
184
185
 
185
- <% if sh = sechash.delete("normative") -%>
186
+ <% shn = sechash.delete("normative")
187
+ shi = sechash.delete("informative")
188
+ shc = shn && shi
189
+ if shc
190
+ -%>
191
+ <references title='References' anchor="sec-combined-references">
192
+ <% end -%>
193
+
194
+ <% if shn -%>
186
195
  <references title='Normative References' anchor="sec-normative-references">
187
196
 
188
- <%= sh %>
197
+ <%= shn %>
189
198
 
190
199
  </references>
191
200
  <% end -%>
192
201
 
193
- <% if sh = sechash.delete("informative") -%>
202
+ <% if shi -%>
194
203
  <references title='Informative References' anchor="sec-informative-references">
195
204
 
196
- <%= sh %>
205
+ <%= shi %>
197
206
 
198
207
  </references>
199
208
  <% end -%>
200
209
 
210
+ <% if shc -%>
211
+ </references>
212
+ <% end -%>
213
+
201
214
  <%= sechash.delete("back") %>
202
215
  <% sh = sechash.delete("contributor") -%>
203
216
  <% consec = ps.has("contributor") -%>
@@ -1,6 +1,6 @@
1
1
  spec = Gem::Specification.new do |s|
2
2
  s.name = 'kramdown-rfc2629'
3
- s.version = '1.7.17'
3
+ s.version = '1.7.18'
4
4
  s.summary = "Kramdown extension for generating RFCXML (RFC 799x)."
5
5
  s.description = %{An RFCXML (RFC 799x) generating backend for Thomas Leitner's
6
6
  "kramdown" markdown parser. Mostly useful for RFC writers.}
@@ -70,8 +70,8 @@ end
70
70
  def boilerplate(key)
71
71
  ret = ''
72
72
  case key.downcase
73
- when /\Abcp14(info)?(\+)?(-tagged)?(-bcp)?\z/i
74
- # $1 $2 $3 $4
73
+ when /\Abcp14(info)?(\+)?(-tagged)?(-bcp(14)?)?\z/i
74
+ # $1 $2 $3 $4 $5
75
75
  if $1
76
76
  ret << <<RFC8174ise
77
77
  Although this document is not an IETF Standards Track publication, it
@@ -110,11 +110,19 @@ PLUS
110
110
  TAGGED
111
111
  end
112
112
  if $4 # experimental; idnits complains:
113
+ if $5
114
+ # ** The document contains RFC2119-like boilerplate, but doesn't seem to
115
+ # mention RFC 2119. The boilerplate contains a reference [BCP14], but that
116
+ # reference does not seem to mention RFC 2119 either.
117
+ ret.sub!("BCP 14 {{!RFC2119}} {{!RFC8174}}",
118
+ "{{!BCP14}} ({{RFC2119}}) ({{RFC8174}})")
119
+ else
113
120
  # ** The document seems to lack a both a reference to RFC 2119 and the
114
121
  # recommended RFC 2119 boilerplate, even if it appears to use RFC 2119
115
122
  # keywords -- however, there's a paragraph with a matching beginning.
116
123
  # Boilerplate error?
117
- ret.sub!("{{!RFC2119}} {{!RFC8174}}", "{{!BCP14}}")
124
+ ret.sub!("{{!RFC2119}} {{!RFC8174}}", "{{!BCP14}}")
125
+ end
118
126
  end
119
127
  ret
120
128
  when /\Arfc\s*7942(info)?\z/i
@@ -376,6 +384,7 @@ def xml_from_sections(input)
376
384
  v.gsub!(/{{(#{
377
385
  spacify_re(XSR_PREFIX)
378
386
  })?([\w.\/_\-]+@)?(?:([?!])(-)?|(-))([\w._\-]+)(?:=([\w.\/_\-]+))?(#{
387
+ # 2 3 4 5 6 7
379
388
  XREF_TXT_SUFFIX
380
389
  })?(#{
381
390
  spacify_re(XSR_SUFFIX)
@@ -459,6 +468,9 @@ def xml_from_sections(input)
459
468
  sechash[sn.to_s] << %{&#{bts};\n} # ???
460
469
  end
461
470
  else
471
+ if v.nil? && (bri = bibref.to_i) != 0
472
+ v = bri
473
+ end # hack in {{?Err6543=8610}}
462
474
  if v && Integer === v
463
475
  case href
464
476
  when /\AErr(.*)/
@@ -478,7 +490,7 @@ def xml_from_sections(input)
478
490
  end
479
491
  end
480
492
  unless v && Hash === v
481
- warn "*** don't know how to expand ref #{k}"
493
+ warn "*** don't know how to expand ref #{k} #{v.inspect}"
482
494
  next
483
495
  end
484
496
  if bts && !v.delete("override")
@@ -32,6 +32,7 @@ class Object
32
32
  end
33
33
 
34
34
  module Kramdown
35
+ RFCXML_SPAN_ELEMENTS = Set.new(Kramdown::Parser::Html::Constants::HTML_SPAN_ELEMENTS)
35
36
 
36
37
  Kramdown::Options.define(:ol_start_at_first_marker, Kramdown::Options::Boolean, false, <<~EOF)
37
38
  If this option is `true`, an ordered list (<ol) will use the
@@ -837,7 +838,12 @@ COLORS
837
838
  if $options.v3
838
839
  gi = el.attr.delete('gi')
839
840
  if gi && gi != 'ul'
840
- "#{' '*indent}<#{gi}#{el_html_attributes(el)}>\n#{text}#{' '*indent}</#{gi}>\n"
841
+ if RFCXML_SPAN_ELEMENTS === gi
842
+ text.sub!(/\A\s*<t>(.*)<\/t>\s*\z/) {$1} # XXX unwrap inner text from block
843
+ "#{' '*indent}<t><#{gi}#{el_html_attributes(el)}>#{text}</#{gi}></t>\n"
844
+ else
845
+ "#{' '*indent}<#{gi}#{el_html_attributes(el)}>\n#{text}#{' '*indent}</#{gi}>\n"
846
+ end
841
847
  else
842
848
  "#{' '*indent}<ul#{el_html_attributes_with(el, {"empty" => 'true'})}><li>\n#{text}#{' '*indent}</li></ul>\n"
843
849
  end
@@ -876,6 +882,9 @@ COLORS
876
882
  clean = ''
877
883
  parts.each do |p|
878
884
  next if p.empty?
885
+ if p == "<br />"
886
+ p = "\u2028" # XXX
887
+ end
879
888
  d = REXML::Document.new("<foo>#{p}</foo>")
880
889
  t = REXML::XPath.each(d.root, "//text()").to_a.join
881
890
  if t != p
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.7.17
4
+ version: 1.7.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carsten Bormann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-06-17 00:00:00.000000000 Z
11
+ date: 2024-07-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: kramdown