diff --git a/lib/jekyll/site.rb b/lib/jekyll/site.rb index b892a31a..cbd7eba7 100644 --- a/lib/jekyll/site.rb +++ b/lib/jekyll/site.rb @@ -77,11 +77,10 @@ module Jekyll require f end end - self.gems.each do |gem| - require gem - end end + require_gems + self.converters = instantiate_subclasses(Jekyll::Converter) self.generators = instantiate_subclasses(Jekyll::Generator) end @@ -97,6 +96,18 @@ module Jekyll end end + def require_gems + self.gems.each do |gem| + if gem_whitelist.include?(gem) || !self.safe + require gem + end + end + end + + def gem_whitelist + @gem_whitelist ||= [] + end + # Internal: Setup the plugin search path # # Returns an Array of plugin search paths