LayoutReader#read: read in Theme layouts if they aren't already registered

This commit is contained in:
Parker Moore 2016-03-25 17:06:26 -07:00
parent a30068bf3f
commit 0920d2b48a
No known key found for this signature in database
GPG Key ID: 193CDEBA72063C58
1 changed files with 19 additions and 3 deletions

View File

@ -7,8 +7,12 @@ module Jekyll
end
def read
layout_entries.each do |f|
@layouts[layout_name(f)] = Layout.new(site, layout_directory, f)
layout_entries.each do |layout_file|
@layouts[layout_name(layout_file)] = Layout.new(site, layout_directory, layout_file)
end
theme_layout_entries.each do |layout_file|
@layouts[layout_name(layout_file)] ||= Layout.new(site, theme_layout_directory, layout_file)
end
@layouts
@ -18,11 +22,23 @@ module Jekyll
@layout_directory ||= (layout_directory_in_cwd || layout_directory_inside_source)
end
def theme_layout_directory
@theme_layout_directory ||= site.theme.layout_dir if site.theme
end
private
def layout_entries
entries_in layout_directory
end
def theme_layout_entries
theme_layout_directory ? entries_in(theme_layout_directory) : []
end
def entries_in(dir)
entries = []
within(layout_directory) do
within(dir) do
entries = EntryFilter.new(site).filter(Dir['**/*.*'])
end
entries