Class: Jekyll::Page

### Home Classes Methods

### In Files

- lib/jekyll/page.rb

### Parent

Object

### Methods

- ::new
- #destination
- #dir
- #html?
- #index?
- #inspect
- #path
- #permalink
- #process
- #relative_path
- #render
- #template
- #url
- #url_placeholders
- #uses_relative_permalinks

### Included Modules

- Jekyll::Convertible

### Files

- LICENSE

### Class/Module Index

Quicksearch

- Jekyll
- Jekyll::Command
- Jekyll::Commands
- Jekyll::Commands::Build
- Jekyll::Commands::Doctor
- Jekyll::Commands::New
- Jekyll::Commands::Serve
- Jekyll::Configuration
- Jekyll::Converter
- Jekyll::Converters
- Jekyll::Converters::Identity
- Jekyll::Converters::Markdown
- Jekyll::Converters::Markdown::KramdownParser
- Jekyll::Converters::Markdown::MarukuParser
- Jekyll::Converters::Markdown::RDiscountParser
- Jekyll::Converters::Markdown::RedcarpetParser
- Jekyll::Converters::Markdown::RedcarpetParser::CommonMethods
- Jekyll::Converters::Markdown::RedcarpetParser::WithPygments
- Jekyll::Converters::Markdown::RedcarpetParser::WithoutPygments
- Jekyll::Converters::Textile
- Jekyll::Convertible
- Jekyll::Deprecator
- Jekyll::Draft
- Jekyll::Excerpt
- Jekyll::FatalException
- Jekyll::Filters
- Jekyll::Generator
- Jekyll::Generators
- Jekyll::Generators::Pagination
- Jekyll::GistTag
- Jekyll::Layout
- Jekyll::Page
- Jekyll::Pager
- Jekyll::Plugin
- Jekyll::Post
- Jekyll::RelatedPosts
- Jekyll::Site
- Jekyll::Site::Cleaner
- Jekyll::StaticFile
- Jekyll::Stevenson
- Jekyll::Tags
- Jekyll::Tags::HighlightBlock
- Jekyll::Tags::IncludeTag
- Jekyll::Tags::PostComparer
- Jekyll::Tags::PostUrl
- Jekyll::URL
- Date
- Enumerable
- Hash
- Object

No matching classes.

# 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 23
    def initialize(site, base, dir, name)
      @site = site
      @base = base
      @dir  = dir
      @name = name

      self.process(name)
      self.read_yaml(File.join(base, dir), name)
    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 135
    def destination(dest)
      path = File.join(dest, self.url)
      path = File.join(path, "index.html") if self.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 38
    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 147
    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 152
    def index?
      basename == 'index'
    end

inspect() click to toggle source

Returns the object as a debug String.

    # File lib/jekyll/page.rb, line 142
    def inspect
      "#<Jekyll:Page @name=#{self.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 121
    def path
      self.data.fetch('path', self.relative_path.sub(/\A\//, ''))
    end

permalink() click to toggle source

The full path and filename of the post. Defined in the YAML of the post body.

Returns the String permalink or nil if none has been set.

    # File lib/jekyll/page.rb, line 46
    def permalink
      return nil if self.data.nil? || self.data['permalink'].nil?
      if site.config['relative_permalinks']
        File.join(@dir, self.data['permalink'])
      else
        self.data['permalink']
      end
    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 98
    def process(name)
      self.ext = File.extname(name)
      self.basename = name[0 .. -self.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 126
    def relative_path
      File.join(@dir, @name)
    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 109
    def render(layouts, site_payload)
      payload = {
        "page" => self.to_liquid,
        'paginator' => pager.to_liquid
      }.deep_merge(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 58
    def template
      if self.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 75
    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 85
    def url_placeholders
      {
        :path       => @dir,
        :basename   => self.basename,
        :output_ext => self.output_ext
      }
    end

uses_relative_permalinks() click to toggle source

    # File lib/jekyll/page.rb, line 156
    def uses_relative_permalinks
      permalink && @dir != "" && site.config['relative_permalinks']
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.