From f6d8a1d7d86520efdb6029654c312329fbab55a0 Mon Sep 17 00:00:00 2001 From: Catalin Mititiuc Date: Thu, 15 May 2025 16:09:49 -0700 Subject: [PATCH] Refactor creation function --- site.moon | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/site.moon b/site.moon index f724c26..fb57173 100644 --- a/site.moon +++ b/site.moon @@ -8,6 +8,10 @@ html = require "sitegen.html" lfs = require "lfs" date = require "date" +-- Monkey-patch sitegen to use pandoc for markdown conversion +os.execute "moonc -t \\ + /usr/local/openresty/luajit/share/lua/5.1/sitegen/renderers/ markdown.moon" + -- Change output dir to what Openresty prefers site.config.out_dir = "html/" @@ -35,42 +39,38 @@ 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 --- monkey-patch sitegen to use pandoc for markdown conversion -os.execute "moonc -t \\ - /usr/local/openresty/luajit/share/lua/5.1/sitegen/renderers/ markdown.moon" +list_posts = (page, limit) -> + posts = page.site\query_pages { is_a: "post" } + table.sort posts, (a, b) -> a.source > b.source + + html.build -> + [section { + h3 { a { href: meta.target .. ".html", meta.title or meta.id }} + time { publish_date source } + { "—", if meta.blurb then text meta.blurb } + a { class: "read-post-link", href: meta.target .. ".html", + "Read post →" + } + } for { meta: meta, source: source } in *posts[1, limit or #posts]] sitegen.create => @site_title = "WebDevCat.me · Catalin Mititiuc" @app_name = "stasis" @version = "0.2.12" + @list_posts = list_posts - @list_posts = (page, limit) -> - posts = page.site\query_pages { is_a: "post" } - table.sort posts, (a, b) -> a.source > b.source - - html.build -> - [section { - h3 { a { href: meta.target .. ".html", meta.title or meta.id }} - time { publish_date source } - { "—", if meta.blurb then text meta.blurb } - a { class: "read-post-link", href: meta.target .. ".html", - "Read post →" - } - } for { meta: meta, source: source } in *posts[1, limit or #posts]] - + add "index.html" add "blog.html", target: "posts/index", template: "blog" add path, target: out, template: "post", is_a: "post", post: { publish_date: publish_date(path) }, id: extract_id(path) for path, out in pairs posts "docs" - add "index.html" - -- replace post markdown yaml headers with moonscript headers filter "docs", (body) => body\gsub "^%-%-%-.-%.%.%.", (yaml_header) -> - moonscript_header = yaml_header\gsub "%-%-%-", "{" - result = moonscript_header\gsub "%.%.%.", "}" - result + header = yaml_header\gsub "%-%-%-", "{" + moonscript_header = header\gsub "%.%.%.", "}" + moonscript_header copy "app.css"