From a9427057409359dd7aaeace41ab68f8a6d49dc54 Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Wed, 7 Oct 2015 18:27:28 +0200 Subject: [PATCH] more careful sorting of the menu; readme generator more failure-resistant; add missing readmes --- _config.yml | 4 ++++ _plugins/menu.rb | 2 +- _plugins/readmes.rb | 14 ++++++++++---- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/_config.yml b/_config.yml index 9ec865f..7d12ba3 100644 --- a/_config.yml +++ b/_config.yml @@ -11,7 +11,11 @@ readmes: projects: - name: "lilass" - name: "dyn-nsupdate" + - name: "zonemaker" - name: "schsh" + - name: "rust-101" + src: "rust/rust-101" + - name: "git-mirror" defaults: - scope: diff --git a/_plugins/menu.rb b/_plugins/menu.rb index 98614b7..befe357 100644 --- a/_plugins/menu.rb +++ b/_plugins/menu.rb @@ -30,7 +30,7 @@ module Jekyll end end # sort the result before returning it - result.sort_by { |a| a['url'] } + result.sort_by { |a| [a['sort'], a['url']] } end create_menu(input, "", displayurl.sub('/index.html', '')) diff --git a/_plugins/readmes.rb b/_plugins/readmes.rb index 272e849..82f917f 100644 --- a/_plugins/readmes.rb +++ b/_plugins/readmes.rb @@ -1,7 +1,7 @@ module Jekyll class ReadmePage < Page - def initialize(site, base, dir, src) + def initialize(site, base, dir, src, idx) @site = site @base = base @dir = dir @@ -13,8 +13,12 @@ module Jekyll 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.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 @@ -26,8 +30,10 @@ module Jekyll 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['name'], 'README.md')) + 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 -- 2.30.2