Class: Jekyll::Redirects
- Inherits:
-
Generator
- Object
- Generator
- Jekyll::Redirects
- 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
- #destination_for(page) ⇒ Object
-
#generate(site) ⇒ Object
only process redirects if it’s set in the config file.
-
#generate_redirects(site) ⇒ Object
find all posts with a redirect property and create a new page for each entry.
- #redirecting_pages(site) ⇒ Object
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 |