class Jekyll::Layout

Attributes

content[RW]

Gets/Sets the content of this layout.

data[RW]

Gets/Sets the Hash that holds the metadata for this layout.

ext[RW]

Gets/Sets the extension of this layout.

name[R]

Gets the name of this layout.

path[R]

Gets the path to this layout.

relative_path[R]

Gets the path to this layout relative to its base

site[R]

Gets the Site object.

Public Class Methods

new(site, base, name) click to toggle source

Initialize a new Layout.

site - The Site. base - The String path to the source. name - The String filename of the post file.

# File lib/jekyll/layout.rb, line 31
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

Public Instance Methods

process(name) click to toggle source

Extract information from the layout filename.

name - The String filename of the layout file.

Returns nothing.

# File lib/jekyll/layout.rb, line 56
def process(name)
  self.ext = File.extname(name)
end