From df5afab5457428134e4a8548203fe31a52b86cb9 Mon Sep 17 00:00:00 2001 From: Alan Daniels Date: Fri, 19 Dec 2025 21:03:36 +1100 Subject: [PATCH] more fmt --- cal.lisp | 5 +++++ main.typ | 21 +++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/cal.lisp b/cal.lisp index 2633409..449f2a3 100644 --- a/cal.lisp +++ b/cal.lisp @@ -33,6 +33,7 @@ )) " header-text) ) + (defun write-page-cycle (stream cl-date year-number quarter-number cycle-number) (write-page-header stream (format nil "Y~d #h(1fr) Q~d #h(1fr) C~d" year-number quarter-number cycle-number)) (format stream "#table( @@ -48,6 +49,7 @@ (format stream ",[#h(1fr) ~A]" (cl-dates:month->string mm)) (format stream ",[#h(1fr) ~d]" dd)))))) (format stream ")~%")) + (defun write-page-reset-week (stream cl-date year-number quarter-number) (write-page-header stream (format nil "Y~d #h(1fr) Q~d #h(1fr) Reset Week" year-number quarter-number)) (format stream "#table( @@ -64,15 +66,18 @@ ))) (format stream ",align(center)[_Coming Out_]") (format stream ")~%")) + (defun write-pages-quarter (stream cl-date year-number quarter-number) (loop for c from 0 to 2 do (write-page-cycle stream (add-weeks cl-date (* c 4)) year-number quarter-number (+ c 1))) (write-page-reset-week stream (add-weeks cl-date 12) year-number quarter-number)) + (with-open-file (stream "main.typ" :direction :output :if-exists :supersede :if-does-not-exist :create) (format stream "/* This is an auto-generated file You can run `sbcl --script ./cal.lisp` to create a new one */~%") + (write-page-reset-week stream (cl-dates:ymd->date 2025 12 22) 2025 4) (let ((year-start (cl-dates:ymd->date 2025 12 29))) (loop for q from 0 to 3 do (write-pages-quarter stream (add-weeks year-start (* q 13)) 2026 (+ q 1))) )) diff --git a/main.typ b/main.typ index f5f24a1..1e9d66b 100644 --- a/main.typ +++ b/main.typ @@ -1,6 +1,27 @@ /* This is an auto-generated file You can run `sbcl --script ./cal.lisp` to create a new one */ + #set page( + paper: "a4", + flipped: true, + header: align(bottom)[Y2025 #h(1fr) Q4 #h(1fr) Reset Week], + margin: ( + top: 1.5cm, + bottom: 0.5cm, + x: 0.5cm + )) + #table( + columns: (1fr, 1fr, 1fr), + rows: (1fr), + align(center)[_Going In_],[Monday #h(1fr) 22] +,[Tuesday #h(1fr) 23] +,[Wednesday #h(1fr) 24] +,[Thursday #h(1fr) 25] +,[Friday #h(1fr) 26] +,[Saturday #h(1fr) 27] +,[Sunday #h(1fr) 28] +,align(center)[_Coming Out_]) + #set page( paper: "a4", flipped: true,