md2dw 1.0.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 +7 -0
- data/.gitignore +11 -0
- data/Gemfile +13 -0
- data/LICENSE +13 -0
- data/README.md +10 -0
- data/Rakefile +18 -0
- data/VERSION +1 -0
- data/bin/md2dw +18 -0
- data/lib/md2dw.rb +2 -0
- data/lib/md2dw/dokuwiki_renderer.rb +144 -0
- data/lib/md2dw/md2dw.rb +16 -0
- data/lib/md2dw/metadata.rb +16 -0
- data/md2dw.gemspec +23 -0
- data/test/test_md2dw.rb +203 -0
- metadata +86 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 5f54031624c612c43ffba948c99fd76b10d0a393
|
4
|
+
data.tar.gz: 14d39b6c2c83d2f748d64645c099b1fa3fe65331
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 566f9f14e0d4604f4ed119d2b3d05d5b733cf02836722767da03c62b3bf93b8b616e8089018e6193411b7953675eae8fba66883154b8a2358625432d4388f68a
|
7
|
+
data.tar.gz: 075286cda8a1c3b05b095ab9411d3d4004d5e2904e38c00349e4547dabd194f257df6dc4c3111facbd749b33c7f3844e38e7535e972afa1a013e3c573b2f8f49
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
Copyright (c) 2014 Sean Clemmer
|
2
|
+
|
3
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
4
|
+
purpose with or without fee is hereby granted, provided that the above
|
5
|
+
copyright notice and this permission notice appear in all copies.
|
6
|
+
|
7
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
8
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
9
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
10
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
11
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
12
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
13
|
+
PERFORMANCE OF THIS SOFTWARE.
|
data/README.md
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler'
|
3
|
+
require 'rake'
|
4
|
+
|
5
|
+
task :default => :test
|
6
|
+
|
7
|
+
require 'rake/testtask'
|
8
|
+
Rake::TestTask.new(:test) do |test|
|
9
|
+
test.libs << 'lib' << 'test'
|
10
|
+
test.test_files = FileList['test/test*.rb']
|
11
|
+
end
|
12
|
+
|
13
|
+
require 'rubygems/tasks'
|
14
|
+
Gem::Tasks.new push: false, sign: {}
|
15
|
+
Gem::Tasks::Sign::Checksum.new sha2: true
|
16
|
+
|
17
|
+
require 'rake/version_task'
|
18
|
+
Rake::VersionTask.new
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
1.0.0
|
data/bin/md2dw
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'trollop'
|
3
|
+
require 'md2dw'
|
4
|
+
|
5
|
+
argv = ARGV.empty? ? %w[ --help ] : ARGV
|
6
|
+
|
7
|
+
Trollop::options(argv) do
|
8
|
+
version MD2DW::VERSION
|
9
|
+
banner MD2DW::ART + "\n\n" + <<-EOS.gsub(/^ {4}/, '')
|
10
|
+
#{MD2DW::SUMMARY}
|
11
|
+
|
12
|
+
Usage: md2dw [OPTIONS] MARKDOWN_FILE
|
13
|
+
|
14
|
+
Options:
|
15
|
+
EOS
|
16
|
+
end
|
17
|
+
|
18
|
+
puts MD2DW.render(ARGF.read)
|
data/lib/md2dw.rb
ADDED
@@ -0,0 +1,144 @@
|
|
1
|
+
module MD2DW
|
2
|
+
class DokuwikiRenderer < Redcarpet::Render::Base
|
3
|
+
|
4
|
+
def block_code code, language
|
5
|
+
language = " #{language}" unless language.nil?
|
6
|
+
"\n<code%s>\n%s</code>\n" % [ language, code ]
|
7
|
+
end
|
8
|
+
|
9
|
+
def quote text
|
10
|
+
text
|
11
|
+
end
|
12
|
+
|
13
|
+
def block_quote quote
|
14
|
+
"\n<blockquote>%s</blockquote>\n" % quote
|
15
|
+
end
|
16
|
+
|
17
|
+
def block_html raw_html
|
18
|
+
raw_html
|
19
|
+
end
|
20
|
+
|
21
|
+
def footnotes content
|
22
|
+
"\n%s\n\n" % content
|
23
|
+
end
|
24
|
+
|
25
|
+
def footnote_def content, number
|
26
|
+
'[(r%s>%s)]' % [ number, content.strip ]
|
27
|
+
end
|
28
|
+
|
29
|
+
def header text, header_level
|
30
|
+
level = 7 - header_level
|
31
|
+
"\n%s %s %s\n" % [ '=' * level, text, '=' * level ]
|
32
|
+
end
|
33
|
+
|
34
|
+
def hrule
|
35
|
+
"\n-----\n"
|
36
|
+
end
|
37
|
+
|
38
|
+
def list contents, list_type
|
39
|
+
"\n" + contents
|
40
|
+
end
|
41
|
+
|
42
|
+
def list_item text, list_type
|
43
|
+
char = list_type =~ /unordered/ ? '*' : '-'
|
44
|
+
" %s %s" % [ char, text ]
|
45
|
+
end
|
46
|
+
|
47
|
+
def paragraph text
|
48
|
+
"\n%s\n" % text
|
49
|
+
end
|
50
|
+
|
51
|
+
def table header, body
|
52
|
+
"\n^ %s ^\n%s\n" % [ header.strip, body.strip ]
|
53
|
+
end
|
54
|
+
|
55
|
+
def table_row content
|
56
|
+
"| %s |\n" % content.strip
|
57
|
+
end
|
58
|
+
|
59
|
+
def table_cell content, alignment
|
60
|
+
'| %s |' % content.strip
|
61
|
+
end
|
62
|
+
|
63
|
+
def autolink link, link_type
|
64
|
+
link
|
65
|
+
end
|
66
|
+
|
67
|
+
def codespan code
|
68
|
+
"''%s''" % code
|
69
|
+
end
|
70
|
+
|
71
|
+
def image link, title, alt_text
|
72
|
+
'{{%s}}' % link
|
73
|
+
end
|
74
|
+
|
75
|
+
def linebreak
|
76
|
+
"\n"
|
77
|
+
end
|
78
|
+
|
79
|
+
def link link, title, content
|
80
|
+
'[[%s|%s]]' % [ link, content ]
|
81
|
+
end
|
82
|
+
|
83
|
+
def raw_html raw_html
|
84
|
+
'<html>%s</html>' % raw_html
|
85
|
+
end
|
86
|
+
|
87
|
+
def strikethrough text
|
88
|
+
'<del>%s</del>' % text
|
89
|
+
end
|
90
|
+
|
91
|
+
def superscript text
|
92
|
+
'<sup>%s</sup>' % text
|
93
|
+
end
|
94
|
+
|
95
|
+
def highlight text
|
96
|
+
'<mark>%s</mark>' % text
|
97
|
+
end
|
98
|
+
|
99
|
+
def footnote_ref number
|
100
|
+
'[(r%s)]' % number
|
101
|
+
end
|
102
|
+
|
103
|
+
def preprocess full_document
|
104
|
+
full_document.gsub!(/(\b|[^\\])??~~([^~].*?)~~/, '\1%_s_%\2%_s_%') # Strike
|
105
|
+
full_document.gsub!(/(\b|[^\\])??\*\*([^*].*?)\*\*/, '\1%_b_%\2%_b_%') # Bold
|
106
|
+
full_document.gsub!(/(\b|[^\\])??\*([^*].*?)\*/, '\1%_i_%\2%_i_%') # Italic
|
107
|
+
full_document.gsub!(/<sup>(.*?)<\/sup>/, '%_x_%\1%_x_%') # Superscript
|
108
|
+
full_document.gsub!(/<cite>(.*?)<\/cite>/, '%_q_%\1%_q_%') # Cite
|
109
|
+
|
110
|
+
# Fix tables
|
111
|
+
full_document = full_document.lines.map do |line|
|
112
|
+
if line =~ /\^\| (.*?) \|$/
|
113
|
+
"%s\n" % $1
|
114
|
+
else
|
115
|
+
line
|
116
|
+
end
|
117
|
+
end.join.strip
|
118
|
+
|
119
|
+
full_document
|
120
|
+
end
|
121
|
+
|
122
|
+
def postprocess full_document
|
123
|
+
full_document.gsub!(/%_s_%(.*?)%_s_%/, '<del>\1</del>') # Strike
|
124
|
+
full_document.gsub!(/%_b_%(.*?)%_b_%/, '**\1**') # Bold
|
125
|
+
full_document.gsub!(/%_i_%(.*?)%_i_%/, '//\1//') # Italic
|
126
|
+
full_document.gsub!(/%_x_%(.*?)%_x_%/, '<sup>\1</sup>') # Superscript
|
127
|
+
full_document.gsub!(/%_q_%(.*?)%_q_%/, '<q>\1</q>') # Cite
|
128
|
+
|
129
|
+
# Fix tables
|
130
|
+
full_document = full_document.lines.map do |line|
|
131
|
+
if line =~ /\^ \| \| (.+) \| \| \^$/
|
132
|
+
"^ %s ^\n" % $1.gsub(' || ', ' ^ ')
|
133
|
+
elsif line =~ /^\| \| (.+) \| \|$/
|
134
|
+
"| %s |\n" % $1.gsub(' || ', ' | ')
|
135
|
+
else
|
136
|
+
line
|
137
|
+
end
|
138
|
+
end.join.strip
|
139
|
+
|
140
|
+
full_document
|
141
|
+
end
|
142
|
+
|
143
|
+
end
|
144
|
+
end
|
data/lib/md2dw/md2dw.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'redcarpet'
|
2
|
+
|
3
|
+
require_relative 'dokuwiki_renderer'
|
4
|
+
|
5
|
+
module MD2DW
|
6
|
+
def self.render markdown
|
7
|
+
renderer = Redcarpet::Markdown.new \
|
8
|
+
DokuwikiRenderer,
|
9
|
+
no_intra_emphasis: true,
|
10
|
+
fenced_code_blocks: true,
|
11
|
+
strikethrough: true,
|
12
|
+
footnotes: true,
|
13
|
+
tables: true
|
14
|
+
renderer.render markdown
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module MD2DW
|
2
|
+
VERSION = File.read(File.join(File.dirname(__FILE__), '..', '..', 'VERSION')).strip
|
3
|
+
SUMMARY = 'Convert Markdown to DokuWiki syntax'
|
4
|
+
AUTHOR = 'Sean Clemmer'
|
5
|
+
EMAIL = 'sczizzo@gmail.com'
|
6
|
+
HOMEPAGE = 'https://github.com/sczizzo/md2dw'
|
7
|
+
ART = <<-'EOART' % VERSION
|
8
|
+
|
9
|
+
_____ __
|
10
|
+
____ ___ ____/ /__ \ ____/ / __
|
11
|
+
/ __ `__ \/ __ /__/ // __ / | /| / /
|
12
|
+
/ / / / / / /_/ // __// /_/ /| |/ |/ /
|
13
|
+
/_/ /_/ /_/\__,_//____/\__,_/ |__/|__/
|
14
|
+
v%s
|
15
|
+
EOART
|
16
|
+
end
|
data/md2dw.gemspec
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path(File.join('..', 'lib'), __FILE__)
|
3
|
+
require 'md2dw/metadata'
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = 'md2dw'
|
7
|
+
s.version = MD2DW::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.author = MD2DW::AUTHOR
|
10
|
+
s.email = MD2DW::EMAIL
|
11
|
+
s.summary = MD2DW::SUMMARY
|
12
|
+
s.description = MD2DW::SUMMARY + '.'
|
13
|
+
s.homepage = MD2DW::HOMEPAGE
|
14
|
+
s.licenses = %w[ MIT ]
|
15
|
+
|
16
|
+
s.add_runtime_dependency 'trollop', '~> 2'
|
17
|
+
s.add_runtime_dependency 'redcarpet', '~> 3'
|
18
|
+
|
19
|
+
s.files = `git ls-files`.split("\n")
|
20
|
+
s.test_files = `git ls-files -- test/*`.split("\n")
|
21
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File::basename(f) }
|
22
|
+
s.require_paths = %w[ lib ]
|
23
|
+
end
|
data/test/test_md2dw.rb
ADDED
@@ -0,0 +1,203 @@
|
|
1
|
+
require 'tmpdir'
|
2
|
+
require 'tempfile'
|
3
|
+
require 'fileutils'
|
4
|
+
require 'minitest/autorun'
|
5
|
+
|
6
|
+
require_relative '../lib/md2dw'
|
7
|
+
|
8
|
+
|
9
|
+
class TestMD2DW < MiniTest::Test
|
10
|
+
|
11
|
+
def test_converts_markdown_to_dokuwiki
|
12
|
+
[ # Markdown => DokuWiki
|
13
|
+
|
14
|
+
# Text
|
15
|
+
[ '*EM*', '//EM//' ],
|
16
|
+
[ '**BOLD**', '**BOLD**' ],
|
17
|
+
[ '<sup>SUP</sup>', '<sup>SUP</sup>' ],
|
18
|
+
[ '`MONO`', "''MONO''" ],
|
19
|
+
[ '~~STRIKE~~', '<del>STRIKE</del>' ],
|
20
|
+
|
21
|
+
# Links
|
22
|
+
[ '[LINK](THIS)', '[[THIS|LINK]]' ],
|
23
|
+
|
24
|
+
# Headings
|
25
|
+
[ '# TEST', '====== TEST ======' ],
|
26
|
+
[ '## TEST', '===== TEST =====' ],
|
27
|
+
[ '### TEST', '==== TEST ====' ],
|
28
|
+
[ '#### TEST', '=== TEST ===' ],
|
29
|
+
[ '##### TEST', '== TEST ==' ],
|
30
|
+
[ '###### TEST', '= TEST =' ],
|
31
|
+
|
32
|
+
# Images
|
33
|
+
[ '', '{{IMG.jpg}}' ],
|
34
|
+
|
35
|
+
# Lists
|
36
|
+
[ ul_list_md, ul_list_dw ],
|
37
|
+
[ ol_list_md, ol_list_dw ],
|
38
|
+
|
39
|
+
# Quotes
|
40
|
+
[ '<cite>CITE</cite>', '<q>CITE</q>' ],
|
41
|
+
[ blockquote_md, blockquote_dw ],
|
42
|
+
|
43
|
+
# Tables
|
44
|
+
[ table_md1, table_dw ],
|
45
|
+
[ table_md2, table_dw ],
|
46
|
+
|
47
|
+
# Code
|
48
|
+
[ code_block_md, code_block_dw ],
|
49
|
+
[ code_block_mde_md, code_block_mde_dw ],
|
50
|
+
[ code_block_gfm_md, code_block_gfm_dw ]
|
51
|
+
|
52
|
+
].map { |tag| assert_renders tag[0], tag[1] }
|
53
|
+
end
|
54
|
+
|
55
|
+
private
|
56
|
+
def assert_renders md, dw
|
57
|
+
assert_equal dw, MD2DW.render(md)
|
58
|
+
end
|
59
|
+
|
60
|
+
def ul_list_md
|
61
|
+
<<-EOL.gsub(/^ {4}/, '').chomp
|
62
|
+
TEST
|
63
|
+
|
64
|
+
- ONE
|
65
|
+
- TWO
|
66
|
+
EOL
|
67
|
+
end
|
68
|
+
|
69
|
+
def ul_list_dw
|
70
|
+
<<-EOL.gsub(/^ {4}/, '').chomp
|
71
|
+
TEST
|
72
|
+
|
73
|
+
* ONE
|
74
|
+
* TWO
|
75
|
+
EOL
|
76
|
+
end
|
77
|
+
|
78
|
+
def ol_list_md
|
79
|
+
<<-EOL.gsub(/^ {4}/, '').chomp
|
80
|
+
TEST
|
81
|
+
|
82
|
+
1. ONE
|
83
|
+
2. TWO
|
84
|
+
EOL
|
85
|
+
end
|
86
|
+
|
87
|
+
def ol_list_dw
|
88
|
+
<<-EOL.gsub(/^ {4}/, '').chomp
|
89
|
+
TEST
|
90
|
+
|
91
|
+
- ONE
|
92
|
+
- TWO
|
93
|
+
EOL
|
94
|
+
end
|
95
|
+
|
96
|
+
def blockquote_md
|
97
|
+
<<-EOB.gsub(/^ {4}/, '').chomp
|
98
|
+
> ONE
|
99
|
+
> TWO
|
100
|
+
> THREE
|
101
|
+
EOB
|
102
|
+
end
|
103
|
+
|
104
|
+
def blockquote_dw
|
105
|
+
<<-EOB.gsub(/^ {4}/, '').chomp
|
106
|
+
<blockquote>
|
107
|
+
ONE
|
108
|
+
TWO
|
109
|
+
THREE
|
110
|
+
</blockquote>
|
111
|
+
EOB
|
112
|
+
end
|
113
|
+
|
114
|
+
def table_md1
|
115
|
+
<<-EOT.gsub(/^ {4}/, '')
|
116
|
+
First Header | Second Header
|
117
|
+
------------- | -------------
|
118
|
+
Content Cell | Content Cell
|
119
|
+
Content Cell | Content Cell
|
120
|
+
EOT
|
121
|
+
end
|
122
|
+
|
123
|
+
def table_md2
|
124
|
+
<<-EOT.gsub(/^ {4}/, '')
|
125
|
+
| First Header | Second Header |
|
126
|
+
| ------------- | ------------- |
|
127
|
+
| Content Cell | Content Cell |
|
128
|
+
| Content Cell | Content Cell |
|
129
|
+
EOT
|
130
|
+
end
|
131
|
+
|
132
|
+
def table_dw
|
133
|
+
<<-EOT.gsub(/^ {4}/, '').chomp
|
134
|
+
^ First Header ^ Second Header ^
|
135
|
+
| Content Cell | Content Cell |
|
136
|
+
| Content Cell | Content Cell |
|
137
|
+
EOT
|
138
|
+
end
|
139
|
+
|
140
|
+
def code_block_md
|
141
|
+
<<-EOC.gsub(/^ {4}/, '')
|
142
|
+
TEST
|
143
|
+
|
144
|
+
ONE
|
145
|
+
TWO
|
146
|
+
EOC
|
147
|
+
end
|
148
|
+
|
149
|
+
def code_block_dw
|
150
|
+
<<-EOC.gsub(/^ {4}/, '').chomp
|
151
|
+
TEST
|
152
|
+
|
153
|
+
<code>
|
154
|
+
ONE
|
155
|
+
TWO
|
156
|
+
</code>
|
157
|
+
EOC
|
158
|
+
end
|
159
|
+
|
160
|
+
def code_block_mde_md
|
161
|
+
<<-EOC.gsub(/^ {4}/, '')
|
162
|
+
TEST
|
163
|
+
|
164
|
+
~~~
|
165
|
+
ONE
|
166
|
+
TWO
|
167
|
+
~~~
|
168
|
+
EOC
|
169
|
+
end
|
170
|
+
|
171
|
+
def code_block_mde_dw
|
172
|
+
<<-EOC.gsub(/^ {4}/, '').chomp
|
173
|
+
TEST
|
174
|
+
|
175
|
+
<code>
|
176
|
+
ONE
|
177
|
+
TWO
|
178
|
+
</code>
|
179
|
+
EOC
|
180
|
+
end
|
181
|
+
|
182
|
+
def code_block_gfm_md
|
183
|
+
<<-EOC.gsub(/^ {4}/, '')
|
184
|
+
TEST
|
185
|
+
|
186
|
+
```ruby
|
187
|
+
ONE
|
188
|
+
TWO
|
189
|
+
```
|
190
|
+
EOC
|
191
|
+
end
|
192
|
+
|
193
|
+
def code_block_gfm_dw
|
194
|
+
<<-EOC.gsub(/^ {4}/, '').chomp
|
195
|
+
TEST
|
196
|
+
|
197
|
+
<code ruby>
|
198
|
+
ONE
|
199
|
+
TWO
|
200
|
+
</code>
|
201
|
+
EOC
|
202
|
+
end
|
203
|
+
end
|
metadata
ADDED
@@ -0,0 +1,86 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: md2dw
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Sean Clemmer
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-07-31 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: trollop
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: redcarpet
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '3'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '3'
|
41
|
+
description: Convert Markdown to DokuWiki syntax.
|
42
|
+
email: sczizzo@gmail.com
|
43
|
+
executables:
|
44
|
+
- md2dw
|
45
|
+
extensions: []
|
46
|
+
extra_rdoc_files: []
|
47
|
+
files:
|
48
|
+
- ".gitignore"
|
49
|
+
- Gemfile
|
50
|
+
- LICENSE
|
51
|
+
- README.md
|
52
|
+
- Rakefile
|
53
|
+
- VERSION
|
54
|
+
- bin/md2dw
|
55
|
+
- lib/md2dw.rb
|
56
|
+
- lib/md2dw/dokuwiki_renderer.rb
|
57
|
+
- lib/md2dw/md2dw.rb
|
58
|
+
- lib/md2dw/metadata.rb
|
59
|
+
- md2dw.gemspec
|
60
|
+
- test/test_md2dw.rb
|
61
|
+
homepage: https://github.com/sczizzo/md2dw
|
62
|
+
licenses:
|
63
|
+
- MIT
|
64
|
+
metadata: {}
|
65
|
+
post_install_message:
|
66
|
+
rdoc_options: []
|
67
|
+
require_paths:
|
68
|
+
- lib
|
69
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: '0'
|
74
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
75
|
+
requirements:
|
76
|
+
- - ">="
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: '0'
|
79
|
+
requirements: []
|
80
|
+
rubyforge_project:
|
81
|
+
rubygems_version: 2.2.2
|
82
|
+
signing_key:
|
83
|
+
specification_version: 4
|
84
|
+
summary: Convert Markdown to DokuWiki syntax
|
85
|
+
test_files:
|
86
|
+
- test/test_md2dw.rb
|