Parent

Files

Jekyll::Generators::Pagination

Public Instance Methods

generate(site) click to toggle source

Generate paginated pages if necessary.

site - The Site.

Returns nothing.

# File lib/jekyll/generators/pagination.rb, line 12
def generate(site)
  site.pages.dup.each do |page|
    paginate(site, page) if Pager.pagination_enabled?(site.config, page)
  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/generators/pagination.rb, line 32
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.config, num_page, all_posts, pages)
    if num_page > 1
      newpage = Page.new(site, site.source, page.dir, page.name)
      newpage.pager = pager
      newpage.dir = File.join(page.dir, Pager.paginate_path(site.config, num_page))
      site.pages << newpage
    else
      page.pager = pager
    end
  end
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.