Update RedCloth to 4.x
Use Bundler to manage RedCloth gem. 4.x should be much faster and less buggy. Unfortunately, it doesn't support mixed Textile/Markdown syntax. So we keep an (appropriately renamed) copy of 3.x around, for the users of the "Mixed" text filter.
This commit is contained in:
parent
cca857ed3a
commit
4be1a58a24
5 changed files with 19 additions and 9 deletions
1
Gemfile
1
Gemfile
|
@ -3,6 +3,7 @@ gem "sqlite3-ruby", :require => "sqlite3"
|
||||||
gem "itextomml", ">=1.4.5"
|
gem "itextomml", ">=1.4.5"
|
||||||
gem "mongrel", ">=1.2.0.pre2"
|
gem "mongrel", ">=1.2.0.pre2"
|
||||||
gem "rubyzip"
|
gem "rubyzip"
|
||||||
|
gem "RedCloth", ">=4.0.0"
|
||||||
gem "erubis"
|
gem "erubis"
|
||||||
gem "nokogiri"
|
gem "nokogiri"
|
||||||
gem "rake"
|
gem "rake"
|
||||||
|
|
|
@ -478,7 +478,7 @@ EOL
|
||||||
"<meta http-equiv=\"Refresh\" content=\"0;URL=HomePage.#{html_ext}\" /></head></html>"
|
"<meta http-equiv=\"Refresh\" content=\"0;URL=HomePage.#{html_ext}\" /></head></html>"
|
||||||
end
|
end
|
||||||
dir = Rails.root.join('public')
|
dir = Rails.root.join('public')
|
||||||
Dir["#{dir}/**/*"].each do |f|
|
Dir["#{dir}/{images,javascripts,s5,stylesheets}/**/*"].each do |f|
|
||||||
zip_out.add "public#{f.sub(dir.to_s,'')}", f
|
zip_out.add "public#{f.sub(dir.to_s,'')}", f
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -6,6 +6,7 @@ require 'maruku'
|
||||||
require 'maruku/ext/math'
|
require 'maruku/ext/math'
|
||||||
require_dependency 'rdocsupport'
|
require_dependency 'rdocsupport'
|
||||||
require 'redcloth'
|
require 'redcloth'
|
||||||
|
require 'oldredcloth'
|
||||||
|
|
||||||
# The markup engines are Chunks that call the one of RedCloth
|
# The markup engines are Chunks that call the one of RedCloth
|
||||||
# or RDoc to convert text. This markup occurs when the chunk is required
|
# or RDoc to convert text. This markup occurs when the chunk is required
|
||||||
|
@ -113,7 +114,7 @@ module Engines
|
||||||
class Mixed < AbstractEngine
|
class Mixed < AbstractEngine
|
||||||
def mask
|
def mask
|
||||||
@content.as_utf8
|
@content.as_utf8
|
||||||
redcloth = RedCloth.new(@content, @content.options[:engine_opts])
|
redcloth = OldRedCloth.new(@content, @content.options[:engine_opts])
|
||||||
redcloth.filter_html = false
|
redcloth.filter_html = false
|
||||||
redcloth.no_span_caps = false
|
redcloth.no_span_caps = false
|
||||||
html = redcloth.to_html
|
html = redcloth.to_html
|
||||||
|
|
|
@ -164,7 +164,7 @@
|
||||||
#
|
#
|
||||||
# class RedCloth::Textile.new( str )
|
# class RedCloth::Textile.new( str )
|
||||||
|
|
||||||
class RedCloth < String
|
class OldRedCloth < String
|
||||||
|
|
||||||
VERSION = '3.0.3'
|
VERSION = '3.0.3'
|
||||||
DEFAULT_RULES = [:textile, :markdown]
|
DEFAULT_RULES = [:textile, :markdown]
|
|
@ -358,11 +358,12 @@ END_THM
|
||||||
assert_match_markup_parsed_as(re, textile_and_markdown)
|
assert_match_markup_parsed_as(re, textile_and_markdown)
|
||||||
set_web_property :markup, :textile
|
set_web_property :markup, :textile
|
||||||
assert_markup_parsed_as(
|
assert_markup_parsed_as(
|
||||||
"<p>Markdown heading<br/>================</p>\n\n\n\t<h2>Textile heading</h2>" +
|
"<p>Markdown heading<br/>\n====</p>\n<h2>Textile heading</h2>" +
|
||||||
"\n\n\n\t<p><strong>some</strong> <b>text</b> <em>with</em> <del>styles</del></p>" +
|
"\n<p><strong>some</strong> <b>text</b> <em>with</em> <del>styles</del></p>" +
|
||||||
"\n\n\n\t<ul>\n\t<li>list 1</li>\n\t\t<li>list 2</li>\n\t</ul>",
|
"\n<ul>\n\t<li>list 1</li>\n\t<li>list 2</li>\n</ul>",
|
||||||
textile_and_markdown)
|
textile_and_markdown)
|
||||||
|
|
||||||
|
# Mixed Textile+Markdown markup not supported by RedCloth 4.x
|
||||||
set_web_property :markup, :mixed
|
set_web_property :markup, :mixed
|
||||||
assert_markup_parsed_as(
|
assert_markup_parsed_as(
|
||||||
"<h1>Markdown heading</h1>\n\n\n\t<h2>Textile heading</h2>\n\n\n\t" +
|
"<h1>Markdown heading</h1>\n\n\n\t<h2>Textile heading</h2>\n\n\n\t" +
|
||||||
|
@ -371,6 +372,13 @@ END_THM
|
||||||
textile_and_markdown)
|
textile_and_markdown)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_textile_pre
|
||||||
|
set_web_property :markup, :textile
|
||||||
|
assert_markup_parsed_as("<pre>\n<code>\n a == 16\n</code>\n</pre>\n<p>foo bar" +
|
||||||
|
"<br/>\n<pre><br/>\n<code>\n b == 16\n</code><br/>\n</pre></p>",
|
||||||
|
"<pre>\n<code>\n a == 16\n</code>\n</pre>\nfoo bar\n<pre>\n<code>\n b == 16\n</code>\n</pre>")
|
||||||
|
end
|
||||||
|
|
||||||
def test_rdoc
|
def test_rdoc
|
||||||
set_web_property :markup, :rdoc
|
set_web_property :markup, :rdoc
|
||||||
|
|
||||||
|
@ -461,7 +469,7 @@ END_THM
|
||||||
set_web_property :markup, :textile
|
set_web_property :markup, :textile
|
||||||
assert_markup_parsed_as(
|
assert_markup_parsed_as(
|
||||||
"<p>$$<span class='newWikiWord'>foo<a href='../show/foo'>?" +
|
"<p>$$<span class='newWikiWord'>foo<a href='../show/foo'>?" +
|
||||||
"</a></span>$$<br/>$<span class='newWikiWord'>foo<a " +
|
"</a></span>$$<br/>\n$<span class='newWikiWord'>foo<a " +
|
||||||
"href='../show/foo'>?</a></span>$</p>",
|
"href='../show/foo'>?</a></span>$</p>",
|
||||||
"$$[[foo]]$$\n$[[foo]]$")
|
"$$[[foo]]$$\n$[[foo]]$")
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue