This is my personal site. It is built using a rather hacked version of the Hakyll system, a static site generation framework configured using the Haskell language.
You can view the site at web.youwen.dev, deployed using GitHub pages and cached through Cloudflare's CDN.
- Haskell
- Hakyll (the static site generator library I use)
- blaze (an HTML combinator library I use for templating)
- clay (CSS preprocessor as a Haskell eDSL)
- pandoc (this one needs no introduction)
- LiquidHaskell (a highly experimental theorem prover which refines Haskell types using logical predicates to guarantee correctness, developed at UCSD)
- Nix
- Typst
- HTML
- CSS (tailwind)
- JavaScript (almost none, soon to become PureScript)
(only works on Linux because I’m lazy.)
Install nix, then run this to compile the SSG binary,
which you can run with result/bin/rednoise watch for a hot reloading server.
Here you can hack on the Typst source files to edit the content without
recompiling everything.
nix buildTo run a local preview server (not hot reloading) of the production website (sans the fonts),
nix run
# server will run at localhost:8000To get a development environment,
nix developOr you can direnv allow, if you have it. A pre-commit hook will also be
installed automatically. Inspect justfile for useful scripts.
Before submitting a PR run all Haskell tests, formatting checks, lints, etc, using
nix build .#checks.x86_64-linux.pre-commit-checkNote that nix flake check always fails due to haskell.nix IFD jank so we
have to run the pre-commit-check explicitly, which bundles all other checks.
Most markup content (primarily in Typst files) is CC-BY-SA-4.0. The rest (that is, everything not covered by the Creative Commons license), including but not limited to logical code units, is GPL3 licensed. This includes any Typst code that does not contain useful content (i.e. prose), but rather is used for programming purposes.
