X-Git-Url: https://git.ralfj.de/web.git/blobdiff_plain/9ec5b4c0fb5f705fa69b1629c6eaa60dae500b69..c3f35ab1622ecb792dba0ece727f148abf6018fb:/ralf/_plugins/readmes.rb diff --git a/ralf/_plugins/readmes.rb b/ralf/_plugins/readmes.rb new file mode 100644 index 0000000..f702589 --- /dev/null +++ b/ralf/_plugins/readmes.rb @@ -0,0 +1,41 @@ +module Jekyll + + class ReadmePage < Page + def initialize(site, base, dir, src, idx) + @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'] = 'page' + self.data['title'] = content[0].match(/^#* ?(.*)\n$/)[1] + slug = self.data['title'].match(/^([^:]*):.*$/) + if slug + self.data['slug'] = slug[1] + end + self.data['sort'] = idx + self.content = content[1..content.size].join + end + end + + class ReadmePageGenerator < Generator + safe true + + def generate(site) + readmes = site.config['readmes'] + base = readmes['src_base'] + dir = readmes['out_base'] + idx = 0 + for project in readmes['projects'] + site.pages << ReadmePage.new(site, site.source, File.join(dir, project['name']), File.join(base, project['src'] ? project['src'] : project['name'], 'README.md'), idx) + idx += 1 + end + end + end + +end