redcarpet 3.0.0 → 3.1.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.

Potentially problematic release.


This version of redcarpet might be problematic. Click here for more details.

@@ -0,0 +1,55 @@
1
+ # coding: UTF-8
2
+ require 'test_helper'
3
+
4
+ class HTMLTOCRenderTest < Test::Unit::TestCase
5
+ class CustomTocRender < Redcarpet::Render::HTML_TOC
6
+ def header(text, level, anchor)
7
+ "<h#{level} id=\"foo-bar-#{anchor}\">#{text}</h1>"
8
+ end
9
+ end
10
+
11
+ def setup
12
+ @render = Redcarpet::Render::HTML_TOC
13
+ @markdown = "# A title \n## A __nice__ subtitle\n## Another one \n### A sub-sub-title"
14
+ end
15
+
16
+ def test_simple_toc_render
17
+ renderer = Redcarpet::Markdown.new(@render)
18
+ output = renderer.render(@markdown).strip
19
+
20
+ assert output.start_with?("<ul>")
21
+ assert output.end_with?("</ul>")
22
+
23
+ assert_equal 4, output.split("<ul>").length
24
+ assert_equal 5, output.split("<li>").length
25
+ end
26
+
27
+ def test_granular_toc_render
28
+ renderer = Redcarpet::Markdown.new(@render.new(nesting_level: 2))
29
+ output = renderer.render(@markdown).strip
30
+
31
+ assert output.start_with?("<ul>")
32
+ assert output.end_with?("</ul>")
33
+
34
+ assert_equal 4, output.split("<li>").length
35
+ assert !output.include?("A sub-sub title")
36
+ end
37
+
38
+ def test_toc_heading_id
39
+ renderer = Redcarpet::Markdown.new(@render)
40
+ output = renderer.render(@markdown)
41
+
42
+ assert_match /a-title/, output
43
+ assert_match /a-nice-subtitle/, output
44
+ assert_match /another-one/, output
45
+ assert_match /a-sub-sub-title/, output
46
+ end
47
+
48
+ def test_header_callback
49
+ renderer = Redcarpet::Markdown.new(CustomTocRender)
50
+ output = renderer.render(@markdown)
51
+
52
+ assert_match /A title/, output
53
+ assert_match /foo-bar-a-title/, output
54
+ end
55
+ end
@@ -67,6 +67,27 @@ class MarkdownTest < Test::Unit::TestCase
67
67
  "<ul>\n<li>Blah</li>\n</ul>\n", markdown
68
68
  end
69
69
 
70
+ # https://github.com/vmg/redcarpet/issues/111
71
+ def test_p_with_less_than_4space_indent_should_not_be_part_of_last_list_item
72
+ text = <<MARKDOWN
73
+ * a
74
+ * b
75
+ * c
76
+
77
+ This paragraph is not part of the list.
78
+ MARKDOWN
79
+ expected = <<HTML
80
+ <ul>
81
+ <li>a</li>
82
+ <li>b</li>
83
+ <li>c</li>
84
+ </ul>
85
+
86
+ <p>This paragraph is not part of the list.</p>
87
+ HTML
88
+ html_equal expected, @markdown.render(text)
89
+ end
90
+
70
91
  # http://github.com/rtomayko/rdiscount/issues/#issue/13
71
92
  def test_headings_with_trailing_space
72
93
  text = "The Ant-Sugar Tales \n" +
@@ -179,6 +200,15 @@ EOS
179
200
  assert output.include? '<mark>highlighted</mark>'
180
201
  end
181
202
 
203
+ def test_quote_flag_works
204
+ text = 'this is "quote"'
205
+
206
+ refute render_with({}, text).include? '<q>quote</q>'
207
+
208
+ output = render_with({:quote => true}, text)
209
+ assert output.include? '<q>quote</q>'
210
+ end
211
+
182
212
  def test_that_fenced_flag_works
