Merge pull request #654 from mattr-/issue-653

Look for plugins under the source directory. Fixes #653.
This commit is contained in:
Parker Moore 2013-02-26 12:34:11 -08:00
commit 465e25021b
3 changed files with 19 additions and 3 deletions

View File

@ -58,8 +58,7 @@ module Jekyll
DEFAULTS = { DEFAULTS = {
'source' => Dir.pwd, 'source' => Dir.pwd,
'destination' => File.join(Dir.pwd, '_site'), 'destination' => File.join(Dir.pwd, '_site'),
'plugins' => '_plugins',
'plugins' => File.join(Dir.pwd, '_plugins'),
'layouts' => '_layouts', 'layouts' => '_layouts',
'keep_files' => ['.git','.svn'], 'keep_files' => ['.git','.svn'],

View File

@ -18,7 +18,7 @@ module Jekyll
self.safe = config['safe'] self.safe = config['safe']
self.source = File.expand_path(config['source']) self.source = File.expand_path(config['source'])
self.dest = File.expand_path(config['destination']) self.dest = File.expand_path(config['destination'])
self.plugins = Array(config['plugins']).map { |d| File.expand_path(d) } self.plugins = plugins_path
self.lsi = config['lsi'] self.lsi = config['lsi']
self.pygments = config['pygments'] self.pygments = config['pygments']
self.permalink_style = config['permalink'].to_sym self.permalink_style = config['permalink'].to_sym
@ -100,6 +100,17 @@ module Jekyll
end end
end end
# Internal: Setup the plugin search path
#
# Returns an Array of plugin search paths
def plugins_path
if (config['plugins'] == Jekyll::DEFAULTS['plugins'])
[File.join(self.source, config['plugins'])]
else
Array(config['plugins']).map { |d| File.expand_path(d) }
end
end
# Read Site data from disk and load it into internal data structures. # Read Site data from disk and load it into internal data structures.
# #
# Returns nothing. # Returns nothing.

View File

@ -7,6 +7,11 @@ class TestSite < Test::Unit::TestCase
assert_equal [File.join(Dir.pwd, '_plugins')], site.plugins assert_equal [File.join(Dir.pwd, '_plugins')], site.plugins
end end
should "look for plugins under the site directory by default" do
site = Site.new(Jekyll::DEFAULTS.merge({'source' => source_dir}))
assert_equal [File.join(source_dir, '_plugins')], site.plugins
end
should "have an array for plugins if passed as a string" do should "have an array for plugins if passed as a string" do
site = Site.new(Jekyll::DEFAULTS.merge({'plugins' => '/tmp/plugins'})) site = Site.new(Jekyll::DEFAULTS.merge({'plugins' => '/tmp/plugins'}))
assert_equal ['/tmp/plugins'], site.plugins assert_equal ['/tmp/plugins'], site.plugins
@ -26,6 +31,7 @@ class TestSite < Test::Unit::TestCase
site = Site.new(Jekyll::DEFAULTS.merge({'plugins' => nil})) site = Site.new(Jekyll::DEFAULTS.merge({'plugins' => nil}))
assert_equal [], site.plugins assert_equal [], site.plugins
end end
end end
context "creating sites" do context "creating sites" do
setup do setup do