WIP: add all files in dir

This commit is contained in:
Catalin Constantin Mititiuc 2025-05-08 17:08:26 -07:00
parent 48f97c1e4a
commit 222be9ed38
2 changed files with 36 additions and 10 deletions

1
docs/post2.md Normal file
View File

@ -0,0 +1 @@
# post 2

View File

@ -1,23 +1,48 @@
sitegen = require "sitegen" sitegen = require "sitegen"
lfs = require "lfs" lfs = require "lfs"
moon = require "moon"
path = "docs"
files = ["#{path}/#{file}" for file in lfs.dir(path) when file != "." and file != ".."]
-- example = "an example string"
example = "docs/post1.md"
split_path = [capture for capture in string.gmatch(example, "[^/]+")]
-- moon.p [name for i, name in ipairs split_path when i == #split_path]
filename = split_path[#split_path]
-- moon.p string.gsub(filename, ".md", "")
name = string.gsub(filename, ".md", "")
attrdir = (path) -> attrdir = (path) ->
for file in lfs.dir(path) for file in lfs.dir(path)
if file != "." and file != ".." if file != "." and file != ".."
f = path .. '/' .. file f = path .. '/' .. file
print "\t " .. f print f
attr = lfs.attributes(f) attr = lfs.attributes f
assert type(attr) == "table" assert type(attr) == "table"
attrdir(f) if attr.mode == "directory" attrdir f if attr.mode == "directory"
-- if attr.mode == "directory"
-- attrdir(f)
-- else
-- for name, value in pairs attr
-- print name, value
-- attrdir "www" -- attrdir "docs"
split = (str, delimiter) ->
[capture for capture in string.gmatch(str, "[^#{delimiter}]+")]
last = (list) -> list[#list]
rootname = (str) -> string.gsub str, "%.+", ""
target = (file, delimeter="/") ->
"/posts/#{rootname(last(split(file, delimeter)))}"
sitegen.create => sitegen.create =>
@title = "Hello World" @title = "Hello World"
add "index.md" add "index.md"
add "docs/post1.md", target: "/posts/post1" add file, target: target file for _, file in ipairs files
-- add file, target: "/posts/#{rootname(last(split(file, delimeter)))}" for _, file in ipairs files
-- for _, file in ipairs files
-- split_path = split file, delimiter
-- filename = last split_path
-- name = rootname filename
-- add file, target: "/posts/#{rootname}"
-- add file, target: "/posts/#{rootname(last(split(file, delimeter)))}"