sitegen = require "sitegen" lfs = require "lfs" rootname = (str) -> string.gsub str, "%..+", "" last = (list) -> list[#list] split = (str, delimiter="/") -> [capture for capture in string.gmatch str, "[^#{delimiter}]+"] join = (first, last, delimiter="/") -> table.concat({first, last}, delimiter) target = (path, prefix) -> join(prefix, rootname(last(split path))) posts = (path=".") -> {join(path, file), target(file, "/posts") for file in lfs.dir path when file != "." and file != ".."} sitegen.create => @title = "Hello World" add "index.md" add path, target: target for path, target in pairs posts "docs"