diff --git a/lib/jekyll.rb b/lib/jekyll.rb index b44eb5f3..a91187c3 100644 --- a/lib/jekyll.rb +++ b/lib/jekyll.rb @@ -71,6 +71,9 @@ module Jekyll 'png_engine' => 'blahtex', 'png_dir' => 'images/latex', 'png_url' => '/images/latex' + }, + 'rdiscount' => { + 'extensions' => [] } } diff --git a/lib/jekyll/converters/markdown.rb b/lib/jekyll/converters/markdown.rb index b4bc2475..317b1487 100644 --- a/lib/jekyll/converters/markdown.rb +++ b/lib/jekyll/converters/markdown.rb @@ -13,6 +13,9 @@ module Jekyll when 'rdiscount' begin require 'rdiscount' + + # Load rdiscount extensions + @rdiscount_extensions = @config['rdiscount']['extensions'].map { |e| e.to_sym } rescue LoadError STDERR.puts 'You are missing a library required for Markdown. Please run:' STDERR.puts ' $ [sudo] gem install rdiscount' @@ -67,7 +70,7 @@ module Jekyll setup case @config['markdown'] when 'rdiscount' - RDiscount.new(content).to_html + RDiscount.new(content, *@rdiscount_extensions).to_html when 'maruku' Maruku.new(content).to_html end diff --git a/test/test_rdiscount.rb b/test/test_rdiscount.rb new file mode 100644 index 00000000..2cb40d6d --- /dev/null +++ b/test/test_rdiscount.rb @@ -0,0 +1,18 @@ +require File.dirname(__FILE__) + '/helper' + +class TestRdiscount < Test::Unit::TestCase + + context "rdiscount" do + setup do + config = { + 'rdiscount' => { 'extensions' => ['smart'] }, + 'markdown' => 'rdiscount' + } + @markdown = MarkdownConverter.new config + end + + should "pass rdiscount extensions" do + assert_equal "
“smart”
", @markdown.convert('"smart"').strip + end + end +end