From 63ab3b285f8c218883a27e32219e778ae4125284 Mon Sep 17 00:00:00 2001 From: XeonSquared Date: Tue, 9 Oct 2018 18:18:35 +1100 Subject: [PATCH] added a homepage generator --- genall.sh | 1 + home.lua | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100755 home.lua diff --git a/genall.sh b/genall.sh index afe34cf..2155f08 100755 --- a/genall.sh +++ b/genall.sh @@ -2,3 +2,4 @@ ./genpages.lua ./blog.lua ./tags.lua +./home.lua diff --git a/home.lua b/home.lua new file mode 100755 index 0000000..9c8e50e --- /dev/null +++ b/home.lua @@ -0,0 +1,50 @@ +#!/usr/bin/env lua +local sitelib = require "sitelib" +local fs = require "lfs" +local articles = 4 + +print("Finding blog posts...") +local ftab = {} +for file in fs.dir(sitelib.srcpath.."/blog") do + if file:sub(1,1) ~= "." then + local index = tonumber(file:match("(%d+).md")) + if index then + ftab[index] = file + end + end +end + +local pages = {} +for i = #ftab, #ftab-(articles-1), -1 do + local f = io.open(sitelib.srcpath.."/blog/"..ftab[i]) + local c = f:read("*a") + f:close() + local page = sitelib.parsepage(c) + pages[#pages+1] = {page.title,"/blog/"..tostring(i)..".html"} +end + +print("Reading template...") +local f = io.open(sitelib.includepath.."/home-top.html","rb") +local header = f:read("*a") +f:close() +local f = io.open(sitelib.includepath.."/home-end.html","rb") +local footer = f:read("*a") +f:close() + +print("Writing index...") +local f = io.open(sitelib.outpath.."/index.html","wb") +f:write(header) +while #pages > 0 do + local lp, rp = table.remove(pages,1), table.remove(pages,1) + f:write('
') + f:write('
') + f:write('

'..lp[1]..'

') + f:write('
') + f:write('
') + f:write('

'..rp[1]..'

') + f:write('
') + f:write('
') +end +f:write(footer) +f:write(sitelib.footer) +f:close()