bluecloth 2.0.9 → 2.0.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. data.tar.gz.sig +0 -0
  2. data/ChangeLog +29 -2
  3. data/Rakefile +18 -15
  4. data/ext/VERSION +1 -1
  5. data/ext/bluecloth.c +26 -5
  6. data/ext/config.h +13 -2
  7. data/ext/css.c +14 -5
  8. data/ext/cstring.h +1 -1
  9. data/ext/docheader.c +13 -7
  10. data/ext/emmatch.c +1 -1
  11. data/ext/generate.c +134 -48
  12. data/ext/markdown.c +207 -94
  13. data/ext/markdown.h +37 -28
  14. data/ext/mkdio.c +39 -32
  15. data/ext/mkdio.h +34 -24
  16. data/ext/resource.c +3 -1
  17. data/ext/setup.c +47 -0
  18. data/ext/tags.c +15 -2
  19. data/ext/tags.h +1 -0
  20. data/lib/bluecloth.rb +65 -40
  21. data/rake/documentation.rb +9 -1
  22. data/rake/hg.rb +34 -3
  23. data/rake/packaging.rb +1 -1
  24. data/rake/publishing.rb +2 -9
  25. data/rake/testing.rb +53 -88
  26. data/spec/bluecloth/101_changes_spec.rb +17 -17
  27. data/spec/bluecloth/autolinks_spec.rb +1 -1
  28. data/spec/bluecloth/blockquotes_spec.rb +18 -18
  29. data/spec/bluecloth/code_spans_spec.rb +1 -1
  30. data/spec/bluecloth/emphasis_spec.rb +1 -1
  31. data/spec/bluecloth/entities_spec.rb +1 -1
  32. data/spec/bluecloth/hrules_spec.rb +1 -1
  33. data/spec/bluecloth/images_spec.rb +1 -1
  34. data/spec/bluecloth/inline_html_spec.rb +1 -1
  35. data/spec/bluecloth/links_spec.rb +1 -1
  36. data/spec/bluecloth/lists_spec.rb +1 -1
  37. data/spec/bluecloth/paragraphs_spec.rb +1 -1
  38. data/spec/bluecloth/titles_spec.rb +1 -1
  39. data/spec/bluecloth_spec.rb +13 -13
  40. data/spec/bugfix_spec.rb +6 -1
  41. data/spec/contributions_spec.rb +1 -1
  42. data/spec/discount_spec.rb +2 -2
  43. data/spec/lib/helpers.rb +1 -124
  44. data/spec/lib/matchers.rb +1 -1
  45. data/spec/markdowntest_spec.rb +1 -1
  46. metadata +10 -10
  47. metadata.gz.sig +0 -0
@@ -4,16 +4,16 @@
4
4
  BEGIN {
5
5
  require 'pathname'
6
6
  basedir = Pathname.new( __FILE__ ).dirname.parent.parent
7
-
7
+
8
8
  libdir = basedir + 'lib'
9
9
  extdir = basedir + 'ext'
10
-
10
+
11
11
  $LOAD_PATH.unshift( basedir ) unless $LOAD_PATH.include?( basedir )
12
12
  $LOAD_PATH.unshift( libdir ) unless $LOAD_PATH.include?( libdir )
13
13
  $LOAD_PATH.unshift( extdir ) unless $LOAD_PATH.include?( extdir )
14
14
  }
15
15
 
16
- require 'spec'
16
+ require 'rspec'
17
17
  require 'bluecloth'
18
18
 
19
19
  require 'spec/lib/helpers'
@@ -25,7 +25,7 @@ require 'spec/lib/matchers'
25
25
  ### C O N T E X T S
26
26
  #####################################################################
27
27
 
28
- describe BlueCloth, "1.0.1 changes" do
28
+ describe BlueCloth, "after the 1.0.1 changes" do
29
29
  include BlueCloth::TestConstants,
30
30
  BlueCloth::Matchers
31
31
 
