From 44822a252e2ce1142e3293f91285e0ced3ba2fe1 Mon Sep 17 00:00:00 2001 From: xiaojian cai Date: Sun, 6 Jan 2013 21:23:31 +0800 Subject: [PATCH] add regexp support for option 'include','exclude' --- lib/jekyll/site.rb | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/jekyll/site.rb b/lib/jekyll/site.rb index 7dbf1336..423d2e91 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'] || [] - self.include = config['include'] || [] + self.exclude = (config['exclude'] || []).map { |e| Regexp.new("^#{e}$") } + self.include = (config['include'] || []).map { |e| Regexp.new("^#{e}$") } self.future = config['future'] self.limit_posts = config['limit_posts'] || nil @@ -318,15 +318,19 @@ module Jekyll # Returns the Array of filtered entries. def filter_entries(entries) entries.reject do |e| - unless self.include.include?(e) + unless regexp_include?(self.include, e) ['.', '_', '#'].include?(e[0..0]) || e[-1..-1] == '~' || - self.exclude.include?(e) || + regexp_include?(self.exclude, e) || File.symlink?(e) end end end + def regexp_include?(exps, e) + !(exps.index { |exp| !exp.match(e).nil? }).nil? + end + # Get the implementation class for the given Converter. # # klass - The Class of the Converter to fetch.