kramdown-rfc2629 1.1.2 → 1.2.0
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/kdrfc +118 -0
- data/bin/kramdown-rfc2629 +1 -1
- data/kramdown-rfc2629.gemspec +3 -3
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3eddcf63f4104b7055bb8a022ddb37c75d9c0e18
|
4
|
+
data.tar.gz: c8b2131d960d0e14149c5f1d61cf8165dc462009
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b10a872278edda1366b90cb7d11265552e86e94f98a41ae16c2e5456b82e7cc49bddfd679fca7a1a83b0d9551df0002c2aba832bd95c6256bc13c38300ca15e2
|
7
|
+
data.tar.gz: 9e3550e46f1fd56959d716d9b6df7e16d9e0b396a2534337cfa7eae5cc38da3c335812571dcd769396fdd6f21f8784f0745947cd2002937c7d29078add9ba306
|
data/bin/kdrfc
ADDED
@@ -0,0 +1,118 @@
|
|
1
|
+
#!/usr/bin/env ruby -KU
|
2
|
+
require 'uri'
|
3
|
+
require 'net/http'
|
4
|
+
require 'open3'
|
5
|
+
|
6
|
+
def process_mkd(input, output)
|
7
|
+
warn "* converting locally from markdown #{input} to xml #{output}" if $options.verbose
|
8
|
+
o, s = Open3.capture2("kramdown-rfc2629", input)
|
9
|
+
if s.success?
|
10
|
+
File.open(output, "w") do |fo|
|
11
|
+
fo.print(o)
|
12
|
+
end
|
13
|
+
warn "* #{output} written" if $options.verbose
|
14
|
+
else
|
15
|
+
warn "*** kramdown-rfc failed, status #{s.exitstatus}"
|
16
|
+
exit 1
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def process_xml(*args)
|
21
|
+
if $options.remote
|
22
|
+
process_xml_remotely(*args)
|
23
|
+
else
|
24
|
+
process_xml_locally(*args)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def process_xml_locally(input, output)
|
29
|
+
warn "* converting locally from xml #{input} to txt #{output}" if $options.verbose
|
30
|
+
begin
|
31
|
+
o, s = Open3.capture2("xml2rfc", input)
|
32
|
+
puts o
|
33
|
+
if s.success?
|
34
|
+
warn "* #{output} written" if $options.verbose
|
35
|
+
else
|
36
|
+
warn "*** xml2rfc failed, status #{s.exitstatus} (possibly try with -r)"
|
37
|
+
exit 1
|
38
|
+
end
|
39
|
+
rescue Errno::ENOENT
|
40
|
+
warn "*** falling back to remote processing" if $options.verbose
|
41
|
+
process_xml_remotely(input, output)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def process_xml_remotely(input, output)
|
46
|
+
warn "* converting remotely from xml #{input} to txt #{output}" if $options.verbose
|
47
|
+
url = URI('http://xml2rfc.tools.ietf.org/cgi-bin/xml2rfc.cgi')
|
48
|
+
req = Net::HTTP::Post.new(url)
|
49
|
+
req.set_form([["modeAsFormat", "txt/ascii"],
|
50
|
+
["type", "binary"],
|
51
|
+
["input", File.open(input),
|
52
|
+
{filename: "input.xml",
|
53
|
+
content_type: "text/plain"}]],
|
54
|
+
'multipart/form-data')
|
55
|
+
res = Net::HTTP::start(url.hostname, url.port,
|
56
|
+
:use_ssl => url.scheme == 'https' ) {|http|
|
57
|
+
http.request(req)
|
58
|
+
}
|
59
|
+
case res
|
60
|
+
when Net::HTTPOK
|
61
|
+
case res.content_type
|
62
|
+
when 'application/octet-stream'
|
63
|
+
File.open(output, "w") do |fo|
|
64
|
+
fo.print(res.body)
|
65
|
+
end
|
66
|
+
warn "* #{output} written" if $options.verbose
|
67
|
+
else
|
68
|
+
warn "*** HTTP response has unexpected content_type #{res.content_type} with status #{res.code}"
|
69
|
+
warn res.body
|
70
|
+
exit 1
|
71
|
+
end
|
72
|
+
else
|
73
|
+
warn "*** HTTP response: #{res.code}"
|
74
|
+
exit 1
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
require 'optparse'
|
79
|
+
require 'ostruct'
|
80
|
+
|
81
|
+
$options = OpenStruct.new
|
82
|
+
op = OptionParser.new do |opts|
|
83
|
+
opts.banner = "Usage: kdrfc [options] file.md|file.mkd|file.xml"
|
84
|
+
|
85
|
+
opts.on("-v", "--[no-]verbose", "Run verbosely") do |v|
|
86
|
+
$options.verbose = v
|
87
|
+
end
|
88
|
+
opts.on("-r", "--[no-]remote", "Run xml2rfc remotely even if there is a local one") do |v|
|
89
|
+
$options.remote = v
|
90
|
+
end
|
91
|
+
opts.on("-x", "--[no-]xml", "Convert to xml only") do |v|
|
92
|
+
$options.xml_only = v
|
93
|
+
end
|
94
|
+
end
|
95
|
+
op.parse!
|
96
|
+
|
97
|
+
case ARGV.size
|
98
|
+
when 1
|
99
|
+
fn = ARGV[0]
|
100
|
+
case fn
|
101
|
+
when /(.*)\.xml\z/
|
102
|
+
if $options.xml_only
|
103
|
+
warn "*** You already have XML"
|
104
|
+
else
|
105
|
+
process_xml(fn, "#$1.txt")
|
106
|
+
end
|
107
|
+
when /(.*)\.mk?d\z/
|
108
|
+
xml = "#$1.xml"
|
109
|
+
process_mkd(fn, xml)
|
110
|
+
process_xml(xml, "#$1.txt") unless $options.xml_only
|
111
|
+
else
|
112
|
+
warn "Unknown file type: #{fn}"
|
113
|
+
exit 1
|
114
|
+
end
|
115
|
+
else
|
116
|
+
puts op
|
117
|
+
exit 1
|
118
|
+
end
|
data/bin/kramdown-rfc2629
CHANGED
@@ -259,7 +259,7 @@ end
|
|
259
259
|
|
260
260
|
link_defs = {}
|
261
261
|
if input =~ /\A---/ # this is a sectionized file
|
262
|
-
do_the_tls_dance
|
262
|
+
do_the_tls_dance unless ENV["KRAMDOWN_DONT_VERIFY_HTTPS"]
|
263
263
|
input, target_coding, link_defs, smart_quotes = xml_from_sections(input)
|
264
264
|
end
|
265
265
|
if input =~ /\A<\?xml/ # if this is a whole XML file, protect it
|
data/kramdown-rfc2629.gemspec
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
spec = Gem::Specification.new do |s|
|
2
2
|
s.name = 'kramdown-rfc2629'
|
3
|
-
s.version = '1.
|
3
|
+
s.version = '1.2.0'
|
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.}
|
7
7
|
s.add_dependency('kramdown', '~> 1.13.0')
|
8
8
|
s.add_dependency('certified', '~> 1.0')
|
9
|
-
s.files = Dir['lib/**/*.rb'] + %w(README.md LICENSE kramdown-rfc2629.gemspec bin/kramdown-rfc2629 bin/doilit bin/kramdown-rfc-extract-markdown data/kramdown-rfc2629.erb data/encoding-fallbacks.txt)
|
9
|
+
s.files = Dir['lib/**/*.rb'] + %w(README.md LICENSE kramdown-rfc2629.gemspec bin/kdrfc bin/kramdown-rfc2629 bin/doilit bin/kramdown-rfc-extract-markdown data/kramdown-rfc2629.erb data/encoding-fallbacks.txt)
|
10
10
|
s.require_path = 'lib'
|
11
|
-
s.executables = ['kramdown-rfc2629', 'doilit', 'kramdown-rfc-extract-markdown']
|
11
|
+
s.executables = ['kramdown-rfc2629', 'doilit', 'kramdown-rfc-extract-markdown', 'kdrfc']
|
12
12
|
s.default_executable = 'kramdown-rfc2629'
|
13
13
|
s.required_ruby_version = '>= 1.9.2'
|
14
14
|
# s.requirements = 'wget'
|
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
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Carsten Bormann
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-05-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: kramdown
|
@@ -46,12 +46,14 @@ executables:
|
|
46
46
|
- kramdown-rfc2629
|
47
47
|
- doilit
|
48
48
|
- kramdown-rfc-extract-markdown
|
49
|
+
- kdrfc
|
49
50
|
extensions: []
|
50
51
|
extra_rdoc_files: []
|
51
52
|
files:
|
52
53
|
- LICENSE
|
53
54
|
- README.md
|
54
55
|
- bin/doilit
|
56
|
+
- bin/kdrfc
|
55
57
|
- bin/kramdown-rfc-extract-markdown
|
56
58
|
- bin/kramdown-rfc2629
|
57
59
|
- data/encoding-fallbacks.txt
|