272e84936e2f4fab51f5823e61e64be87fcb0b19
[web.git] / _plugins / readmes.rb
1 module Jekyll
2
3   class ReadmePage < Page
4     def initialize(site, base, dir, src)
5       @site = site
6       @base = base
7       @dir = dir
8       @name = 'index.md'
9
10       self.process(@name)
11       self.data ||= {}
12       
13       content = File.read(src, self.merged_file_read_opts({})).each_line.to_a
14
15       self.data['layout'] = 'default'
16       self.data['title'] = content[0].match(/^# (.*)\n$/)[1]
17       self.data['slug'] = self.data['title'].match(/^(.*):.*$/)[1]
18       self.content = content[1..content.size].join
19     end
20   end
21
22   class CategoryPageGenerator < Generator
23     safe true
24
25     def generate(site)
26       readmes = site.config['readmes']
27       base = readmes['src_base']
28       dir = readmes['out_base']
29       for project in readmes['projects']
30           site.pages << ReadmePage.new(site, site.source, File.join(dir, project['name']), File.join(base, project['name'], 'README.md'))
31       end
32     end
33   end
34
35 end