From 717a2540e1c6612872d54aef52132c40f41ca3b5 Mon Sep 17 00:00:00 2001 From: lukebayes Date: Thu, 30 Dec 2010 16:41:34 -0800 Subject: [PATCH] Added support for 'include' configuration parameter. This parameter should work just like 'exclude', except it gives us the ability to enumerate any files that should not be ignored - even if they begin with the dastardly dot or underscore. --- lib/jekyll.rb | 1 + lib/jekyll/site.rb | 5 +++-- test/test_site.rb | 12 ++++++++++-- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/lib/jekyll.rb b/lib/jekyll.rb index 7928850c..7df782cd 100644 --- a/lib/jekyll.rb +++ b/lib/jekyll.rb @@ -64,6 +64,7 @@ module Jekyll 'pygments' => false, 'markdown' => 'maruku', 'permalink' => 'date', + 'include' => ['.htaccess'], 'maruku' => { 'use_tex' => false, diff --git a/lib/jekyll/site.rb b/lib/jekyll/site.rb index 55b5c9d4..5a2b69d2 100644 --- a/lib/jekyll/site.rb +++ b/lib/jekyll/site.rb @@ -2,7 +2,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 @@ -22,6 +22,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 @@ -263,7 +264,7 @@ module Jekyll # files such as '.htaccess' 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) end end diff --git a/test/test_site.rb b/test/test_site.rb index d8d1057e..0c63f3ac 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