Create a LayoutReader class to read layouts
This commit is contained in:
parent
182a49fcff
commit
f581940c71
|
@ -48,6 +48,7 @@ require 'jekyll/errors'
|
|||
require 'jekyll/related_posts'
|
||||
require 'jekyll/cleaner'
|
||||
require 'jekyll/entry_filter'
|
||||
require 'jekyll/layout_reader'
|
||||
|
||||
# extensions
|
||||
require 'jekyll/plugin'
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
class LayoutReader
|
||||
attr_reader :site
|
||||
def initialize(site)
|
||||
@site = site
|
||||
@layouts = {}
|
||||
end
|
||||
|
||||
def read
|
||||
base = File.join(site.source, site.config['layouts'])
|
||||
return @layouts unless File.exists?(base)
|
||||
entries = []
|
||||
Dir.chdir(base) { entries = EntryFilter.new(site).filter(Dir['**/*.*']) }
|
||||
|
||||
entries.each do |f|
|
||||
name = f.split(".")[0..-2].join(".")
|
||||
@layouts[name] = Layout.new(site, base, f)
|
||||
end
|
||||
|
||||
@layouts
|
||||
end
|
||||
end
|
|
@ -137,15 +137,7 @@ module Jekyll
|
|||
#
|
||||
# Returns nothing.
|
||||
def read_layouts
|
||||
base = File.join(self.source, self.config['layouts'])
|
||||
return unless File.exists?(base)
|
||||
entries = []
|
||||
Dir.chdir(base) { entries = filter_entries(Dir['**/*.*'], base) }
|
||||
|
||||
entries.each do |f|
|
||||
name = f.split(".")[0..-2].join(".")
|
||||
self.layouts[name] = Layout.new(self, base, f)
|
||||
end
|
||||
self.layouts = LayoutReader.new(self).read
|
||||
end
|
||||
|
||||
# Recursively traverse directories to find posts, pages and static files
|
||||
|
|
Loading…
Reference in New Issue