formatting & adjustments
This commit is contained in:
parent
487bab0ad3
commit
c10511a418
3 changed files with 135 additions and 190 deletions
70
cal.lisp
70
cal.lisp
|
|
@ -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,35 +49,21 @@
|
||||||
(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(
|
(format stream "#table(
|
||||||
paper: \"a4\",
|
columns: (1fr, 1fr, 1fr),
|
||||||
flipped: true,
|
rows: (1fr),
|
||||||
header: [
|
align(center)[_Going In_]")
|
||||||
Y~d
|
(loop for day from 0 to 6
|
||||||
#h(1fr)
|
do (let* ((week-day (+ cl-date day))
|
||||||
Q~d
|
(day-of-week (cl-dates:dow->string (cl-dates:day-of-week week-day))))
|
||||||
#h(1fr)
|
(multiple-value-bind (yy mm dd) (cl-dates:date->ymd week-day)
|
||||||
Reset Week
|
(if (= 1 dd)
|
||||||
],
|
(format stream ",[~A #h(1fr) ~A]~%" day-of-week (cl-dates:month->string mm))
|
||||||
margin: 0.5cm)
|
(format stream ",[~A #h(1fr) ~d]~%" day-of-week dd))
|
||||||
" year-number quarter-number)
|
)))
|
||||||
(format stream "#table(
|
(format stream ",align(center)[_Coming Out_]")
|
||||||
columns: (1fr, 1fr, 1fr),
|
(format stream ")~%"))
|
||||||
rows: (1fr),
|
|
||||||
align(center)[_Going In_]
|
|
||||||
")
|
|
||||||
(loop for day from 0 to 6
|
|
||||||
do (let* ((week-day (+ cl-date day))
|
|
||||||
(day-of-week (cl-dates:dow->string (cl-dates:day-of-week week-day))))
|
|
||||||
(multiple-value-bind (yy mm dd) (cl-dates:date->ymd week-day)
|
|
||||||
(if (= 1 dd)
|
|
||||||
(format stream ",[~A #h(1fr) ~A]~%" day-of-week (cl-dates:month->string mm))
|
|
||||||
(format stream ",[~A #h(1fr) ~d]~%" day-of-week dd))
|
|
||||||
)))
|
|
||||||
(format stream ",align(center)[_Coming Out_]")
|
|
||||||
(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))
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
|
||||||
252
main.typ
252
main.typ
|
|
@ -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]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue