// The template every file under content/ applies. // // Its only job is to emit the `` record the build script reads and // then get out of the way. There is deliberately no styling here: the HTML // target emits semantic markup and style/main.scss dresses it, so a show rule // that set fonts or margins would be describing a page that is never rendered. #let post( title: none, date: none, tags: (), summary: "", draft: false, body, ) = { assert(title != none, message: "a post needs a title") // Formatted here rather than passed as a `datetime`: Typst values reach Rust // through serde_json, and a datetime has no stable representation there. let stamp = if date == none { "" } else { date.display("[year]-[month]-[day]") } [#metadata(( title: title, date: stamp, tags: tags, summary: summary, draft: draft, ))] body }