diff --git a/lib/jekyll/site.rb b/lib/jekyll/site.rb index 423d2e91..b20c18c5 100644 --- a/lib/jekyll/site.rb +++ b/lib/jekyll/site.rb @@ -22,8 +22,8 @@ module Jekyll self.lsi = config['lsi'] self.pygments = config['pygments'] self.permalink_style = config['permalink'].to_sym - self.exclude = (config['exclude'] || []).map { |e| Regexp.new("^#{e}$") } - self.include = (config['include'] || []).map { |e| Regexp.new("^#{e}$") } + self.exclude = config['exclude'] || [] + self.include = config['include'] || [] self.future = config['future'] self.limit_posts = config['limit_posts'] || nil @@ -318,17 +318,17 @@ module Jekyll # Returns the Array of filtered entries. def filter_entries(entries) entries.reject do |e| - unless regexp_include?(self.include, e) + unless glob_include?(self.include, e) ['.', '_', '#'].include?(e[0..0]) || e[-1..-1] == '~' || - regexp_include?(self.exclude, e) || + glob_include?(self.exclude, e) || File.symlink?(e) end end end - def regexp_include?(exps, e) - !(exps.index { |exp| !exp.match(e).nil? }).nil? + def glob_include?(exps, e) + !(exps.index { |exp| File.fnmatch?(exp, e) }).nil? end # Get the implementation class for the given Converter.