From 48d3f807c9414ecec5aa8989fae8b8be810ace89 Mon Sep 17 00:00:00 2001 From: Catalin Constantin Mititiuc Date: Mon, 16 Jun 2025 20:18:04 -0700 Subject: [PATCH] Output blurb text as markup --- posts.moon | 74 ++++++++---------------------------------------------- 1 file changed, 11 insertions(+), 63 deletions(-) diff --git a/posts.moon b/posts.moon index c58e0cb..181b99b 100644 --- a/posts.moon +++ b/posts.moon @@ -1,55 +1,4 @@ --- html -> --- --- posts = [{ --- id: p.meta.id --- target: p.meta.target --- source: p.source --- } for _, p in pairs site.pages when p.meta.template == "blog"] --- --- require("moon").p posts --- div { "this is a post" } --- div { "this anoter post" } - --- date = require "date" --- return { --- format: "markdown" --- title: "My Site's Title" --- { --- title: "The First Post" --- date: date 2011, 11, 26 --- link: "/my-post" --- description: [[ --- The things I did. --- --- * ordered pizza --- * ate it --- ]] --- } --- } - ---
---

--- --- Publish Markdown Documents As Static Web Pages with Pandoc and Phoenix --- ---

--- --- --- — We thought we wanted a static website generator. It turns out what we really wanted was Phoenix, with an option to convert markdown to HTML. Here is our implementation of a solution, using our very own, recently-released, Pandoc Hex package! --- --- Read post → --- ---
date = require "date" --- date! --- return { --- format: "markdown" --- title: "My Site's Title" --- { --- title: "The First Post" --- date: date 2011, 11, 26 - --- require("moon").p tostring(date(2011, 11, 26)) path = require "sitegen.path" moon = require("moon") common = require("sitegen.common") @@ -58,22 +7,21 @@ 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 +posts = [{ + id: p.meta.id + tgt: p.meta.target + src: p.source + title: p.meta.title or p.meta.id + blurb: p.meta.blurb +} for _, p in pairs site.pages when p.meta.template == "blog"] + +table.sort posts, (a, b) -> a.src > b.src + html -> - posts = [{ - id: p.meta.id - tgt: p.meta.target - src: p.source - title: p.meta.title or p.meta.id - blurb: p.meta.blurb - } for _, p in pairs page.site.pages when p.meta.template == "blog"] - - -- require("moon").p [p.meta for _, p in pairs page.site.pages] - table.sort posts, (a, b) -> a.src > b.src - [tag["section"] { tag["h3"] { tag["a"] { href: p.tgt .. ".html", p.title }} tag["time"] { publish_date p.src } - "—" .. if p.blurb then " #{p.blurb}" else "" + {"—", if p.blurb then text(p.blurb)} tag["a"] { class: "read-post-link", href: p.tgt .. ".html", "Read post →"} } for _, p in ipairs posts]