formatting & adjustments

This commit is contained in:
Alan Daniels 2025-12-19 19:09:03 +11:00
parent 487bab0ad3
commit c10511a418
3 changed files with 135 additions and 190 deletions

View file

@ -1,9 +1,6 @@
(load (sb-ext:posix-getenv "ASDF")) (load (sb-ext:posix-getenv "ASDF"))
(asdf:load-system 'str)
(asdf:load-system 'alexandria)
(asdf:load-system 'cl-dates) (asdf:load-system 'cl-dates)
;; week is 7 days ;; week is 7 days
;; 52 weeks in a year ;; 52 weeks in a year
;; 13 weeks in a quarter ;; 13 weeks in a quarter
@ -23,20 +20,21 @@
(defun week-number (date) (defun week-number (date)
(mod (cl-dates:week-number date) 52)) (mod (cl-dates:week-number date) 52))
(defun write-page-cycle (stream cl-date year-number quarter-number cycle-number) (defun write-page-header (stream header-text)
(format stream " (format stream "
#set page( #set page(
paper: \"a4\", paper: \"a4\",
flipped: true, flipped: true,
header: [ header: align(bottom)[~A],
Y~d margin: (
#h(1fr) top: 1.5cm,
Q~d bottom: 0.5cm,
#h(1fr) x: 0.5cm
C~d ))
], " header-text)
margin: 0.5cm) )
" year-number quarter-number cycle-number) (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( (format stream "#table(
columns: (auto ,1fr, 1fr, 1fr, 1fr, 1fr, 1fr, 1fr), columns: (auto ,1fr, 1fr, 1fr, 1fr, 1fr, 1fr, 1fr),
rows: (auto, 1fr), rows: (auto, 1fr),
@ -51,24 +49,11 @@
(format stream ",[#h(1fr) ~d]" dd)))))) (format stream ",[#h(1fr) ~d]" dd))))))
(format stream ")~%")) (format stream ")~%"))
(defun write-page-reset-week (stream cl-date year-number quarter-number) (defun write-page-reset-week (stream cl-date year-number quarter-number)
(format stream " (write-page-header stream (format nil "Y~d #h(1fr) Q~d #h(1fr) Reset Week" year-number quarter-number))
#set page(
paper: \"a4\",
flipped: true,
header: [
Y~d
#h(1fr)
Q~d
#h(1fr)
Reset Week
],
margin: 0.5cm)
" year-number quarter-number)
(format stream "#table( (format stream "#table(
columns: (1fr, 1fr, 1fr), columns: (1fr, 1fr, 1fr),
rows: (1fr), rows: (1fr),
align(center)[_Going In_] align(center)[_Going In_]")
")
(loop for day from 0 to 6 (loop for day from 0 to 6
do (let* ((week-day (+ cl-date day)) do (let* ((week-day (+ cl-date day))
(day-of-week (cl-dates:dow->string (cl-dates:day-of-week week-day)))) (day-of-week (cl-dates:dow->string (cl-dates:day-of-week week-day))))
@ -78,8 +63,7 @@
(format stream ",[~A #h(1fr) ~d]~%" day-of-week dd)) (format stream ",[~A #h(1fr) ~d]~%" day-of-week dd))
))) )))
(format stream ",align(center)[_Coming Out_]") (format stream ",align(center)[_Coming Out_]")
(format stream ")~%") (format stream ")~%"))
)
(defun write-pages-quarter (stream cl-date year-number quarter-number) (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))) (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)) (write-page-reset-week stream (add-weeks cl-date 12) year-number quarter-number))

View file

@ -33,9 +33,6 @@
inherit (pkgs) lib; inherit (pkgs) lib;
sbcl = pkgs.sbcl.withPackages (ps: [ sbcl = pkgs.sbcl.withPackages (ps: [
ps.str
ps.cl-heap
ps.alexandria
inputs.cl-dates.packages.x86_64-linux.default inputs.cl-dates.packages.x86_64-linux.default
]); ]);

236
main.typ
View file

