Handle redirections in _config.yml

This commit is contained in:
Saivann 2014-02-19 14:57:04 -05:00
parent 14e25c5a1f
commit 58ef9c6c56
28 changed files with 152 additions and 244 deletions

40
_plugins/redirects.rb Normal file
View file

@ -0,0 +1,40 @@
#redirects.rb generates all redirection pages
#from _config.yml .
require 'yaml'
require 'cgi'
module Jekyll
class PageRedirect < Page
def initialize(site, base, srcdir, src, dst)
@site = site
@base = base
@dir = srcdir
@name = src
self.process(src)
self.read_yaml(File.join(base, '/'), 'index.html')
self.data['lang'] = 'en'
self.data['redirect'] = dst
self.data['layout'] = 'redirect'
end
end
class RedirectPageGenerator < Generator
def generate(site)
#Load redirections
redirects = YAML.load_file("_config.yml")['redirects']
#Generate each redirection page
if !File.directory?(site.dest)
Dir.mkdir(site.dest)
end
redirects.each do |src,dst|
srcar = src.split('/')
src = srcar.pop + '.html'
srcdir = srcar.join('/')
site.pages << PageRedirect.new(site, site.source, srcdir, src, dst)
end
end
end
end