md2review 1.7.0 → 1.8.0

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
  SHA1:
3
- metadata.gz: 0788a6609e5e81f082dbc5f14a51c28ce0c9ee5b
4
- data.tar.gz: cffe67adf60805b44e796f1838b7635667bfa2f5
3
+ metadata.gz: 46c0ddf09e6f474c1b87f8016216dda28b433398
4
+ data.tar.gz: 66d5359d6f229a870d3eccf6825e5e52e8295426
5
5
  SHA512:
6
- metadata.gz: b7bc540bd7a66dc33afcde5604338debeeab627896a7d3e090fb122990be66496da114f4de1e0f0c71bd5a945a98b4eba4ec6f4990aa203b72fb153f2f641c04
7
- data.tar.gz: 549143a0c669ca9f091ed0c18904729c29b98b8f0724a706a9522b1649188263ba4696ad498dace68d9fac0bc239deb817b70ead97629efdabeed1d5f1242c3f
6
+ metadata.gz: e0cd14e69907497db4368507a813d27d21a8cd327baf520e478cba27a3250b9a68c621f4f60a082ba98bcc88bd19087c7e037ed90965b531915dfb78feafcd81
7
+ data.tar.gz: 425c784ed78be28a3d2f1ab3face88160f6b1f806a83c644e7cb29301f3ed801c24b342633d3c21d7c0f863524fff3299c35c90c40e955bd76e8f7fc97b42a67
data/.travis.yml CHANGED
@@ -1,9 +1,12 @@
1
+ language: ruby
1
2
  sudo: false
2
3
 
3
4
  rvm:
4
- - 1.9.3
5
- - 2.0.0
6
- - 2.1.1
5
+ - 2.0
6
+ - 2.1
7
+ - 2.2
8
+ - 2.3.3
9
+ - 2.4.0
7
10
 
8
11
  branches:
9
12
  only:
data/README.md CHANGED
@@ -27,6 +27,10 @@ You can use the commmand md2review as:
27
27
 
28
28
  ## History
29
29
 
30
+ * 1.8.0
31
+ * add: option --version
32
+ * add: option --render-math to support `@<m>{...}` and `//texequation{\n...\n}\n`
33
+ * add: option --render-table-caption to support `Table: caption`
30
34
  * 1.7.0
31
35
  * fix: when href in emphasis (@hanachin)
32
36
  * fix: spaces before image block (@hanachin)
data/appveyor.yml ADDED
@@ -0,0 +1,21 @@
1
+ ---
2
+ install:
3
+ - SET PATH=C:\Ruby%ruby_version%\bin;%PATH%
4
+ - ruby --version
5
+ - gem --version
6
+ - bundle install
7
+ build_script:
8
+ - bundle exec rake
9
+ test_script:
10
+ - bundle exec rake test
11
+ artifacts:
12
+ - path: pkg\*.gem
13
+
14
+ environment:
15
+ matrix:
16
+ - ruby_version: "200"
17
+ - ruby_version: "200-x64"
18
+ - ruby_version: "21"
19
+ - ruby_version: "21-x64"
20
+ - ruby_version: "22"
21
+ - ruby_version: "22-x64"
data/bin/md2review CHANGED
@@ -3,6 +3,10 @@
3
3
  # Convert one or more Markdown files to ReVIEW and write to standard output. With
4
4
  # no <file> or when <file> is '-', read Markdown source text from standard input.
5
5
  # With <extension>s, perform additional Markdown processing before writing output.
6
+
7
+ require 'md2review'
8
+ require 'md2review/version'
9
+
6
10
  if ARGV.include?('--help')