@ -4,14 +4,12 @@
#set page( #set page(
paper: "a4", paper: "a4",
flipped: true, flipped: true,
header: [ header: align(bottom)[Y2026 #h(1fr) Q1 #h(1fr) C1],
Y2026 margin: (
#h(1fr) top: 1.5cm,
Q1 bottom: 0.5cm,
#h(1fr) x: 0.5cm
C1 ))
],
margin: 0.5cm)
#table( #table(
columns: (auto ,1fr, 1fr, 1fr, 1fr, 1fr, 1fr, 1fr), columns: (auto ,1fr, 1fr, 1fr, 1fr, 1fr, 1fr, 1fr),
rows: (auto, 1fr), rows: (auto, 1fr),
@ -24,14 +22,12 @@
#set page( #set page(
paper: "a4", paper: "a4",
flipped: true, flipped: true,
header: [ header: align(bottom)[Y2026 #h(1fr) Q1 #h(1fr) C2],
Y2026 margin: (
#h(1fr) top: 1.5cm,
Q1 bottom: 0.5cm,
#h(1fr) x: 0.5cm
C2 ))
],
margin: 0.5cm)
#table( #table(
columns: (auto ,1fr, 1fr, 1fr, 1fr, 1fr, 1fr, 1fr), columns: (auto ,1fr, 1fr, 1fr, 1fr, 1fr, 1fr, 1fr),
rows: (auto, 1fr), rows: (auto, 1fr),
@ -44,14 +40,12 @@
#set page( #set page(
paper: "a4", paper: "a4",
flipped: true, flipped: true,
header: [ header: align(bottom)[Y2026 #h(1fr) Q1 #h(1fr) C3],
Y2026 margin: (
#h(1fr) top: 1.5cm,
Q1 bottom: 0.5cm,
#h(1fr) x: 0.5cm
C3 ))
],
margin: 0.5cm)
#table( #table(
columns: (auto ,1fr, 1fr, 1fr, 1fr, 1fr, 1fr, 1fr), columns: (auto ,1fr, 1fr, 1fr, 1fr, 1fr, 1fr, 1fr),
rows: (auto, 1fr), rows: (auto, 1fr),
@ -64,19 +58,16 @@
#set page( #set page(
paper: "a4", paper: "a4",
flipped: true, flipped: true,
header: [ header: align(bottom)[Y2026 #h(1fr) Q1 #h(1fr) Reset Week],
Y2026 margin: (
#h(1fr) top: 1.5cm,
Q1 bottom: 0.5cm,
#h(1fr) x: 0.5cm
Reset Week ))
],
margin: 0.5cm)
#table( #table(
columns: (1fr, 1fr, 1fr), columns: (1fr, 1fr, 1fr),
rows: (1fr), rows: (1fr),
align(center)[_Going In_] align(center)[_Going In_],[Monday #h(1fr) 23]
,[Monday #h(1fr) 23]
,[Tuesday #h(1fr) 24] ,[Tuesday #h(1fr) 24]
,[Wednesday #h(1fr) 25] ,[Wednesday #h(1fr) 25]
,[Thursday #h(1fr) 26] ,[Thursday #h(1fr) 26]
@ -88,14 +79,12 @@
#set page( #set page(
paper: "a4", paper: "a4",
flipped: true, flipped: true,
header: [ header: align(bottom)[Y2026 #h(1fr) Q2 #h(1fr) C1],
Y2026 margin: (
#h(1fr) top: 1.5cm,
Q2 bottom: 0.5cm,
#h(1fr) x: 0.5cm
C1 ))
],
margin: 0.5cm)
#table( #table(
columns: (auto ,1fr, 1fr, 1fr, 1fr, 1fr, 1fr, 1fr), columns: (auto ,1fr, 1fr, 1fr, 1fr, 1fr, 1fr, 1fr),
rows: (auto, 1fr), rows: (auto, 1fr),
@ -108,14 +97,12 @@
#set page( #set page(
paper: "a4", paper: "a4",
flipped: true, flipped: true,
header: [ header: align(bottom)[Y2026 #h(1fr) Q2 #h(1fr) C2],
Y2026 margin: (
#h(1fr) top: 1.5cm,
Q2 bottom: 0.5cm,
#h(1fr) x: 0.5cm
C2 ))
],
margin: 0.5cm)
#table( #table(
columns: (auto ,1fr, 1fr, 1fr, 1fr, 1fr, 1fr, 1fr), columns: (auto ,1fr, 1fr, 1fr, 1fr, 1fr, 1fr, 1fr),
rows: (auto, 1fr), rows: (auto, 1fr),
@ -128,14 +115,12 @@
#set page( #set page(
paper: "a4", paper: "a4",
flipped: true, flipped: true,
header: [ header: align(bottom)[Y2026 #h(1fr) Q2 #h(1fr) C3],
Y2026 margin: (
#h(1fr) top: 1.5cm,
Q2 bottom: 0.5cm,
#h(1fr) x: 0.5cm
C3 ))
],
margin: 0.5cm)
#table( #table(
columns: (auto ,1fr, 1fr, 1fr, 1fr, 1fr, 1fr, 1fr), columns: (auto ,1fr, 1fr, 1fr, 1fr, 1fr, 1fr, 1fr),
rows: (auto, 1fr), rows: (auto, 1fr),
@ -148,19 +133,16 @@
#set page( #set page(
paper: "a4", paper: "a4",
flipped: true, flipped: true,
header: [ header: align(bottom)[Y2026 #h(1fr) Q2 #h(1fr) Reset Week],
Y2026 margin: (
#h(1fr) top: 1.5cm,
Q2 bottom: 0.5cm,
#h(1fr) x: 0.5cm
Reset Week ))
],
margin: 0.5cm)
#table( #table(
columns: (1fr, 1fr, 1fr), columns: (1fr, 1fr, 1fr),
rows: (1fr), rows: (1fr),
align(center)[_Going In_] align(center)[_Going In_],[Monday #h(1fr) 22]
,[Monday #h(1fr) 22]
,[Tuesday #h(1fr) 23] ,[Tuesday #h(1fr) 23]
,[Wednesday #h(1fr) 24] ,[Wednesday #h(1fr) 24]
,[Thursday #h(1fr) 25] ,[Thursday #h(1fr) 25]
@ -172,14 +154,12 @@
#set page( #set page(
paper: "a4", paper: "a4",
flipped: true, flipped: true,
header: [ header: align(bottom)[Y2026 #h(1fr) Q3 #h(1fr) C1],
Y2026 margin: (
#h(1fr) top: 1.5cm,
Q3 bottom: 0.5cm,
#h(1fr) x: 0.5cm
C1 ))
],
margin: 0.5cm)
#table( #table(
columns: (auto ,1fr, 1fr, 1fr, 1fr, 1fr, 1fr, 1fr), columns: (auto ,1fr, 1fr, 1fr, 1fr, 1fr, 1fr, 1fr),
rows: (auto, 1fr), rows: (auto, 1fr),
@ -192,14 +172,12 @@
#set page( #set page(
paper: "a4", paper: "a4",
flipped: true, flipped: true,
header: [ header: align(bottom)[Y2026 #h(1fr) Q3 #h(1fr) C2],
Y2026 margin: (
#h(1fr) top: 1.5cm,
Q3 bottom: 0.5cm,
#h(1fr) x: 0.5cm
C2 ))
],
margin: 0.5cm)
#table( #table(
columns: (auto ,1fr, 1fr, 1fr, 1fr, 1fr, 1fr, 1fr), columns: (auto ,1fr, 1fr, 1fr, 1fr, 1fr, 1fr, 1fr),
rows: (auto, 1fr), rows: (auto, 1fr),
@ -212,14 +190,12 @@
#set page( #set page(
paper: "a4", paper: "a4",
flipped: true, flipped: true,
header: [ header: align(bottom)[Y2026 #h(1fr) Q3 #h(1fr) C3],
Y2026 margin: (
#h(1fr) top: 1.5cm,
Q3 bottom: 0.5cm,
#h(1fr) x: 0.5cm
C3 ))
],
margin: 0.5cm)
#table( #table(
columns: (auto ,1fr, 1fr, 1fr, 1fr, 1fr, 1fr, 1fr), columns: (auto ,1fr, 1fr, 1fr, 1fr, 1fr, 1fr, 1fr),
rows: (auto, 1fr), rows: (auto, 1fr),
@ -232,19 +208,16 @@
#set page( #set page(
paper: "a4", paper: "a4",
flipped: true, flipped: true,
header: [ header: align(bottom)[Y2026 #h(1fr) Q3 #h(1fr) Reset Week],
Y2026 margin: (
#h(1fr) top: 1.5cm,
Q3 bottom: 0.5cm,
#h(1fr) x: 0.5cm
Reset Week ))
],
margin: 0.5cm)
#table( #table(
columns: (1fr, 1fr, 1fr), columns: (1fr, 1fr, 1fr),
rows: (1fr), rows: (1fr),
align(center)[_Going In_] align(center)[_Going In_],[Monday #h(1fr) 21]
,[Monday #h(1fr) 21]
,[Tuesday #h(1fr) 22] ,[Tuesday #h(1fr) 22]
,[Wednesday #h(1fr) 23] ,[Wednesday #h(1fr) 23]
,[Thursday #h(1fr) 24] ,[Thursday #h(1fr) 24]
@ -256,14 +229,12 @@
#set page( #set page(
paper: "a4", paper: "a4",
flipped: true, flipped: true,
header: [ header: align(bottom)[Y2026 #h(1fr) Q4 #h(1fr) C1],
Y2026 margin: (
#h(1fr) top: 1.5cm,
Q4 bottom: 0.5cm,
#h(1fr) x: 0.5cm
C1 ))
],
margin: 0.5cm)
#table( #table(
columns: (auto ,1fr, 1fr, 1fr, 1fr, 1fr, 1fr, 1fr), columns: (auto ,1fr, 1fr, 1fr, 1fr, 1fr, 1fr, 1fr),
rows: (auto, 1fr), rows: (auto, 1fr),
@ -276,14 +247,12 @@
#set page( #set page(
paper: "a4", paper: "a4",
flipped: true, flipped: true,
header: [ header: align(bottom)[Y2026 #h(1fr) Q4 #h(1fr) C2],
Y2026 margin: (
#h(1fr) top: 1.5cm,
Q4 bottom: 0.5cm,
#h(1fr) x: 0.5cm
C2 ))
],
margin: 0.5cm)
#table( #table(
columns: (auto ,1fr, 1fr, 1fr, 1fr, 1fr, 1fr, 1fr), columns: (auto ,1fr, 1fr, 1fr, 1fr, 1fr, 1fr, 1fr),
rows: (auto, 1fr), rows: (auto, 1fr),
@ -296,14 +265,12 @@
#set page( #set page(
paper: "a4", paper: "a4",
flipped: true, flipped: true,
header: [ header: align(bottom)[Y2026 #h(1fr) Q4 #h(1fr) C3],
Y2026 margin: (
#h(1fr) top: 1.5cm,
Q4 bottom: 0.5cm,
#h(1fr) x: 0.5cm
C3 ))
],
margin: 0.5cm)
#table( #table(
columns: (auto ,1fr, 1fr, 1fr, 1fr, 1fr, 1fr, 1fr), columns: (auto ,1fr, 1fr, 1fr, 1fr, 1fr, 1fr, 1fr),
rows: (auto, 1fr), rows: (auto, 1fr),
@ -316,19 +283,16 @@
#set page( #set page(
paper: "a4", paper: "a4",
flipped: true, flipped: true,
header: [ header: align(bottom)[Y2026 #h(1fr) Q4 #h(1fr) Reset Week],
Y2026 margin: (
#h(1fr) top: 1.5cm,
Q4 bottom: 0.5cm,
#h(1fr) x: 0.5cm
Reset Week ))
],
margin: 0.5cm)
#table( #table(
columns: (1fr, 1fr, 1fr), columns: (1fr, 1fr, 1fr),
rows: (1fr), rows: (1fr),
align(center)[_Going In_] align(center)[_Going In_],[Monday #h(1fr) 21]
,[Monday #h(1fr) 21]
,[Tuesday #h(1fr) 22] ,[Tuesday #h(1fr) 22]
,[Wednesday #h(1fr) 23] ,[Wednesday #h(1fr) 23]
,[Thursday #h(1fr) 24] ,[Thursday #h(1fr) 24]