Skip to content

youwen5/web

Repository files navigation

web.youwen.dev

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.

tech stack

build time

  • 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

run time

  • HTML
  • CSS (tailwind)
  • JavaScript (almost none, soon to become PureScript)

hacking

(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 build

To run a local preview server (not hot reloading) of the production website (sans the fonts),

nix run
# server will run at localhost:8000

To get a development environment,

nix develop

Or 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-check

Note 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.

license

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.

About

personal website powered by a Hakyll compiler that renders pages with Typst

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •