From f85e229a9e99e8c9368928379e564bc8056ecd8a Mon Sep 17 00:00:00 2001 From: Jason Graham Date: Sat, 20 Nov 2010 14:38:40 -0800 Subject: [PATCH] Add support for kramdown HTML converter options http://kramdown.rubyforge.org/converter/html.html#options Example: In the _config.yaml, markdown: kramdown kramdown: auto_ids: true --- lib/jekyll.rb | 6 ++++++ lib/jekyll/converters/markdown.rb | 7 ++++++- test/test_kramdown.rb | 24 ++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 test/test_kramdown.rb diff --git a/lib/jekyll.rb b/lib/jekyll.rb index 9d13f99f..981f8ed8 100644 --- a/lib/jekyll.rb +++ b/lib/jekyll.rb @@ -74,6 +74,12 @@ module Jekyll }, 'rdiscount' => { 'extensions' => [] + }, + 'kramdown' => { + 'auto_ids' => true, + 'footnote_nr' => 1, + 'entity_output' => 'as_char', + 'toc_levels' => '1..6' } } diff --git a/lib/jekyll/converters/markdown.rb b/lib/jekyll/converters/markdown.rb index a0ba3ee1..4e3110e5 100644 --- a/lib/jekyll/converters/markdown.rb +++ b/lib/jekyll/converters/markdown.rb @@ -79,7 +79,12 @@ module Jekyll setup case @config['markdown'] when 'kramdown' - Kramdown::Document.new(content).to_html + Kramdown::Document.new(content, { + :auto_ids => @config['kramdown']['auto_ids'], + :footnote_nr => @config['kramdown']['footnote_nr'], + :entity_output => @config['kramdown']['entity_output'], + :toc_levels => @config['kramdown']['toc_levels'] + }).to_html when 'rdiscount' RDiscount.new(content, *@rdiscount_extensions).to_html when 'maruku' diff --git a/test/test_kramdown.rb b/test/test_kramdown.rb new file mode 100644 index 00000000..0bcc58e5 --- /dev/null +++ b/test/test_kramdown.rb @@ -0,0 +1,24 @@ +require File.dirname(__FILE__) + '/helper' + +class TestKramdown < Test::Unit::TestCase + + context "kramdown" do + setup do + config = { + 'markdown' => 'kramdown', + 'kramdown' => { 'auto_ids' => false, + 'footnote_nr' => 1, + 'entity_output' => 'as_char', + 'toc_levels' => '1..6' + } + } + @markdown = MarkdownConverter.new config + end + + # http://kramdown.rubyforge.org/converter/html.html#options + should "pass kramdown options" do + assert_equal "

Some Header

", @markdown.convert('# Some Header #').strip + end + + end +end