@@ -36,16 +36,16 @@ describe BlueCloth, "1.0.1 changes" do
36
36
  formatting syntax. For example, if you wanted to surround a word with
37
37
  literal asterisks (instead of an HTML `<em>` tag), you can backslashes
38
38
  before the asterisks, like this:
39
-
39
+
40
40
  \\*literal asterisks\\*
41
-
41
+
42
42
  ---
43
43
  <p>Markdown allows you to use backslash escapes to generate literal
44
44
  characters which would otherwise have special meaning in Markdown's
45
45
  formatting syntax. For example, if you wanted to surround a word with
46
46
  literal asterisks (instead of an HTML <code>&lt;em&gt;</code> tag), you can backslashes
47
47
  before the asterisks, like this:</p>
48
-
48
+
49
49
  <pre><code>\\*literal asterisks\\*
50
50
  </code></pre>
51
51
  ---
@@ -63,11 +63,11 @@ describe BlueCloth, "1.0.1 changes" do
63
63
  it "converts reference-style links at or deeper than tab width to code blocks" do
64
64
  the_indented_markdown( <<-"---" ).should be_transformed_into(<<-"---").without_indentation
65
65
  An [example][ex] reference-style link.
66
-
66
+
67
67
  [ex]: http://www.bluefi.com/
68
68
  ---
69
69
  <p>An [example][ex] reference-style link.</p>
70
-
70
+
71
71
  <pre><code>[ex]: http://www.bluefi.com/
72
72
  </code></pre>
73
73
  ---
@@ -115,23 +115,23 @@ describe BlueCloth, "1.0.1 changes" do
115
115
  it "correctly marks up header + list + code" do
116
116
  the_indented_markdown( <<-"---" ).should be_transformed_into(<<-"---").without_indentation
117
117
  ## This is a header.
118
-
118
+
119
119
  1. This is the first list item.
120
120
  2. This is the second list item.
121
-
121
+
122
122
  Here's some example code:
123
-
123
+
124
124
  return shell_exec("echo $input | $markdown_script");
125
125
  ---
126
126
  <h2>This is a header.</h2>
127
-
127
+
128
128
  <ol>
129
- <li>This is the first list item.</li>
130
- <li>This is the second list item.</li>
129
+ <li> This is the first list item.</li>
130
+ <li> This is the second list item.</li>
131
131
  </ol>
132
-
132
+
133
133
  <p>Here's some example code:</p>
134
-
134
+
135
135
  <pre><code>return shell_exec("echo $input | $markdown_script");
136
136
  </code></pre>
137
137
  ---
@@ -13,7 +13,7 @@ BEGIN {
13
13
  $LOAD_PATH.unshift( extdir ) unless $LOAD_PATH.include?( extdir )
14
14
  }
15
15
 
16
- require 'spec'
16
+ require 'rspec'
17
17
  require 'bluecloth'
18
18
 
19
19
  require 'spec/lib/helpers'
@@ -4,16 +4,16 @@
4
4
  BEGIN {
5
5
  require 'pathname'
6
6
  basedir = Pathname.new( __FILE__ ).dirname.parent.parent
7
-
7
+
8
8
  libdir = basedir + 'lib'
9
9
  extdir = basedir + 'ext'
10
-
10
+
11
11
  $LOAD_PATH.unshift( basedir ) unless $LOAD_PATH.include?( basedir )
12
12
  $LOAD_PATH.unshift( libdir ) unless $LOAD_PATH.include?( libdir )
13
13
  $LOAD_PATH.unshift( extdir ) unless $LOAD_PATH.include?( extdir )
14
14
  }
15
15
 
16
- require 'spec'
16
+ require 'rspec'
17
17
  require 'bluecloth'
18
18
 
19
19
  require 'spec/lib/helpers'
@@ -72,14 +72,14 @@ describe BlueCloth, "blockquotes" do
72
72
  > This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
73
73
  consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
74
74
  Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
75
-
75
+
76
76
  > Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
77
77
  id sem consectetuer libero luctus adipiscing.