183
213
  text = <<fenced
184
214
  This is a simple test
@@ -203,12 +233,6 @@ fenced
203
233
  assert !out.include?("<pre><code>")
204
234
  end
205
235
 
206
- def test_that_prettify_works
207
- text = "foo\nbar\n```\nsome\ncode\n```\nbaz"
208
- out = Redcarpet::Markdown.new(Redcarpet::Render::HTML.new(:prettify => true), :fenced_code_blocks => true).render(text)
209
- assert !out.include?("<pre><code class=\"prettyprint\">")
210
- end
211
-
212
236
  def test_that_indented_flag_works
213
237
  text = <<indented
214
238
  This is a simple text
@@ -250,4 +274,17 @@ text
250
274
  html = "<p>This is (<strong>bold</strong>) and this_is_not_italic!</p>\n"
251
275
  assert_equal html, render_with({:no_intra_emphasis => true}, markdown)
252
276
  end
277
+
278
+ def test_ordered_lists_with_lax_spacing
279
+ markdown = "Foo:\n1. Foo\n2. Bar"
280
+ output = render_with({lax_spacing: true}, markdown)
281
+
282
+ assert_match /<ol>/, output
283
+ assert_match /<li>Foo<\/li>/, output
284
+ end
285
+
286
+ def test_references_with_tabs_after_colon
287
+ markdown = @markdown.render("[Link][id]\n[id]:\t\t\thttp://google.es")
288
+ html_equal '<p><a href="http://google.es">Link</a></p>', markdown
289
+ end
253
290
  end
@@ -16,6 +16,21 @@ class SmartyHTMLTest < Test::Unit::TestCase
16
16
  assert_equal %(<p>&ldquo;Quoted text&rdquo;</p>\n), rd
17
17
  end
18
18
 
19
+ def test_that_smartyhtml_converts_double_hyphen
20
+ rd = @smarty_markdown.render("double hyphen -- ndash")
21
+ assert_equal "<p>double hyphen &ndash; ndash</p>\n", rd
22
+ end
23
+
24
+ def test_that_smartyhtml_converts_triple_hyphen
25
+ rd = @smarty_markdown.render("triple hyphen --- mdash")
26
+ assert_equal "<p>triple hyphen &mdash; mdash</p>\n", rd
27
+ end
28
+
29
+ def test_that_smartyhtml_ignores_double_hyphen_in_code
30
+ rd = @smarty_markdown.render("double hyphen in `--option`")
31
+ assert_equal "<p>double hyphen in <code>--option</code></p>\n", rd
32
+ end
33
+
19
34
  def test_that_smartyhtml_ignores_pre
20
35
  rd = @smarty_markdown.render(" It's a test of \"pre\"\n")
21
36
  expected = "It&#39;s a test of &quot;pre&quot;"
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: redcarpet
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
5
- prerelease:
4
+ version: 3.1.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Natacha Porté
@@ -10,12 +9,11 @@ authors:
10
9
  autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2013-07-09 00:00:00.000000000 Z
12
+ date: 2014-02-08 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: nokogiri
17
16
  requirement: !ruby/object:Gem::Requirement
18
- none: false
19
17
  requirements:
20
18
  - - ~>
21
19
  - !ruby/object:Gem::Version
@@ -23,7 +21,6 @@ dependencies:
23
21
  type: :development
24
22
  prerelease: false
25
23
  version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
24
  requirements:
28
25
  - - ~>
29
26
  - !ruby/object:Gem::Version
@@ -31,7 +28,6 @@ dependencies:
31
28
  - !ruby/object:Gem::Dependency
32
29
  name: rake-compiler
33
30
  requirement: !ruby/object:Gem::Requirement
34
- none: false
35
31
  requirements:
36
32
  - - ~>
37
33
  - !ruby/object:Gem::Version
@@ -39,7 +35,6 @@ dependencies:
39
35
  type: :development
