Class: Jekyll::Redirects

Inherits:
Generator
  • Object
show all
Defined in:
lib/jekyll-redirects.rb

Overview

The redirect page creates a simple page that refreshes a user from a URL alias to an existing post. Redirects are only generated if there is a “redirects” parameter _config.yml

Instance Method Summary collapse

Instance Method Details

#destination_for(page) ⇒ Object



33
34
35
# File 'lib/jekyll-redirects.rb', line 33

def destination_for(page)
  page.data.fetch("redirects_to", page.url)
end

#generate(site) ⇒ Object

only process redirects if it’s set in the config file



12
13
14
# File 'lib/jekyll-redirects.rb', line 12

def generate(site)
  generate_redirects(site) if (site.config['redirects'])
end

#generate_redirects(site) ⇒ Object

find all posts with a redirect property and create a new page for each entry



17
18
19
20
21
22
23
24
25
26
# File 'lib/jekyll-redirects.rb', line 17

def generate_redirects(site)
  redirecting_pages(site).each do |page|
    page.data['redirects'].each do |r|
      redirect = RedirectPage.new(site, site.source, r, destination_for(page))
      redirect.render(site.layouts, site.site_payload)
      redirect.write(site.dest)
      site.pages << redirect
    end
  end
end

#redirecting_pages(site) ⇒ Object



29
30
31
# File 'lib/jekyll-redirects.rb', line 29

def redirecting_pages(site)
  (site.posts + site.pages).select{|x| x.data.key? 'redirects' }
end