Module: RageRender::PaginationGenerator

Instance Method Summary collapse

Instance Method Details

#duplicate(page) ⇒ Object



9
10
11
12
13
14
15
16
# File 'lib/ragerender/jekyll/pagination.rb', line 9

def duplicate page
  Jekyll::Page.new(
    page.site,
    page.instance_variable_get(:"@base"),
    page.instance_variable_get(:"@dir"),
    page.name,
  )
end

#generate(site) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/ragerender/jekyll/pagination.rb', line 18

def generate site
  archive = source_page site
  archive.data['number'] = 1

  num_pages(site).times.each do |number|
    paged_archive = duplicate archive
    paged_archive.data['permalink'] = permalink.gsub(/:number/, (number + 1).to_s)
    paged_archive.data['number'] = number + 1
    paged_archive.data['hidden'] = true
    Jekyll.logger.debug 'Paginating:', paged_archive.data['permalink']
    handle_page paged_archive
  end
end

#handle_page(page) ⇒ Object



5
6
7
# File 'lib/ragerender/jekyll/pagination.rb', line 5

def handle_page page
  page.site.pages << page
end