40
36
  prerelease: false
41
37
  version_requirements: !ruby/object:Gem::Requirement
42
- none: false
43
38
  requirements:
44
39
  - - ~>
45
40
  - !ruby/object:Gem::Version
@@ -47,7 +42,6 @@ dependencies:
47
42
  - !ruby/object:Gem::Dependency
48
43
  name: test-unit
49
44
  requirement: !ruby/object:Gem::Requirement
50
- none: false
51
45
  requirements:
52
46
  - - ~>
53
47
  - !ruby/object:Gem::Version
@@ -55,43 +49,10 @@ dependencies:
55
49
  type: :development
56
50
  prerelease: false
57
51
  version_requirements: !ruby/object:Gem::Requirement
58
- none: false
59
52
  requirements:
60
53
  - - ~>
61
54
  - !ruby/object:Gem::Version
62
55
  version: 2.5.4
63
- - !ruby/object:Gem::Dependency
64
- name: bluecloth
65
- requirement: !ruby/object:Gem::Requirement
66
- none: false
67
- requirements:
68
- - - ~>
69
- - !ruby/object:Gem::Version
70
- version: 2.2.0
71
- type: :development
72
- prerelease: false
73
- version_requirements: !ruby/object:Gem::Requirement
74
- none: false
75
- requirements:
76
- - - ~>
77
- - !ruby/object:Gem::Version
78
- version: 2.2.0
79
- - !ruby/object:Gem::Dependency
80
- name: kramdown
81
- requirement: !ruby/object:Gem::Requirement
82
- none: false
83
- requirements:
84
- - - ~>
85
- - !ruby/object:Gem::Version
86
- version: 1.0.2
87
- type: :development
88
- prerelease: false
89
- version_requirements: !ruby/object:Gem::Requirement
90
- none: false
91
- requirements:
92
- - - ~>
93
- - !ruby/object:Gem::Version
94
- version: 1.0.2
95
56
  description: A fast, safe and extensible Markdown to (X)HTML parser
96
57
  email: vicent@github.com
97
58
  executables:
@@ -133,6 +94,7 @@ files:
133
94
  - test/test_helper.rb
134
95
  - test/custom_render_test.rb
135
96
  - test/html_render_test.rb
97
+ - test/html_toc_render_test.rb
136
98
  - test/markdown_test.rb
137
99
  - test/pathological_inputs_test.rb
138
100
  - test/redcarpet_compat_test.rb
@@ -142,32 +104,32 @@ files:
142
104
  homepage: http://github.com/vmg/redcarpet
143
105
  licenses:
144
106
  - MIT
107
+ metadata: {}
145
108
  post_install_message:
146
109
  rdoc_options: []
147
110
  require_paths:
148
111
  - lib
149
112
  required_ruby_version: !ruby/object:Gem::Requirement
150
- none: false
151
113
  requirements:
152
- - - ! '>='
114
+ - - '>='
153
115
  - !ruby/object:Gem::Version
154
- version: '0'
116
+ version: 1.9.2
155
117
  required_rubygems_version: !ruby/object:Gem::Requirement
156
- none: false
157
118
  requirements:
158
- - - ! '>='
119
+ - - '>='
159
120
  - !ruby/object:Gem::Version
160
121
  version: '0'
161
122
  requirements: []
162
123
  rubyforge_project:
163
- rubygems_version: 1.8.23
124
+ rubygems_version: 2.0.3
164
125
  signing_key:
165
- specification_version: 3
126
+ specification_version: 4
166
127
  summary: Markdown that smells nice
167
128
  test_files:
168
129
  - test/test_helper.rb
169
130
  - test/custom_render_test.rb
170
131
  - test/html_render_test.rb
132
+ - test/html_toc_render_test.rb
171
133
  - test/markdown_test.rb
172
134
  - test/pathological_inputs_test.rb
173
135
  - test/redcarpet_compat_test.rb