.github/workflows | ||
nix | ||
public | ||
routes | ||
src | ||
tests | ||
typst/lib/html-shim/0.1.0 | ||
web-components | ||
.envrc | ||
.gitattributes | ||
.gitignore | ||
biome.jsonc | ||
Caddyfile | ||
Cargo.lock | ||
Cargo.toml | ||
CNAME | ||
CONTRIBUTING.md | ||
deny.toml | ||
flake.lock | ||
flake.nix | ||
justfile | ||
LICENSE-BY-NC-SA | ||
LICENSE-GPL | ||
README.md | ||
rust-toolchain.toml | ||
rustfmt.toml |
web.youwen.dev
This is my personal site. It is built using a custom site generator I implemented in Rust, located in this repository. It generates all of its pages using Typst.
You can view the site at web.youwen.dev, deployed using GitHub pages and cached through Cloudflare's CDN.
tech stack
build time
- Rust
- Nix
- Typst
run time
- HTML
- CSS (tailwind)
- JavaScript (almost none)
hacking
(only works on Linux because I’m lazy.)
Install nix, then
nix build
# site files will be built in `./result/dist`
To run a local preview server (not hot reloading),
nix run .#preview
# 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.
If you decide to bring your own Rust toolchain, note that nightly Rust is required due to use of unstabilized features.
Also note that Typst latest git is required due to use of bleeding edge HTML export features.
Before submitting a PR run all Rust tests, formatting checks, lints, etc, using
nix flake check
contrib
If for some reason you want to open a PR (to fix a bug, typo, etc.), see CONTRIBUTING.md for technical details and documentation. I also accept suggestions, comments, criticisms, etc. via email.
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.