78
78
  ---
79
79
  <blockquote><p>This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
80
80
  consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
81
81
  Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.</p>
82
-
82
+
83
83
  <p>Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
84
84
  id sem consectetuer libero luctus adipiscing.</p></blockquote>
85
85
  ---
@@ -90,23 +90,23 @@ describe BlueCloth, "blockquotes" do
90
90
  it "supports other Markdown elements in blockquote sections" do
91
91
  the_indented_markdown( <<-"---" ).should be_transformed_into(<<-"---").without_indentation
92
92
  > ## This is a header.
93
- >
93
+ >
94
94
  > 1. This is the first list item.
95
95
  > 2. This is the second list item.
96
- >
96
+ >
97
97
  > Here's some example code:
98
- >
98
+ >
99
99
  > return shell_exec("echo $input | $markdown_script");
100
100
  ---
101
101
  <blockquote><h2>This is a header.</h2>
102
-
102
+
103
103
  <ol>
104
- <li>This is the first list item.</li>
105
- <li>This is the second list item.</li>
104
+ <li> This is the first list item.</li>
105
+ <li> This is the second list item.</li>
106
106
  </ol>
107
-
107
+
108
108
  <p>Here's some example code:</p>
109
-
109
+
110
110
  <pre><code>return shell_exec("echo $input | $markdown_script");
111
111
  </code></pre></blockquote>
112
112
  ---
@@ -121,19 +121,19 @@ describe BlueCloth, "blockquotes" do
121
121
  > <pre>
122
122
  > foo + bar; foo.factorize; foo.display
123
123
  > </pre>
124
- >
124
+ >
125
125
  > This should result in an error on any little-endian platform.
126
- >
126
+ >
127
127
  > <div>- Garrick Mettronne</div>
128
128
  ---
129
129
  <blockquote><p>The best approximation of the problem is the following code:</p>
130
-
130
+
131
131
  <pre>
132
132
  foo + bar; foo.factorize; foo.display
133
133
  </pre>
134
-
134
+
135
135
  <p>This should result in an error on any little-endian platform.</p>
136
-
136
+
137
137
  <div>- Garrick Mettronne</div>
138
138
  </blockquote>
139
139
  ---
@@ -13,7 +13,7 @@ BEGIN {
13
13
  $LOAD_PATH.unshift( extdir ) unless $LOAD_PATH.include?( extdir )
14
14
  }
15
15
 
16
- require 'spec'
16
+ require 'rspec'
17
17
  require 'bluecloth'
18
18
 
19
19
  require 'spec/lib/helpers'
@@ -13,7 +13,7 @@ BEGIN {
13
13
  $LOAD_PATH.unshift( extdir ) unless $LOAD_PATH.include?( extdir )
14
14
  }
15
15
 
16
- require 'spec'
16
+ require 'rspec'
17
17
  require 'bluecloth'
18
18
 
19
19
  require 'spec/lib/helpers'
@@ -13,7 +13,7 @@ BEGIN {
13
13
  $LOAD_PATH.unshift( extdir ) unless $LOAD_PATH.include?( extdir )
14
14
  }
15
15
 
16
- require 'spec'
16
+ require 'rspec'
17
17
  require 'bluecloth'
18
18
 
19
19
  require 'spec/lib/helpers'
@@ -13,7 +13,7 @@ BEGIN {
13
13
  $LOAD_PATH.unshift( extdir ) unless $LOAD_PATH.include?( extdir )
14
14
  }
15
15
 
16
- require 'spec'
16
+ require 'rspec'
17
17
  require 'bluecloth'
18
18
 
19
19
  require 'spec/lib/helpers'
@@ -13,7 +13,7 @@ BEGIN {
13
13
  $LOAD_PATH.unshift( extdir ) unless $LOAD_PATH.include?( extdir )
14
14
  }
15
15
 
16
- require 'spec'
16
+ require 'rspec'
17
17
  require 'bluecloth'
18
18
 
19
19
  require 'spec/lib/helpers'
