+module Jekyll
+
+ class ReadmePage < Page
+ def initialize(site, base, dir, src)
+ @site = site
+ @base = base
+ @dir = dir
+ @name = 'index.md'
+
+ self.process(@name)
+ self.data ||= {}
+
+ content = File.read(src, self.merged_file_read_opts({})).each_line.to_a
+
+ self.data['layout'] = 'default'
+ self.data['title'] = content[0].match(/^# (.*)\n$/)[1]
+ self.data['slug'] = self.data['title'].match(/^(.*):.*$/)[1]
+ self.content = content[1..content.size].join
+ end
+ end
+
+ class CategoryPageGenerator < Generator
+ safe true
+
+ def generate(site)
+ readmes = site.config['readmes']
+ base = readmes['src_base']
+ dir = readmes['out_base']
+ for project in readmes['projects']
+ site.pages << ReadmePage.new(site, site.source, File.join(dir, project['name']), File.join(base, project['name'], 'README.md'))
+ end
+ end
+ end
+
+end