7
11
  File.read(__FILE__).split("\n").grep(/^# /).each do |line|
8
12
  puts line[2..-1]
@@ -37,13 +41,15 @@ ARGV.delete_if do |arg|
37
41
  elsif arg =~ /^--parse-([\w-]+)$/
38
42
  arg = $1.gsub('-', '_')
39
43
  parse_extensions[arg.to_sym] = true
44
+ elsif arg =~ /^--version$/
45
+ print MD2ReVIEW::VERSION, "\n"
46
+ exit
40
47
  else
41
48
  false
42
49
  end
43
50
  end
44
51
 
45
- render = renderer.new(render_extensions)
46
- md = Redcarpet::Markdown.new(render, parse_extensions)
52
+ md = MD2ReVIEW::Markdown.new(render_extensions, parse_extensions)
47
53
  md_doc = ARGF.read
48
54
  review_doc = md.render(md_doc)
49
55
  STDOUT.write review_doc
data/lib/md2review.rb CHANGED
@@ -1,7 +1,4 @@
1
- require "redcarpet-review/version"
1
+ require 'md2review/markdown'
2
2
 
3
- module Redcarpet
4
- module Review
5
- # Your code goes here...
6
- end
3
+ module MD2ReVIEW
7
4
  end
@@ -0,0 +1,16 @@
1
+ require 'redcarpet'
2
+ require 'redcarpet/render/review'
3
+
4
+ module MD2ReVIEW
5
+ class Markdown
6
+ def initialize(render_options, parser_options)
7
+ ## Redcarpet only
8
+ render = Redcarpet::Render::ReVIEW.new(render_options)
9
+ @markdown = Redcarpet::Markdown.new(render, parser_options)
10
+ end
11
+
12
+ def render(text)
13
+ @markdown.render(text)
14
+ end
15
+ end
16
+ end
@@ -1,3 +1,3 @@
1
1
  module MD2ReVIEW
2
- VERSION = "1.7.0"
2
+ VERSION = "1.8.0"
3
3
  end
@@ -16,6 +16,9 @@ module Redcarpet
16
16
  end
17
17
  @links = {}
18
18
  @cmd = render_extensions[:enable_cmd]
19
+ @support_table_caption = render_extensions[:table_caption]
20
+ @table_caption = nil
21
+ @math = render_extensions[:math]
19
22
  end
20
23
 
21
24
  def normal_text(text)
@@ -44,6 +47,8 @@ module Redcarpet
44
47
 
45
48
  if @cmd && (language == "shell-session" || language == "console")
46
49
  "\n//cmd{\n#{code_text}\n//}\n"
50
+ elsif @math && language == "math"
51
+ "\n//texequation{\n#{code.chomp}\n//}\n"
47
52
  else
48
53
  "\n//emlist#{caption}{\n#{code_text}\n//}\n"
49
54
  end
@@ -102,7 +107,12 @@ module Redcarpet
102
107
  header_text = "#{header}-----------------\n"
103
108
  end
104
109
  body.chomp!
105
- "//table[#{table_id()}][]{\n#{header_text}#{body}\n//}\n"
110
+ caption = nil
111
+ if @table_caption
112
+ caption = @table_caption.strip
113
+ @table_caption = nil
114
+ end
115
+ "//table[#{table_id()}][#{caption}]{\n#{header_text}#{body}\n//}\n"
106
116
  end
107
117
 
108
118
  def table_row(content)
@@ -162,7 +172,12 @@ module Redcarpet
162
172
  end
163
173
 
164
174
  def paragraph(text)
165
- "\n\n#{text}\n\n"
175
+ if @support_table_caption && text =~ /\ATable:(.*)\z/
176
+ @table_caption = $1 ## and no output line
177
+ ""
178
+ else
179
+ "\n\n#{text}\n\n"
180
+ end
166
181
  end
167
182
 
168
183
  def list(content, list_type)
@@ -233,6 +248,11 @@ module Redcarpet
233
248
 
234
249
  def postprocess(text)
235
250
  text = text.gsub(%r|^[ \t]+(//image\[[^\]]+\]\[[^\]]+\]{$\n^//})|, '\1')
251
+ if @math
252
+ while %r|\$\$(.+?)\$\$| =~ text
253
+ text.sub!(%r|\$\$(.+?)\$\$|){ "@<m>{" + $1.gsub(/}/, "\\}") + "}" }
254
+ end
255
+ end
236
256
  text + @links.map { |key, link| footnote_def(link, key) }.join
237
257
  end
238
258
 
data/test/review_test.rb CHANGED
@@ -1,4 +1,4 @@
1
- # coding: UTF-8
1
+ # coding: utf-8
2
2
  rootdir = File.dirname(File.dirname(__FILE__))
3
3
  $LOAD_PATH.unshift "#{rootdir}/lib"
4
4
 
@@ -7,18 +7,17 @@ if defined? Encoding
7
7
  end
8
8
 
9
9
  require 'test/unit'
10
- require 'redcarpet'
11
- require 'redcarpet/render/review'
10
+ require 'md2review'
11
+ require 'md2review/markdown'
12
12
 
13
13
  class ReVIEWTest < Test::Unit::TestCase
14
14
 
15
15
  def setup
16
- @markdown = Redcarpet::Markdown.new(Redcarpet::Render::ReVIEW.new({}))
16
+ @markdown = MD2ReVIEW::Markdown.new({},{})
17
17
  end
18
18
 
19
19
  def render_with(flags, text, render_flags = {})
20
- renderer = Redcarpet::Render::ReVIEW.new(render_flags)
21
- Redcarpet::Markdown.new(renderer, flags).render(text)
20
+ MD2ReVIEW::Markdown.new(render_flags, flags).render(text)
22
21
  end
23
22
 
24
23
  def test_that_simple_one_liner_goes_to_review
@@ -38,7 +37,7 @@ class ReVIEWTest < Test::Unit::TestCase
38
37
 
39
38
  def test_href_in_footnote
40
39
  text = %Q[aaa [foo](http://example.jp/foo), [bar](http://example.jp/bar), [foo2](http://example.jp/foo)]
41
- rd = Redcarpet::Markdown.new(Redcarpet::Render::ReVIEW.new({:link_in_footnote => true})).render(text)
40
+ rd = MD2ReVIEW::Markdown.new({:link_in_footnote => true},{}).render(text)
42
41
  assert_equal %Q|\n\naaa foo@<fn>{3ccd7167b80081c737b749ad1c27dcdc}, bar@<fn>{9dcab303478e38d32d83ae19daaea9f6}, foo2@<fn>{3ccd7167b80081c737b749ad1c27dcdc}\n\n\n//footnote[3ccd7167b80081c737b749ad1c27dcdc][http://example.jp/foo]\n\n//footnote[9dcab303478e38d32d83ae19daaea9f6][http://example.jp/bar]\n|, rd
43
42
  end
44
43
 
@@ -119,6 +118,28 @@ class ReVIEWTest < Test::Unit::TestCase
119
118
  assert_equal "//table[tbl1][]{\na\tb\tc\n-----------------\nA\tB\tC\n.\tB\tC\n..A\tB\tC\n//}\n", rd
120
119
  end
121
120
 
121
+ def test_table_with_caption
122
+ rd = render_with({:tables => true}, <<-EOB, {:table_caption => true})
123
+
124
+ Table: caption test
125
+
126
+ | a | b | c |
127
+ |----|----|----|
128
+ | A | B | C |
129
+ | | B | C |
130
+ | .A | B | C |
131
+ EOB
132
+ assert_equal <<-EOB, rd
133
+ //table[tbl1][caption test]{
134
+ a\tb\tc
135
+ -----------------
136
+ A\tB\tC
137
+ .\tB\tC
138
+ ..A\tB\tC
139
+ //}
140
+ EOB
141
+ end
142
+
122
143
  def test_code_fence_with_caption
123
144
  rd = render_with({:fenced_code_blocks => true}, %Q[~~~ {caption="test"}\ndef foo\n p "test"\nend\n~~~\n])
124
145
  assert_equal %Q[\n//emlist[test]{\ndef foo\n p "test"\nend\n//}\n], rd
@@ -153,6 +174,36 @@ class ReVIEWTest < Test::Unit::TestCase
153
174
  assert_equal %Q[\n\n昭和@<tcy>{53}年\n\n], rd
154
175
  end
155
176
 
177
+ def test_math
178
+ rd = render_with({}, "その結果、$$y=ax^2+bx+c$$の式が得られます。",{:math => true})
179
+ assert_equal %Q[\n\nその結果、@<m>{y=ax^2+bx+c}の式が得られます。\n\n], rd
180
+ end
181
+
182
+ def test_no_math
183
+ rd = render_with({}, "その結果、$$y=ax^2+bx+c$$の式が得られます。",{:math => false})
184
+ assert_equal %Q[\n\nその結果、$$y=ax^2+bx+c$$の式が得られます。\n\n], rd
185
+ end
186
+
187
+ def test_math_block
188
+ rd = render_with({:fenced_code_blocks => true}, <<-EOB,{:math => true})
189
+ 求める式は以下のようになります。
190
+
191
+ ```math
192
+ \frac{n!}{k!(n-k)!} = \binom{n}{k}
193
+ ```
194
+ EOB
195
+ assert_equal <<-EOB, rd
196
+
197
+
198
+ 求める式は以下のようになります。
199
+
200
+
201
+ //texequation{
202
+ \frac{n!}{k!(n-k)!} = \binom{n}{k}
203
+ //}
204
+ EOB
205
+ end
206
+
156
207
  def test_footnote
157
208
  rd = render_with({:footnotes=>true}, "これは*脚注*付き[^1]の段落です。\n\n\n[^1]: そして、これが脚注です。\n")
158
209
  assert_equal %Q|\n\nこれは@<b>{脚注}付き@<fn>{1}の段落です。\n\n\n//footnote[1][そして、これが脚注です。]\n|, rd
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: md2review
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.0
4
+ version: 1.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - takahashim
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-20 00:00:00.000000000 Z
11
+ date: 2017-01-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redcarpet
@@ -66,8 +66,10 @@ files:
66
66
  - LICENSE.txt
67
67
  - README.md
68
68
  - Rakefile
69
+ - appveyor.yml
69
70
  - bin/md2review
70
71
  - lib/md2review.rb
72
+ - lib/md2review/markdown.rb
71
73
  - lib/md2review/version.rb
72
74
  - lib/redcarpet/render/review.rb
73
75
  - md2review.gemspec
@@ -91,10 +93,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
91
93
  version: '0'
92
94
  requirements: []
93
95
  rubyforge_project:
94
- rubygems_version: 2.4.5
96
+ rubygems_version: 2.6.8
95
97
  signing_key:
96
98
  specification_version: 4
97
99
  summary: a converter from Markdown to Re:VIEW
98
100
  test_files:
99
101
  - test/review_test.rb
100
- has_rdoc: