Only read layouts from source_dir or theme_dir (#6788)

Merge pull request 6788
This commit is contained in:
Ashwin Maroli 2018-11-18 17:24:32 +05:30 committed by jekyllbot
parent 41b8192b07
commit bfc733da90
2 changed files with 4 additions and 12 deletions

View File

@ -23,7 +23,7 @@ module Jekyll
end
def layout_directory
@layout_directory ||= (layout_directory_in_cwd || layout_directory_inside_source)
@layout_directory ||= site.in_source_dir(site.config["layouts_dir"])
end
def theme_layout_directory
@ -57,14 +57,5 @@ module Jekyll
Dir.chdir(directory) { yield }
end
def layout_directory_inside_source
site.in_source_dir(site.config["layouts_dir"])
end
def layout_directory_in_cwd
dir = Jekyll.sanitized_path(Dir.pwd, site.config["layouts_dir"])
dir if File.directory?(dir) && !site.safe
end
end
end

View File

@ -27,8 +27,9 @@ class TestLayoutReader < JekyllUnitTest
allow(Dir).to receive(:pwd).and_return(source_dir("blah"))
end
should "know to use the layout directory relative to CWD" do
assert_equal LayoutReader.new(@site).layout_directory, source_dir("blah/_layouts")
should "ignore the layout directory in CWD and use the directory relative to site source" do
refute_equal source_dir("blah/_layouts"), LayoutReader.new(@site).layout_directory
assert_equal source_dir("_layouts"), LayoutReader.new(@site).layout_directory
end
end