kramdown-rfc2629 1.4.13 → 1.4.14.pre

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
  SHA256:
3
- metadata.gz: 509111a53b346a7af409423bc1aea0e64c3fbded3e42868a875de6b867392429
4
- data.tar.gz: 3c882b8d76cbbfcc9e070157c453a25105fe23de1d061a2c0bc56591857e7f08
3
+ metadata.gz: eae0eb8f4dd2fc504dae8740508bde5266b9e914780999977d1633d16537a1aa
4
+ data.tar.gz: f373cfb67d09360f2d79480acca773d3f8af0454e643600406e845a4ffb8072f
5
5
  SHA512:
6
- metadata.gz: a42a8122990612bb885799121492673d37f47285d1481a0b2db4e0a2e12b2ebee9b630131596f228a99daed62190fcf411317b37434dc46cf84e429ede139bdb
7
- data.tar.gz: e5197f5394cfa12dd11042bb5c90d73dd02e6582f05175e7b2516c1d731fbd13d7699106666f43b1bd1ec1c98473229ba618f3cfde48a40759ec137d1e10087f
6
+ metadata.gz: 88e3ed1e8713e1cf2ba6ceb4dd3aff3b83ab3397339edc83a9230fab5a2ac716a133be9acfd22a0a9bde793e8fecb709976f04285bfd0ebb09dec3c005fd3a1a
7
+ data.tar.gz: 8fe774e5ee8ab20885472f2a30fe5c65aab4ea56d80f7e4e334af25a4997a927fca85afd289b78d9088273822385b5ab96f15b0536657b4775516acb62fb049e
data/bin/kramdown-rfc2629 CHANGED
@@ -98,7 +98,61 @@ def yaml_load(input, *args)
98
98
  end
99
99
  else
100
100
  YAML.load(input)
101
- end
101
+ end
102
+ end
103
+
104
+ def process_kramdown_options(coding_override = nil,
105
+ smart_quotes = nil, typographic_symbols = nil,
106
+ header_kramdown_options = nil)
107
+
108
+ ascii_target = coding_override && coding_override =~ /ascii/
109
+ suppress_typography = ascii_target || $options.v3
110
+ entity_output = ascii_target ? :numeric : :as_char;
111
+
112
+ options = {input: 'RFC2629Kramdown', entity_output: entity_output, link_defs: {}}
113
+
114
+ if smart_quotes.nil? && suppress_typography
115
+ smart_quotes = false
116
+ end
117
+ if smart_quotes == false
118
+ smart_quotes = ["'".ord, "'".ord, '"'.ord, '"'.ord]
119
+ end
120
+ case smart_quotes
121
+ when Array
122
+ options[:smart_quotes] = smart_quotes
123
+ when nil, true
124
+ # nothin
125
+ else
126
+ warn "*** Can't deal with smart_quotes value #{smart_quotes.inspect}"
127
+ end
128
+
129
+ if typographic_symbols.nil? && suppress_typography
130
+ typographic_symbols = false
131
+ end
132
+ if typographic_symbols == false
133
+ typographic_symbols = Hash[::Kramdown::Parser::Kramdown::TYPOGRAPHIC_SYMS.map { |k, v|
134
+ if Symbol === v
135
+ [v.intern, k]
136
+ end
137
+ }.compact]
138
+ end
139
+ # warn [:TYPOGRAPHIC_SYMBOLS, typographic_symbols].to_yaml
140
+ case typographic_symbols
141
+ when Hash
142
+ options[:typographic_symbols] = typographic_symbols
143
+ when nil, true
144
+ # nothin
145
+ else
146
+ warn "*** Can't deal with typographic_symbols value #{typographic_symbols.inspect}"
147
+ end
148
+
149
+ if header_kramdown_options
150
+ options.merge! header_kramdown_options
151
+ end
152
+
153
+ $global_markdown_options = options # For nested calls in bibref annotation processing and xref text
154
+
155
+ options
102
156
  end
103
157
 
104
158
  XREF_SECTIONS_RE = ::Kramdown::Parser::RFC2629Kramdown::SECTIONS_RE
@@ -127,10 +181,15 @@ def xml_from_sections(input)
127
181
  # We put back the "---" plus gratuitous blank lines to hack the line number in errors
128
182
  yaml_in = input[/---\s*/] << sections.shift[2]
129
183
  ps = KramdownRFC::ParameterSet.new(yaml_load(yaml_in, [Date], [], true))
184
+
130
185
  coding_override = ps.has(:coding)
131
186
  smart_quotes = ps[:smart_quotes]
132
187
  typographic_symbols = ps[:typographic_symbols]
133
- kramdown_options = ps[:kramdown_options]
188
+ header_kramdown_options = ps[:kramdown_options]
189
+
190
+ kramdown_options = process_kramdown_options(coding_override,
191
+ smart_quotes, typographic_symbols,
192
+ header_kramdown_options)
134
193
 
135
194
  # all the other sections are put in a Hash, possibly concatenated from parts there
136
195
  sechash = Hash.new{ |h,k| h[k] = ""}
@@ -243,13 +302,12 @@ def xml_from_sections(input)
243
302
  end
244
303
 
245
304
  stand_alone = ps[:stand_alone]
246
- link_defs = {}
247
305
 
248
306
  [:normative, :informative].each do |sn|
249
307
  if refs = ps[sn]
250
308
  refs.each do |k, v|
