This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module Jekyll
|
||||
class Layout
|
||||
include Convertible
|
||||
|
||||
attr_accessor :content, # content of layout
|
||||
:data, # the Hash that holds the metadata for this layout
|
||||
:ext # extension of layout
|
||||
|
||||
attr_reader :name, # name of layout
|
||||
:path, # path to layout
|
||||
:site, # the Site object
|
||||
:relative_path # path to layout relative to its base
|
||||
|
||||
# Initialize a new Layout.
|
||||
#
|
||||
# site - The Site.
|
||||
# base - The String path to the source.
|
||||
# name - The String filename of the post file.
|
||||
def initialize(site, base, name)
|
||||
@site = site
|
||||
@base = base
|
||||
@name = name
|
||||
|
||||
if site.theme && site.theme.layouts_path.eql?(base)
|
||||
@base_dir = site.theme.root
|
||||
@path = site.in_theme_dir(base, name)
|
||||
else
|
||||
@base_dir = site.source
|
||||
@path = site.in_source_dir(base, name)
|
||||
end
|
||||
@relative_path = @path.sub(@base_dir, "")
|
||||
|
||||
self.data = {}
|
||||
|
||||
process(name)
|
||||
read_yaml(base, name)
|
||||
end
|
||||
|
||||
# Extract information from the layout filename.
|
||||
#
|
||||
# name - The String filename of the layout file.
|
||||
#
|
||||
# Returns nothing.
|
||||
def process(name)
|
||||
self.ext = File.extname(name)
|
||||
end
|
||||
|
||||
# Returns the object as a debug String.
|
||||
def inspect
|
||||
"#<#{self.class} @path=#{@path.inspect}>"
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user