Parent

Class/Module Index [+]

Quicksearch

Jekyll::Paginate::Pagination

Public Class Methods

first_page_url(site) click to toggle source

Static: Fetch the URL of the template page. Used to determine the

path to the first pager in the series.

site - the Jekyll::Site object

Returns the url of the template page

# File lib/jekyll-paginate/pagination.rb, line 62
def self.first_page_url(site)
  if page = Pagination.new.template_page(site)
    page.url
  else
    nil
  end
end

Public Instance Methods

generate(site) click to toggle source

Generate paginated pages if necessary.

site - The Site.

Returns nothing.

# File lib/jekyll-paginate/pagination.rb, line 15
def generate(site)
  if Pager.pagination_enabled?(site)
    if template = template_page(site)
      paginate(site, template)
    else
      Jekyll.logger.warn "Pagination:", "Pagination is enabled, but I couldn't find " +
      "an index.html page to use as the pagination template. Skipping pagination."
    end
  end
end
paginate(site, page) click to toggle source

Paginates the blog’s posts. Renders the index.html file into paginated directories, e.g.: page2/index.html, page3/index.html, etc and adds more site-wide data.

site - The Site. page - The index.html Page that requires pagination.

{“paginator” => { “page” => <Number>,

"per_page" => <Number>,
"posts" => [<Post>],
"total_posts" => <Number>,
"total_pages" => <Number>,
"previous_page" => <Number>,
"next_page" => <Number> }}
# File lib/jekyll-paginate/pagination.rb, line 40
def paginate(site, page)
  all_posts = site.site_payload['site']['posts']
  pages = Pager.calculate_pages(all_posts, site.config['paginate'].to_i)
  (1..pages).each do |num_page|
    pager = Pager.new(site, num_page, all_posts, pages)
    if num_page > 1
      newpage = Page.new(site, site.source, page.dir, page.name)
      newpage.pager = pager
      newpage.dir = Pager.paginate_path(site, num_page)
      site.pages << newpage
    else
      page.pager = pager
    end
  end
end
template_page(site) click to toggle source

Public: Find the Jekyll::Page which will act as the pager template

site - the Jekyll::Site object

Returns the Jekyll::Page which will act as the pager template

# File lib/jekyll-paginate/pagination.rb, line 75
def template_page(site)
  site.pages.dup.select do |page|
    Pager.pagination_candidate?(site.config, page)
  end.sort do |one, two|
    two.path.size <=> one.path.size
  end.first
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.