Files in the top-level directory in any check-in
- .fossil-settings
- static
- web-pages
- writing
- being-in-the-graph-mind.page.rkt
- dicewordbook.page.rkt
- feed.rkt
- friction.page.rkt
- graph-mind.page.rkt
- index.page.rkt
- info.rkt
- main.rkt
- makefile
- projects.page.rkt
- publish_excludes.txt
- publishing-nerds.page.rkt
- README.md
- render-page.rkt
- screech.page.rkt
- start-server
- static-dynamic.page.rkt
- tools.rkt
- two-approaches.page.rkt
This repo contains the source code for the site published at https://joeldueck.com.
All content here is copyright 2022–2024 by Joel Dueck, and licensed under CC BY 4.0.
Tour
This site uses Punct along with a few tricks and tools to make a very pleasant, snappy little blog.
main.rkt
contains custom elements for this site.feed.rkt
builds the Atom feed.render-page.rkt
provides a script/template for rendering pages to HTML.*.page.rkt
— individual page sources.
Racket setup
Install Punct, Splitflap, HTML5 Printer and raco-static-web
.
The info.rkt
file allows me to install the project as a Racket package:
❯ raco pkg install --link .
This makes this folder’s main.rkt
accessible via the jdcom
module path. So Punct files starting
with #lang punct jdcom
will bring in the bindings provided by main.rkt
.
Makefile
The makefile
provides a nice interface to the project:
❯ make
help Displays this help screen
publish Sync all content to the web server (does not rebuild any files)
web Rebuild all web pages
zap Clear Racket compile cache, and remove all HTML output
On my M1 Mac, make zap && make web -j 8
does a complete rebuild in a couple of seconds.
Local web server
The start_server
script starts up a local web server, while also spawning a background process
that runs make web
every time a file in the project folder is edited.
To make use of this script, you’ll need to have fswatch and raco-static-web
installed.