251
309
  href = k.gsub(/\A[0-9]/) { "_#{$&}" } # can't start an IDREF with a number
252
- link_defs[k] = ["##{href}", nil] # allow [RFC2119] in addition to {{RFC2119}}
310
+ kramdown_options[:link_defs][k] = ["##{href}", nil] # allow [RFC2119] in addition to {{RFC2119}}
253
311
 
254
312
  bibref = anchor_to_bibref[k] || k
255
313
  bts, url = bibtagsys(bibref, k, stand_alone)
@@ -270,8 +328,6 @@ def xml_from_sections(input)
270
328
  if bts && !v.delete("override")
271
329
  warn "*** warning: explicit settings completely override canned bibxml in reference #{k}"
272
330
  end
273
- options = {input: 'RFC2629Kramdown', entity_output: coding_override, link_defs: link_defs}
274
- $global_markdown_options = options # For recursive calls in bibref annotation processing.
275
331
  sechash[sn.to_s] << KramdownRFC::ref_to_xml(k, v)
276
332
  end
277
333
  end
@@ -289,7 +345,7 @@ def xml_from_sections(input)
289
345
  warn "*** sections left #{sechash.keys.inspect}!"
290
346
  end
291
347
 
292
- [input, coding_override, link_defs, smart_quotes, typographic_symbols, kramdown_options]
348
+ [input, kramdown_options, coding_override]
293
349
  end
294
350
 
295
351
  XML_RESOURCE_ORG_PREFIX = Kramdown::Converter::Rfc2629::XML_RESOURCE_ORG_PREFIX
@@ -371,7 +427,6 @@ if $options.verbose && $options.v3
371
427
  warn "*** not much RFCXMLv3 stuff implemented yet"
372
428
  end
373
429
 
374
- coding_override = :as_char
375
430
  input = ARGF.read
376
431
  if input[0] == "\uFEFF"
377
432
  warn "*** There is a leading byte order mark. Ignored."
@@ -392,59 +447,18 @@ if input =~ /[\t]/
392
447
  input = expand_tabs(input)
393
448
  end
394
449
 
395
- link_defs = {}
396
450
  if input =~ /\A---/ # this is a sectionized file
397
451
  do_the_tls_dance unless ENV["KRAMDOWN_DONT_VERIFY_HTTPS"]
398
- input, target_coding, link_defs, smart_quotes, typographic_symbols, kramdown_options = xml_from_sections(input)
452
+ input, options, coding_override = xml_from_sections(input)
453
+ else
454
+ options = process_kramdown_options # all default
399
455
  end
400
456
  if input =~ /\A<\?xml/ # if this is a whole XML file, protect it
401
457
  input = "{::nomarkdown}\n#{input}\n{:/nomarkdown}\n"
402
458
  end
403
- options = {input: 'RFC2629Kramdown', entity_output: coding_override, link_defs: link_defs}
404
- if smart_quotes.nil?
405
- if (target_coding && target_coding =~ /ascii/) || $options.v3
406
- smart_quotes = false
407
- end
408
- end
409
- if smart_quotes == false
410
- smart_quotes = ["'".ord, "'".ord, '"'.ord, '"'.ord]
411
- end
412
- case smart_quotes
413
- when Array
414
- options[:smart_quotes] = smart_quotes
415
- when nil, true
416
- # nothin
417
- else
418
- warn "*** Can't deal with smart_quotes value #{smart_quotes.inspect}"
419
- end
420
- if typographic_symbols.nil?
421
- if (target_coding && target_coding =~ /ascii/) || $options.v3
422
- typographic_symbols = false
423
- end
424
- end
425
- if typographic_symbols == false
426
- typographic_symbols = Hash[::Kramdown::Parser::Kramdown::TYPOGRAPHIC_SYMS.map { |k, v|
427
- if Symbol === v
428
- [v.intern, k]
429
- end
430
- }.compact]
431
- end
432
- # warn [:TYPOGRAPHIC_SYMBOLS, typographic_symbols].to_yaml
433
- case typographic_symbols
434
- when Hash
435
- options[:typographic_symbols] = typographic_symbols
436
- when nil, true
437
- # nothin
438
- else
439
- warn "*** Can't deal with typographic_symbols value #{typographic_symbols.inspect}"
440
- end
441
-
442
- if kramdown_options
443
- options.merge! kramdown_options
444
- end
445
459
 
446
- if target_coding
447
- input = input.encode(Encoding.find(target_coding), fallback: FALLBACK)
460
+ if coding_override
461
+ input = input.encode(Encoding.find(coding_override), fallback: FALLBACK)
448
462
  end
449
463
 
450
464
  # warn "options: #{options.inspect}"
@@ -1,6 +1,6 @@
1
1
  spec = Gem::Specification.new do |s|
2
2
  s.name = 'kramdown-rfc2629'
3
- s.version = '1.4.13'
3
+ s.version = '1.4.14.pre'
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.}
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.4.13
4
+ version: 1.4.14.pre
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-05-21 00:00:00.000000000 Z
11
+ date: 2021-05-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: kramdown
@@ -98,9 +98,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
98
98
  version: 2.3.0
99
99
  required_rubygems_version: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ">="
101
+ - - ">"
102
102
  - !ruby/object:Gem::Version
103
- version: '0'
103
+ version: 1.3.1
104
104
  requirements: []
105
105
  rubygems_version: 3.2.15
106
106
  signing_key: