|
- #!/usr/bin/env lua
- local sitelib = require "sitelib"
- local fs = require "lfs"
-
- print("Copying static content...")
- --os.execute("cp -rv static/* out/")
- for k,v in pairs({"jpg","jpeg","png","gif"}) do
- os.execute("find static/ -name '*."..v.."' -exec echo '{}' \\;")
- end
-
- print("Building list of markdown files")
- local mdfiles = {}
- local dqueue = {sitelib.srcpath}
- for k,path in pairs(dqueue) do
- for file in fs.dir(path) do
- if file:sub(1,1) ~= "." then
- local attr = fs.attributes(path.."/"..file)
- if attr.mode == "directory" then
- dqueue[#dqueue+1] = path.."/"..file
- elseif file:sub(-3) == ".md" then
- mdfiles[#mdfiles+1] = path.."/"..file
- end
- end
- end
- end
-
- if not fs.attributes(sitelib.gopherpath) then
- fs.mkdir(sitelib.outpath)
- end
-
- print("Creating directories")
- for k,v in pairs(dqueue) do
- local path = sitelib.outpath..v:sub(sitelib.srcpath:len()+1)
- fs.mkdir(path)
- print(path)
- end
-
- print("Generating output files")
- for k,infile in pairs(mdfiles) do
- local outfile = (sitelib.gopherpath..infile:sub(sitelib.srcpath:len()+1))
- print(infile,outfile)
- local f = io.open(infile,"rb")
- local c = f:read("*a")
- f:close()
- local page = sitelib.parsepage(c)
- local f = io.open(outfile,"wb")
- if page.title then
- f:write("# "..page.title.."\n")
- end
- if page.author then
- f:write("By "..page.author.."\n")
- end
- if page.date then
- f:write(page.date.."\n")
- end
- f:write(page.md)
- if page.tags then
- f:write("Tags: "..page.tags)
- end
- f:close()
- end
|