Bunch of behavioral fixes

This commit is contained in:
Ian Keane 2026-08-26 13:09:47 -04:00
parent 3ce624089c
commit 30859c5e84
4 changed files with 183 additions and 86 deletions

View file

@ -2,21 +2,21 @@
;; ─── Data constructors ────────────────────────────────────────────────────────
(define (make-front-matter name email phone location)
(define (make-front-matter name email location)
(list 'front-matter
(cons 'name name)
(cons 'email email)
(cons 'phone phone)
(cons 'location location)))
(define (make-project name date-start date-end summary-bullets detail-bullets technologies)
(define (make-project name date-start date-end summary-bullets detail-bullets technologies . rest)
(list 'project
(cons 'name name)
(cons 'date-start date-start)
(cons 'date-end date-end)
(cons 'summary-bullets summary-bullets)
(cons 'detail-bullets detail-bullets)
(cons 'technologies technologies)))
(cons 'technologies technologies)
(cons 'url (if (null? rest) #f (car rest)))))
;; Title card: lives inside a job card
;; blurb responsibility bullets
@ -62,6 +62,12 @@
(cons 'title title)
(cons 'description description)))
;; Favorite software section: flat list of names, displayed in N columns
(define (make-favorite-software heading items)
(list 'favorite-software
(cons 'heading heading)
(cons 'items items)))
(define (make-interests heading items)
(list 'interests
(cons 'heading heading)
@ -77,7 +83,6 @@
(make-front-matter
"Jane Doe"
"jane@example.com"
"(555) 000-0000"
"Springfield, USA"))
(define job-acme
@ -163,13 +168,15 @@
'("Defined a small DSL for resume data in resume.scm."
"generate.scm walks the data and emits SXML serialised to HTML."
"CSS handles all layout including the two-column split.")
'("Scheme" "SXML" "HTML" "CSS"))
'("Scheme" "SXML" "HTML" "CSS")
"https://github.com/janedoe/schemeresume")
(make-project
"Tiny Lisp Interpreter" "Jan 2025" "Mar 2025"
'("A 600-line Lisp interpreter in Python supporting tail-call optimisation.")
'("Implemented environments as linked frames, closures, and a macro expander."
"Added a REPL with readline history and pretty-printing.")
'("Python" "Lisp")))))
'("Python" "Lisp")
"https://github.com/janedoe/tinylisp"))))
(define my-interests
(make-interests
@ -179,6 +186,12 @@
(make-interest "Rock Climbing" "Sport climber; currently projecting 5.12a outdoors.")
(make-interest "Technical Writing" "Blog at janedoe.dev — compilers, distributed systems, functional programming."))))
(define my-favorite-software
(make-favorite-software
"Favorite Software"
'("Guile Scheme" "Emacs" "Neovim" "Nix" "Guix" "Tailscale" "WireGuard"
"mpv" "zathura" "tmux" "Alacritty" "Syncthing" "Bspwm" "Rofi")))
;; Flat ordered section list; CSS handles column placement
(define resume
(list 'resume
@ -187,4 +200,5 @@
job-acme
job-startup
my-hobby-projects
my-interests))))
my-interests
my-favorite-software))))