diff --git a/History.txt b/History.txt index 884b58e9..5d6a03cd 100644 --- a/History.txt +++ b/History.txt @@ -1,3 +1,7 @@ +== HEAD + * Minor Enhancements + * Add ability to explicitly specify included files (#261) + == 0.11.2 / 2011-12-27 * Bug Fixes * Fix gemspec diff --git a/lib/jekyll.rb b/lib/jekyll.rb index 859060c5..9998799c 100644 --- a/lib/jekyll.rb +++ b/lib/jekyll.rb @@ -65,7 +65,8 @@ module Jekyll 'pygments' => false, 'markdown' => 'maruku', 'permalink' => 'date', - + 'include' => ['.htaccess'], + 'markdown_ext' => 'markdown,mkd,mkdn,md', 'textile_ext' => 'textile', diff --git a/lib/jekyll/site.rb b/lib/jekyll/site.rb index 9c24f8e4..a4d21109 100644 --- a/lib/jekyll/site.rb +++ b/lib/jekyll/site.rb @@ -4,7 +4,7 @@ module Jekyll class Site attr_accessor :config, :layouts, :posts, :pages, :static_files, - :categories, :exclude, :source, :dest, :lsi, :pygments, + :categories, :exclude, :include, :source, :dest, :lsi, :pygments, :permalink_style, :tags, :time, :future, :safe, :plugins, :limit_posts attr_accessor :converters, :generators @@ -23,6 +23,7 @@ module Jekyll self.pygments = config['pygments'] self.permalink_style = config['permalink'].to_sym self.exclude = config['exclude'] || [] + self.include = config['include'] || [] self.future = config['future'] self.limit_posts = config['limit_posts'] || nil @@ -305,7 +306,7 @@ module Jekyll # Returns the Array of filtered entries. def filter_entries(entries) entries = entries.reject do |e| - unless ['.htaccess'].include?(e) + unless self.include.include?(e) ['.', '_', '#'].include?(e[0..0]) || e[-1..-1] == '~' || self.exclude.include?(e) || diff --git a/test/test_site.rb b/test/test_site.rb index c9b991b7..0aa28497 100644 --- a/test/test_site.rb +++ b/test/test_site.rb @@ -126,12 +126,20 @@ class TestSite < Test::Unit::TestCase should "filter entries with exclude" do excludes = %w[README TODO] - includes = %w[index.html site.css] + files = %w[index.html site.css .htaccess] @site.exclude = excludes - assert_equal includes, @site.filter_entries(excludes + includes) + assert_equal files, @site.filter_entries(excludes + files) end + should "not filter entries within include" do + includes = %w[_index.html .htaccess] + files = %w[index.html _index.html .htaccess] + + @site.include = includes + assert_equal files, @site.filter_entries(files) + end + context 'with orphaned files in destination' do setup do clear_dest