Class: JekyllRedirectFrom::Generator

Inherits:
Jekyll::Generator
  • Object
show all
Defined in:
lib/jekyll-redirect-from/generator.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#redirectsObject (readonly)

Returns the value of attribute redirects.



6
7
8
# File 'lib/jekyll-redirect-from/generator.rb', line 6

def redirects
  @redirects
end

#siteObject (readonly)

Returns the value of attribute site.



6
7
8
# File 'lib/jekyll-redirect-from/generator.rb', line 6

def site
  @site
end

Instance Method Details

#generate(site) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/jekyll-redirect-from/generator.rb', line 8

def generate(site)
  @site = site
  @redirects = {}

  # Inject our layout, unless the user has already specified a redirect layout'
  unless site.layouts.key?("redirect")
    site.layouts["redirect"] = JekyllRedirectFrom::Layout.new(site)
  end

  # Must duplicate pages to modify while in loop
  (site.docs_to_write + site.pages.dup).each do |doc|
    next unless redirectable_document?(doc)

    generate_redirect_from(doc)
    generate_redirect_to(doc)
  end

  generate_redirects_json if generate_redirects_json?
end