miti.sh/site.moon

38 lines
991 B
Plaintext

sitegen = require "sitegen"
lfs = require "lfs"
rootname = (str) ->
result = string.gsub str, "%..+", ""
result
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 != ".."}
path = "docs"
names = [file for file in lfs.dir(path) when file != "." and file != ".."]
tuples = for _, file in ipairs names
{join(path, file), target(file, "/posts")}
new_posts = (path=".") ->
t = for _, file in ipairs names
{join(path, file), target(file, "/posts")}
t
news = new_posts("docs")
posts = {unpack tup for tup in *news}
sitegen.create =>
@title = "Hello World"
add "index.md"
add path, target: target for path, target in pairs posts