dash-docs/_plugins/redirects.rb
2014-11-08 13:56:41 -05:00

47 lines
1.1 KiB
Ruby

#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)
#Do nothing if plugin is disabled
if !ENV['ENABLED_PLUGINS'].nil? and ENV['ENABLED_PLUGINS'].index('redirects').nil?
print 'Redirects disabled' + "\n"
return
end
#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