From 39f15e20efc8c06189acf7cdab45e19d2748d697 Mon Sep 17 00:00:00 2001 From: Catalin Mititiuc Date: Fri, 16 May 2025 11:53:50 -0700 Subject: [PATCH] Lint site.moon; copy over Leafo's function for getting files --- site.moon | 38 +++++++++++++++++--------------------- 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/site.moon b/site.moon index b835ccf..103da58 100644 --- a/site.moon +++ b/site.moon @@ -2,12 +2,11 @@ sitegen = require "sitegen" Site = require "sitegen.site" Path = require "sitegen.path" html = require "sitegen.html" -import tag from html --- import slugify from "sitegen.common" - -lfs = require "lfs" date = require "date" +import tag from html +import escape_patt from require "sitegen.common" + -- Change output dir to what Openresty prefers Site.config.out_dir = "html/" @@ -22,19 +21,7 @@ Site.default_renderers = for v in *Site.default_renderers -- Add pandoc markdown renderer table.insert Site.default_renderers, "renderers.markdown" -rootname = (str) -> - result = string.gsub str, "%..+", "" - result - -split = (str, delimiter="/") -> - [capture for capture in string.gmatch str, "[^#{delimiter}]+"] - -last = (list) -> list[#list] -join = (first, last, delimiter="/") -> table.concat { first, last }, delimiter -target = (path, prefix) -> join prefix, rootname(last(split path)) - -import escape_patt from require "sitegen.common" - +-- https://github.com/leafo/sitegen/blob/v0.2/spec/sitegen_spec.moon#L9-L18 get_files = (path, prefix=path) -> files = Path.read_exec "find", path, "-type", "f" files = [f for f in files\gmatch "[^\n]+"] @@ -46,18 +33,27 @@ get_files = (path, prefix=path) -> table.sort files files --- require("moon").p get_files("docs") +rootname = (str) -> + result = string.gsub str, "%..+", "" + result + +split = (str, delimiter="/") -> + [capture for capture in string.gmatch str, "[^#{delimiter}]+"] + +last = (list) -> list[#list] +join = (first, last, delimiter="/") -> table.concat { first, last }, delimiter +reverse = (list={}) -> [item for item in *list[#list, 1, -1]] +target = (path, prefix) -> join prefix, rootname(last(split path)) posts = (path=".") -> - files = [file for file in lfs.dir path when file != "." and file != ".."] - {join(path, file), target(file, "/posts") for _, file in ipairs files} + files = reverse get_files path + {join(path, file), target(file, "/posts") for file in *files} extract_id = (source) -> string.match Path.filename(source), "%a[%w%-]+" extract_date = (source) -> string.match Path.filename(source), "%d+%-%d%d%-%d%d" format_date = (str) -> date(str)\fmt "%b %d, %Y" publish_date = (path) -> format_date extract_date path - list_posts = (page, limit) -> posts = page.site\query_pages { is_a: "post" } table.sort posts, (a, b) -> a.source > b.source