@@ -13,7 +13,7 @@ BEGIN {
13
13
  $LOAD_PATH.unshift( extdir ) unless $LOAD_PATH.include?( extdir )
14
14
  }
15
15
 
16
- require 'spec'
16
+ require 'rspec'
17
17
  require 'bluecloth'
18
18
 
19
19
  require 'spec/lib/helpers'
@@ -12,7 +12,7 @@ BEGIN {
12
12
  $LOAD_PATH.unshift( extdir ) unless $LOAD_PATH.include?( extdir )
13
13
  }
14
14
 
15
- require 'spec'
15
+ require 'rspec'
16
16
  require 'bluecloth'
17
17
 
18
18
  require 'spec/lib/helpers'
@@ -13,7 +13,7 @@ BEGIN {
13
13
  $LOAD_PATH.unshift( extdir ) unless $LOAD_PATH.include?( extdir )
14
14
  }
15
15
 
16
- require 'spec'
16
+ require 'rspec'
17
17
  require 'bluecloth'
18
18
 
19
19
  require 'spec/lib/helpers'
@@ -13,7 +13,7 @@ BEGIN {
13
13
  $LOAD_PATH.unshift( extdir ) unless $LOAD_PATH.include?( extdir )
14
14
  }
15
15
 
16
- require 'spec'
16
+ require 'rspec'
17
17
  require 'bluecloth'
18
18
 
19
19
  require 'spec/lib/helpers'
@@ -13,7 +13,7 @@ BEGIN {
13
13
  $LOAD_PATH.unshift( extdir ) unless $LOAD_PATH.include?( extdir )
14
14
  }
15
15
 
16
- require 'spec'
16
+ require 'rspec'
17
17
  require 'bluecloth'
18
18
 
19
19
  require 'spec/lib/helpers'
@@ -13,7 +13,7 @@ BEGIN {
13
13
  $LOAD_PATH.unshift( extdir ) unless $LOAD_PATH.include?( extdir )
14
14
  }
15
15
 
16
- require 'spec'
16
+ require 'rspec'
17
17
  require 'bluecloth'
18
18
 
19
19
  require 'spec/lib/helpers'
@@ -119,7 +119,7 @@ describe BlueCloth do
119
119
  you might want to prevent.
120
120
  ---
121
121
  <p>This is an example
122
- [of something](javascript:do_something_bad())
122
+ [of something](javascript:do<em>something</em>bad())
123
123
  you might want to prevent.</p>
124
124
  ---
125
125
  end
@@ -153,7 +153,7 @@ describe BlueCloth do
153
153
 
154
154
  it "correctly expands id: links when :pseudoprotocols are enabled" do
155
155
  input = "It was [just as he said](id:foo) it would be."
156
- expected = %{<p>It was <a id="foo">just as he said</a> it would be.</p>}
156
+ expected = %{<p>It was <span id="foo">just as he said</span> it would be.</p>}
157
157
 
158
158
  the_markdown( input, :pseudoprotocols => true ).should be_transformed_into( expected )
159
159
  end
@@ -174,30 +174,30 @@ describe BlueCloth do
174
174
 
175
175
  it "correctly adds IDs to headers when :header_labels is enabled" do
