From 5801220a9887194a052bec2ce0493096ee505e98 Mon Sep 17 00:00:00 2001 From: Derek Prior Date: Tue, 12 Apr 2011 17:03:28 -0400 Subject: [PATCH 1/2] Added the ability to configure the file extensions to be processed by each converter. Test cases included. --- lib/jekyll.rb | 3 ++ lib/jekyll/converters/markdown.rb | 5 ++- lib/jekyll/converters/textile.rb | 3 +- test/source/_posts/2011-04-12-md-extension.md | 7 +++ .../_posts/2011-04-12-text-extension.text | 0 test/test_generated_site.rb | 2 +- test/test_post.rb | 43 ++++++++++++++++++- 7 files changed, 58 insertions(+), 5 deletions(-) create mode 100644 test/source/_posts/2011-04-12-md-extension.md create mode 100644 test/source/_posts/2011-04-12-text-extension.text diff --git a/lib/jekyll.rb b/lib/jekyll.rb index 7928850c..62b00132 100644 --- a/lib/jekyll.rb +++ b/lib/jekyll.rb @@ -64,6 +64,9 @@ module Jekyll 'pygments' => false, 'markdown' => 'maruku', 'permalink' => 'date', + + 'markdown_ext' => 'markdown,mdw,mdwn,md', + 'textile_ext' => 'textile', 'maruku' => { 'use_tex' => false, diff --git a/lib/jekyll/converters/markdown.rb b/lib/jekyll/converters/markdown.rb index 00c56d7c..b98bcd07 100644 --- a/lib/jekyll/converters/markdown.rb +++ b/lib/jekyll/converters/markdown.rb @@ -65,9 +65,10 @@ module Jekyll end @setup = true end - + def matches(ext) - ext =~ /(markdown|mkdn?|md)/i + rgx = '(' + @config['markdown_ext'].gsub(',','|') +')' + ext =~ Regexp.new(rgx, Regexp::IGNORECASE) end def output_ext(ext) diff --git a/lib/jekyll/converters/textile.rb b/lib/jekyll/converters/textile.rb index 072e393a..da823d35 100644 --- a/lib/jekyll/converters/textile.rb +++ b/lib/jekyll/converters/textile.rb @@ -17,7 +17,8 @@ module Jekyll end def matches(ext) - ext =~ /textile/i + rgx = '(' + @config['textile_ext'].gsub(',','|') +')' + ext =~ Regexp.new(rgx, Regexp::IGNORECASE) end def output_ext(ext) diff --git a/test/source/_posts/2011-04-12-md-extension.md b/test/source/_posts/2011-04-12-md-extension.md new file mode 100644 index 00000000..163e9133 --- /dev/null +++ b/test/source/_posts/2011-04-12-md-extension.md @@ -0,0 +1,7 @@ +--- +date: 2011-04-12 13:07:09 +--- + +under default configuration, this post should get processed by the identity converter. By changing +textile extension or markdown extension configuration parameters, you should be able to associate +it with either of those converters \ No newline at end of file diff --git a/test/source/_posts/2011-04-12-text-extension.text b/test/source/_posts/2011-04-12-text-extension.text new file mode 100644 index 00000000..e69de29b diff --git a/test/test_generated_site.rb b/test/test_generated_site.rb index cba75649..af9fee9f 100644 --- a/test/test_generated_site.rb +++ b/test/test_generated_site.rb @@ -14,7 +14,7 @@ class TestGeneratedSite < Test::Unit::TestCase end should "ensure post count is as expected" do - assert_equal 26, @site.posts.size + assert_equal 28, @site.posts.size end should "insert site.posts into the index" do diff --git a/test/test_post.rb b/test/test_post.rb index b93c5873..d63a9f0d 100644 --- a/test/test_post.rb +++ b/test/test_post.rb @@ -391,6 +391,47 @@ class TestPost < Test::Unit::TestCase post = Post.new(@site, File.join(File.dirname(__FILE__), *%w[source]), 'foo', 'bar/2008-12-12-topical-post.textile') assert_equal ['foo'], post.categories end - end + + context "converter file extension settings" do + setup do + stub(Jekyll).configuration { Jekyll::DEFAULTS } + @site = Site.new(Jekyll.configuration) + end + + should "process .md as markdown under default configuration" do + post = setup_post '2011-04-12-md-extension.md' + conv = post.converter + assert conv.kind_of? Jekyll::MarkdownConverter + end + + should "process .text as indentity under default configuration" do + post = setup_post '2011-04-12-text-extension.text' + conv = post.converter + assert conv.kind_of? Jekyll::IdentityConverter + end + + should "process .text as markdown under alternate configuration" do + @site.config['markdown_ext'] = 'markdown,mdw,mdwn,md,text' + post = setup_post '2011-04-12-text-extension.text' + conv = post.converter + assert conv.kind_of? Jekyll::MarkdownConverter + end + + should "process .md as markdown under alternate configuration" do + @site.config['markdown_ext'] = 'markdown,mdw,mdwn,md,text' + post = setup_post '2011-04-12-text-extension.text' + conv = post.converter + assert conv.kind_of? Jekyll::MarkdownConverter + end + + should "process .text as textile under alternate configuration" do + @site.config['textile_ext'] = 'textile,text' + post = setup_post '2011-04-12-text-extension.text' + conv = post.converter + assert conv.kind_of? Jekyll::TextileConverter + end + + end + end From d2377b2581808317afa3d759952638810628e8dd Mon Sep 17 00:00:00 2001 From: Derek Prior Date: Tue, 12 Apr 2011 17:30:56 -0400 Subject: [PATCH 2/2] Fixed mistake in default markdown extensions --- lib/jekyll.rb | 2 +- test/test_post.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/jekyll.rb b/lib/jekyll.rb index 62b00132..24b9f9c7 100644 --- a/lib/jekyll.rb +++ b/lib/jekyll.rb @@ -65,7 +65,7 @@ module Jekyll 'markdown' => 'maruku', 'permalink' => 'date', - 'markdown_ext' => 'markdown,mdw,mdwn,md', + 'markdown_ext' => 'markdown,mkd,mkdn,md', 'textile_ext' => 'textile', 'maruku' => { diff --git a/test/test_post.rb b/test/test_post.rb index d63a9f0d..d0fbdf85 100644 --- a/test/test_post.rb +++ b/test/test_post.rb @@ -419,7 +419,7 @@ class TestPost < Test::Unit::TestCase end should "process .md as markdown under alternate configuration" do - @site.config['markdown_ext'] = 'markdown,mdw,mdwn,md,text' + @site.config['markdown_ext'] = 'markdown,mkd,mkdn,md,text' post = setup_post '2011-04-12-text-extension.text' conv = post.converter assert conv.kind_of? Jekyll::MarkdownConverter