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.
This commit is contained in:
lukebayes 2010-12-30 16:41:34 -08:00
parent 13df722073
commit 717a2540e1
3 changed files with 14 additions and 4 deletions

View File

@ -64,6 +64,7 @@ module Jekyll
'pygments' => false, 'pygments' => false,
'markdown' => 'maruku', 'markdown' => 'maruku',
'permalink' => 'date', 'permalink' => 'date',
'include' => ['.htaccess'],
'maruku' => { 'maruku' => {
'use_tex' => false, 'use_tex' => false,

View File

@ -2,7 +2,7 @@ module Jekyll
class Site class Site
attr_accessor :config, :layouts, :posts, :pages, :static_files, 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 :permalink_style, :tags, :time, :future, :safe, :plugins, :limit_posts
attr_accessor :converters, :generators attr_accessor :converters, :generators
@ -22,6 +22,7 @@ module Jekyll
self.pygments = config['pygments'] self.pygments = config['pygments']
self.permalink_style = config['permalink'].to_sym self.permalink_style = config['permalink'].to_sym
self.exclude = config['exclude'] || [] self.exclude = config['exclude'] || []
self.include = config['include'] || []
self.future = config['future'] self.future = config['future']
self.limit_posts = config['limit_posts'] || nil self.limit_posts = config['limit_posts'] || nil
@ -263,7 +264,7 @@ module Jekyll
# files such as '.htaccess' # files such as '.htaccess'
def filter_entries(entries) def filter_entries(entries)
entries = entries.reject do |e| 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) ['.', '_', '#'].include?(e[0..0]) || e[-1..-1] == '~' || self.exclude.include?(e)
end end
end end

View File

@ -126,12 +126,20 @@ class TestSite < Test::Unit::TestCase
should "filter entries with exclude" do should "filter entries with exclude" do
excludes = %w[README TODO] excludes = %w[README TODO]
includes = %w[index.html site.css] files = %w[index.html site.css .htaccess]
@site.exclude = excludes @site.exclude = excludes
assert_equal includes, @site.filter_entries(excludes + includes) assert_equal files, @site.filter_entries(excludes + files)
end 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 context 'with orphaned files in destination' do
setup do setup do
clear_dest clear_dest