Parent

Included Modules

Files

Class/Module Index [+]

Quicksearch

Jekyll::Page

Constants

ATTRIBUTES_FOR_LIQUID

Attributes for Liquid templates

Attributes

basename[RW]
content[RW]
data[RW]
dir[W]
ext[RW]
name[RW]
output[RW]
pager[RW]
site[RW]

Public Class Methods

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

Initialize a new Page.

site - The Site object. base - The String path to the source. dir - The String path between the source and the file. name - The String filename of the file.

# File lib/jekyll/page.rb, line 25
def initialize(site, base, dir, name)
  @site = site
  @base = base
  @dir  = dir
  @name = name


  process(name)
  read_yaml(File.join(base, dir), name)

  data.default_proc = proc do |hash, key|
    site.frontmatter_defaults.find(File.join(dir, name), type, key)
  end
end

Public Instance Methods

destination(dest) click to toggle source

Obtain destination path.

dest - The String path to the destination dir.

Returns the destination file path String.

# File lib/jekyll/page.rb, line 142
def destination(dest)
  path = Jekyll.sanitized_path(dest, URL.unescape_path(url))
  path = File.join(path, "index.html") if url =~ /\/$/
  path
end
dir() click to toggle source

The generated directory into which the page will be placed upon generation. This is derived from the permalink or, if permalink is absent, we be ‘/’

Returns the String destination directory.

# File lib/jekyll/page.rb, line 45
def dir
  url[-1, 1] == '/' ? url : File.dirname(url)
end
html?() click to toggle source

Returns the Boolean of whether this Page is HTML or not.

# File lib/jekyll/page.rb, line 154
def html?
  output_ext == '.html'
end
index?() click to toggle source

Returns the Boolean of whether this Page is an index file or not.

# File lib/jekyll/page.rb, line 159
def index?
  basename == 'index'
end
inspect() click to toggle source

Returns the object as a debug String.

# File lib/jekyll/page.rb, line 149
def inspect
  "#<Jekyll:Page @name=#{name.inspect}>"
end
path() click to toggle source

The path to the source file

Returns the path to the source file

# File lib/jekyll/page.rb, line 128
def path
  data.fetch('path', relative_path.sub(/\A\//, ''))
end
process(name) click to toggle source

Extract information from the page filename.

name - The String filename of the page file.

Returns nothing.

# File lib/jekyll/page.rb, line 105
def process(name)
  self.ext = File.extname(name)
  self.basename = name[0 .. -ext.length - 1]
end
relative_path() click to toggle source

The path to the page source file, relative to the site source

# File lib/jekyll/page.rb, line 133
def relative_path
  File.join(*[@dir, @name].map(&:to_s).reject(&:empty?))
end
render(layouts, site_payload) click to toggle source

Add any necessary layouts to this post

layouts - The Hash of {“name” => “layout”}. site_payload - The site payload Hash.

Returns nothing.

# File lib/jekyll/page.rb, line 116
def render(layouts, site_payload)
  payload = Utils.deep_merge_hashes({
    "page" => to_liquid,
    'paginator' => pager.to_liquid
  }, site_payload)

  do_layout(payload, layouts)
end
template() click to toggle source

The template of the permalink.

Returns the template String.

# File lib/jekyll/page.rb, line 65
def template
  if site.permalink_style == :pretty
    if index? && html?
      "/:path/"
    elsif html?
      "/:path/:basename/"
    else
      "/:path/:basename:output_ext"
    end
  else
    "/:path/:basename:output_ext"
  end
end
url() click to toggle source

The generated relative url of this page. e.g. /about.html.

Returns the String url.

# File lib/jekyll/page.rb, line 82
def url
  @url ||= URL.new({
    :template => template,
    :placeholders => url_placeholders,
    :permalink => permalink
  }).to_s
end
url_placeholders() click to toggle source

Returns a hash of URL placeholder names (as symbols) mapping to the desired placeholder replacements. For details see “url.rb”

# File lib/jekyll/page.rb, line 92
def url_placeholders
  {
    :path       => @dir,
    :basename   => basename,
    :output_ext => output_ext
  }
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.