20 lines
625 B
Plaintext
20 lines
625 B
Plaintext
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"
|