sitegen = require "sitegen" tools = require "sitegen.tools" site = require "sitegen.site" lfs = require "lfs" date = require "date" path = require "sitegen.path" -- import slugify from "sitegen.common" common = require "sitegen.common" 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)) 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} -- Change output dir to what Openresty prefers -- site = site! site.config.out_dir = "html/" css = tools.system_command "cp %s %s", "css" ps = posts("docs") -- require("moon").p ps files = [file for file in lfs.dir "docs" when file != "." and file != ".."] -- sf = require("sitegen.site_file") -- require("moon").p sf -- for file in lfs.dir "docs" -- when file != "." and file != ".." -- print rootname(last(split path)) -- print file at = (one, two) -> print "ANOTHER TEST" require("moon").p two html = require("sitegen.html") one = () -> html.build -> tag.a { href: "momo", "yayaya" } tag.a { href: "momo", "yayaya" } require("sitegen.renderers.markdown").render = (page, md_source) => discount = require "discount" md_source = page\pipe "renderer.markdown.pre_render", md_source md_source, escapes = escape_cosmo md_source html_source = assert discount md_source html_source = unescape_cosmo html_source, escapes print("DDDDDDDDDDDDDD") super page, html_source -- require("moon").p require("sitegen.renderers.markdown") 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 sitegen.create => @site_title = "WebDevCat.me ยท Catalin Mititiuc" @app_name = "stasis" @version = "0.2.12" @val = "yes" @posts = (page) -> -- require("moon").p [key for key in pairs page.site.pages[1]] -- require("moon").p [key for key in pairs page.site] -- posts = [{ -- id: p.meta.id -- target: p.meta.target -- source: p.source -- } for _, p in pairs page.site.pages when p.meta.template == "blog"] -- pages = [key for key, _ in pairs page for _, page in ipairs page.site.pages] -- posts = [{ -- id: p.meta.id -- target: p.meta.target -- source: p.source -- } for _, p in pairs page.site.pages when p.meta.template == "blog"] -- require("moon").p posts -- posts -- require("moon").p [key for key in pairs page.site] -- require("moon").p [k for k,v in pairs page for _, page in ipairs pages] -- require("moon").p [{page.meta, page.source} for _, page in ipairs pages when page.meta.template == "blog"] -- require("moon").p [{dv} for k, dv in pairs(v) for _, v in pairs pages] -- require("moon").p [k,v for key, v in pairs pages] -- require("moon").p site.target -- require("moon").p get_site @test = (page) -> {{"b": 1, "c": 2}, {"d": 3, "e": 4}} @what = (page) -> page -- require("moon").p [{ln, lv} for ln, lv in pairs debug.getlocal(2, idx)] -- require("moon").p -- require("moon").p @ -- @what = (page) => -- require("moon").p @ -- require("moon").p site.pages -- @what! add "index.html", o: one add path, target: out, template: "blog", is_a: "post", post: { publish_date: publish_date(path) }, id: extract_id(path) for path, out in pairs posts "docs" add "test.html", id: "test" -- feed "posts.moon", "feed.xml" -- require("moon").p site -- build css, "app.css" copy "app.css" -- filter "docs", (body) => -- require("moon").p body -- require("moon").p search "start", "docs" -- filter "2023%-08%-03", (body) => -- table.concat { body, "

hey there

" } -- require("moon").p body -- body\gsub "

.-

", (header) -> -- table.concat { body, "yoyoasdf" } -- body .. "yoyo" -- body\gsub "{.-}", (header) -> -- require("moon").p header -- table.concat { '', header, '
' }