diff --git a/History.txt b/History.txt index 1fc6d2e2..9f6307a0 100644 --- a/History.txt +++ b/History.txt @@ -10,6 +10,7 @@ * URL escape category names in URL generation (#360) * Fix error with limit_posts (#442) * Properly select dotfile during directory scan (#363, #431, #377) + * Allow setting of Kramdown smart_quotes (#482) == 0.11.2 / 2011-12-27 * Bug Fixes diff --git a/jekyll.gemspec b/jekyll.gemspec index 970a8ddc..88655609 100644 --- a/jekyll.gemspec +++ b/jekyll.gemspec @@ -26,7 +26,7 @@ Gem::Specification.new do |s| s.add_runtime_dependency('classifier', "~> 1.3") s.add_runtime_dependency('directory_watcher', "~> 1.1") s.add_runtime_dependency('maruku', "~> 0.5") - s.add_runtime_dependency('kramdown', "~> 0.13") + s.add_runtime_dependency('kramdown', "~> 0.13.4") s.add_runtime_dependency('albino', "~> 1.3") s.add_development_dependency('rake', "~> 0.9") diff --git a/lib/jekyll.rb b/lib/jekyll.rb index 6d5afd85..cc6502e9 100644 --- a/lib/jekyll.rb +++ b/lib/jekyll.rb @@ -88,6 +88,7 @@ module Jekyll 'footnote_nr' => 1, 'entity_output' => 'as_char', 'toc_levels' => '1..6', + 'smart_quotes' => 'lsquo,rsquo,ldquo,rdquo', 'use_coderay' => false, 'coderay' => { diff --git a/lib/jekyll/converters/markdown.rb b/lib/jekyll/converters/markdown.rb index b5655476..78e313d9 100644 --- a/lib/jekyll/converters/markdown.rb +++ b/lib/jekyll/converters/markdown.rb @@ -97,6 +97,7 @@ module Jekyll :footnote_nr => @config['kramdown']['footnote_nr'], :entity_output => @config['kramdown']['entity_output'], :toc_levels => @config['kramdown']['toc_levels'], + :smart_quotes => @config['kramdown']['smart_quotes'], :coderay_wrap => @config['kramdown']['coderay']['coderay_wrap'], :coderay_line_numbers => @config['kramdown']['coderay']['coderay_line_numbers'], @@ -111,7 +112,8 @@ module Jekyll :auto_ids => @config['kramdown']['auto_ids'], :footnote_nr => @config['kramdown']['footnote_nr'], :entity_output => @config['kramdown']['entity_output'], - :toc_levels => @config['kramdown']['toc_levels'] + :toc_levels => @config['kramdown']['toc_levels'], + :smart_quotes => @config['kramdown']['smart_quotes'] }).to_html end when 'rdiscount' diff --git a/test/test_kramdown.rb b/test/test_kramdown.rb index 99a7b454..043752c3 100644 --- a/test/test_kramdown.rb +++ b/test/test_kramdown.rb @@ -3,21 +3,31 @@ require 'helper' class TestKramdown < Test::Unit::TestCase context "kramdown" do setup do - config = { + @config = { 'markdown' => 'kramdown', 'kramdown' => { 'auto_ids' => false, 'footnote_nr' => 1, 'entity_output' => 'as_char', - 'toc_levels' => '1..6' + 'toc_levels' => '1..6', + 'smart_quotes' => 'lsquo,rsquo,ldquo,rdquo' } } - @markdown = MarkdownConverter.new config end # http://kramdown.rubyforge.org/converter/html.html#options should "pass kramdown options" do - assert_equal "
“Pit’hy”
", markdown.convert(%{"Pit'hy"}).strip + + override = { 'kramdown' => { 'smart_quotes' => 'lsaquo,rsaquo,laquo,raquo' } } + markdown = MarkdownConverter.new(@config.deep_merge(override)) + assert_equal "«Pit›hy»
", markdown.convert(%{"Pit'hy"}).strip end end end diff --git a/test/test_tags.rb b/test/test_tags.rb index 1af5d58c..ab0f3188 100644 --- a/test/test_tags.rb +++ b/test/test_tags.rb @@ -6,7 +6,7 @@ class TestTags < Test::Unit::TestCase def create_post(content, override = {}, converter_class = Jekyll::MarkdownConverter) stub(Jekyll).configuration do - Jekyll::DEFAULTS.merge({'pygments' => true}).merge(override) + Jekyll::DEFAULTS.deep_merge({'pygments' => true}).deep_merge(override) end site = Site.new(Jekyll.configuration)