LayoutReader#read: read in Theme layouts if they aren't already registered
This commit is contained in:
parent
a30068bf3f
commit
0920d2b48a
|
@ -7,8 +7,12 @@ module Jekyll
|
||||||
end
|
end
|
||||||
|
|
||||||
def read
|
def read
|
||||||
layout_entries.each do |f|
|
layout_entries.each do |layout_file|
|
||||||
@layouts[layout_name(f)] = Layout.new(site, layout_directory, f)
|
@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
|
end
|
||||||
|
|
||||||
@layouts
|
@layouts
|
||||||
|
@ -18,11 +22,23 @@ module Jekyll
|
||||||
@layout_directory ||= (layout_directory_in_cwd || layout_directory_inside_source)
|
@layout_directory ||= (layout_directory_in_cwd || layout_directory_inside_source)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def theme_layout_directory
|
||||||
|
@theme_layout_directory ||= site.theme.layout_dir if site.theme
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def layout_entries
|
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 = []
|
entries = []
|
||||||
within(layout_directory) do
|
within(dir) do
|
||||||
entries = EntryFilter.new(site).filter(Dir['**/*.*'])
|
entries = EntryFilter.new(site).filter(Dir['**/*.*'])
|
||||||
end
|
end
|
||||||
entries
|
entries
|
||||||
|
|
Loading…
Reference in New Issue