module Jekyll class ProjectPage < Page def initialize(site, base, dir, project) @site = site @base = base @dir = dir @name = project['name'] + '.html' self.process(@name) self.read_yaml(File.join(base, '_layouts'), 'project.html') self.data['project_name'] = project['name'] self.data['file'] = project['file'] end end class ProjectGenerator < Generator safe true def generate(site) dir = site.config['projects_dir'] || 'Projects' site.data['projects'].each do |project| site.pages << ProjectPage.new(site, site.source, dir, project) end end end end