176
176
  input = %{# A header\n\nSome stuff\n\n## Another header\n\nMore stuff.\n\n}
177
- expected = %{<h1 id=\"A+header\">A header</h1>\n\n<p>Some stuff</p>\n\n} +
178
- %{<h2 id=\"Another+header\">Another header</h2>\n\n<p>More stuff.</p>}
177
+ expected = %{<h1 id=\"A.header\">A header</h1>\n\n<p>Some stuff</p>\n\n} +
178
+ %{<h2 id=\"Another.header\">Another header</h2>\n\n<p>More stuff.</p>}
179
179
 
180
180
  the_markdown( input, :header_labels => true ).should be_transformed_into( expected )
181
181
  end
182
182
 
183
- it "expands superscripts when :strict_mode is disabled" do
183
+ it "expands superscripts only when :superscript is enabled" do
184
184
  input = %{It used to be that E = mc^2 used to be the province of physicists.}
185
185
  expected = %{<p>It used to be that E = mc<sup>2</sup> used to be the province} +
186
186
  %{ of physicists.</p>}
187
- strict = %{<p>It used to be that E = mc^2 used to be the province} +
187
+ disabled = %{<p>It used to be that E = mc^2 used to be the province} +
188
188
  %{ of physicists.</p>}
189
189
 
190
- the_markdown( input, :strict_mode => false ).should be_transformed_into( expected )
191
- the_markdown( input, :strict_mode => true ).should be_transformed_into( strict )
190
+ the_markdown( input, :superscript => false ).should be_transformed_into( disabled )
191
+ the_markdown( input, :superscript => true ).should be_transformed_into( expected )
192
192
  end
193
193
 
194
- it "uses relaxed emphasis when :strict_mode is disabled" do
194
+ it "uses relaxed emphasis when :relaxed is enabled" do
195
195
  input = %{If you use size_t instead, you _won't_ have to worry as much about portability.}
196
- expected = %{<p>If you use size_t instead, you <em>won't</em> have to worry as much about portability.</p>}
196
+ relaxed = %{<p>If you use size_t instead, you <em>won't</em> have to worry as much about portability.</p>}
197
197
  strict = %{<p>If you use size<em>t instead, you </em>won't_ have to worry as much about portability.</p>}
198
198
 
199
- the_markdown( input, :strict_mode => false ).should be_transformed_into( expected )
200
- the_markdown( input, :strict_mode => true ).should be_transformed_into( strict )
199
+ the_markdown( input, :relaxed => true ).should be_transformed_into( relaxed )
200
+ the_markdown( input, :relaxed => false ).should be_transformed_into( strict )
201
201
  end
202
202
 
203
203
  end
@@ -14,7 +14,7 @@ BEGIN {
14
14
  }
15
15
 
16
16
  require 'rubygems'
17
- require 'spec'
17
+ require 'rspec'
18
18
  require 'bluecloth'
19
19
 
20
20
  require 'spec/lib/helpers'
@@ -242,6 +242,11 @@ describe BlueCloth, "bugfixes" do
242
242
  END_HTML
243
243
  end
244
244
 
245
+ it "renders alignments in code blocks without changing indentation (#71)" do
246
+ the_indented_markdown( " Самообучение\n Bugaga\n" ).
247
+ should be_transformed_into( "<pre><code>Самообучение\nBugaga\n</code></pre>" )
248
+ end
249
+
245
250
  end
246
251
 
247
252
 
@@ -13,7 +13,7 @@ BEGIN {
13
13
  }
14
14
 
15
15
  require 'rubygems'
16
- require 'spec'
16
+ require 'rspec'
17
17
  require 'bluecloth'
18
18
 
19
19
  require 'spec/lib/helpers'
@@ -14,7 +14,7 @@ BEGIN {
14
14
  }
15
15
 
16
16
  require 'rubygems'
17
- require 'spec'
17
+ require 'rspec'
18
18
  require 'bluecloth'
19
19
 
20
20
  require 'spec/lib/helpers'
@@ -48,7 +48,7 @@ describe BlueCloth, "implementation of Discount-specific features" do
48
48
 
49
49
  it "renders id: links as anchors with an ID" do
50
50
  the_markdown( "[foo](id:bar)", :pseudoprotocols => true ).
51
- should be_transformed_into( '<p><a id="bar">foo</a></p>' )
51
+ should be_transformed_into( '<p><span id="bar">foo</span></p>' )
52
52
  end
53
53
 
54
54
  it "renders class: links as SPANs with a CLASS" do
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/ruby
2
2
  # encoding: utf-8
3
3
 
4
- require 'spec'
4
+ require 'rspec'
5
5
  require 'bluecloth'
6
6
 
7
7
 
@@ -12,126 +12,3 @@ module BlueCloth::SpecHelpers
12
12
  ###############
13
13
 
14
14
  end
15
-
16
-
17
- # Override the badly-formatted output of the RSpec HTML formatter
18
- require 'spec/runner/formatter/html_formatter'
19
-
20
- class Spec::Runner::Formatter::HtmlFormatter
21
- def example_failed( example, counter, failure )
22
- failure_style = failure.pending_fixed? ? 'pending_fixed' : 'failed'
23
-
24
- unless @header_red
25
- @output.puts " <script type=\"text/javascript\">makeRed('rspec-header');</script>"
26
- @header_red = true
27
- end
28
-
29
- unless @example_group_red
30
- css_class = 'example_group_%d' % [current_example_group_number||0]
31
- @output.puts " <script type=\"text/javascript\">makeRed('#{css_class}');</script>"
32
- @example_group_red = true
33
- end
34
-
35
- move_progress()
36
-
37
- @output.puts " <dd class=\"spec #{failure_style}\">",
38
- " <span class=\"failed_spec_name\">#{h(example.description)}</span>",
39
- " <div class=\"failure\" id=\"failure_#{counter}\">"
40
- if failure.exception
41
- backtrace = format_backtrace( failure.exception.backtrace )
42
- message = failure.exception.message
43
-
44
- @output.puts " <div class=\"message\"><code>#{h message}</code></div>",
45
- " <div class=\"backtrace\"><pre>#{backtrace}</pre></div>"
46
- end
47
-
48
- if extra = extra_failure_content( failure )
49
- @output.puts( extra )
50
- end
51
-
52
- @output.puts " </div>",
53
- " </dd>"
54
- @output.flush
55
- end
56
-
57
-
58
- alias_method :default_global_styles, :global_styles
59
-
60
- def global_styles
61
- css = default_global_styles()
62
- css << %Q{
63
- /* Stuff added by #{__FILE__} */
64
-
65
- /* Overrides */
66
- #rspec-header {
67
- -webkit-box-shadow: #333 0 2px 5px;
68
- margin-bottom: 1em;
69
- }
70
-
71
- .example_group dt {
72
- -webkit-box-shadow: #333 0 2px 3px;
73
- }
74
-
75
- /* Style for log output */
76
- dd.log-message {
77
- background: #eee;
78
- padding: 0 2em;
79
- margin: 0.2em 1em;
80
- border-bottom: 1px dotted #999;
81
- border-top: 1px dotted #999;
82
- text-indent: -1em;
83
- }
84
-
85
- /* Parts of the message */
86
- dd.log-message .log-time {
87
- font-weight: bold;
88
- }
89
- dd.log-message .log-time:after {
90
- content: ": ";
91
- }
92
- dd.log-message .log-level {
93
- font-variant: small-caps;
94
- border: 1px solid #ccc;
95
- padding: 1px 2px;
96
- }
97
- dd.log-message .log-name {
98
- font-size: 1.2em;
99
- color: #1e51b2;
100
- }
101
- dd.log-message .log-name:before { content: "«"; }
102
- dd.log-message .log-name:after { content: "»"; }
103
-
104
- dd.log-message .log-message-text {
105
- padding-left: 4px;
106
- font-family: Monaco, "Andale Mono", "Vera Sans Mono", mono;
107
- }
108
-
109
-
110
- /* Distinguish levels */
111
- dd.log-message.debug { color: #666; }
112
- dd.log-message.info {}
113
-
114
- dd.log-message.warn,
115
- dd.log-message.error {
116
- background: #ff9;
117
- }
118
- dd.log-message.error .log-level,
119
- dd.log-message.error .log-message-text {
120
- color: #900;
121
- }
122
- dd.log-message.fatal {
123
- background: #900;
124
- color: white;
125
- font-weight: bold;
126
- border: 0;
127
- }
128
- dd.log-message.fatal .log-name {
129
- color: white;
130
- }
131
- }
132
-
133
- return css
134
- end
135
- end
136
-
137
-