About
This is my personal website, where I will write about various projects I'm doing and in general whatever catches my fancy.
I'm Ruan, a South African programmer enrolled in university for Computer Science and Mathematics. I'm a Christian and belong to a Dutch Reformed denomination (NHKA).
Expect the following:
- Programming
- Mathematics
- Bilingual Content (hopefully)
- Conlanging and Amateur Linguistics
- Possibly: Philosophy and Theology
Contact
If you know me in person, or know someone who does, feel free to contact me on WhatsApp.
Otherwise, my email is my name @ my domain. Note that I might not respond promptly, especially if I do not know you.
Site source
The source for the content of the website is available on GitHub, as well as the program used to assemble the website.
The SSG is released under the Unlicense, meaning that I've released it into the public domain and you can do anything with it your heart desires. It is a 500-odd line C program; I believe the code is relatively readable, though it is uncommented. There is no README or instructions because it is solely intended for my own use.
If you really do want to use it, you'll have to run git submodule init && git submodule update after cloning the repo to fetch the nob.h header-only library. You can then compile it with cc main.c -o main, and from there you can run it with ./main and it should recompile itself if the source code changes.
Fragments (in fragments/) are header files that are included into each page file. Page files (page/) get assembled into C files, and the output (to stdout) of running the file will be the content of the corresponding file in the output. Static files (static/) gets copied over to the output as-is.
Currently the site gets completely rebuilt each time you run the generator. This works for now since C compiles surprisingly fast (yes, I'm using C as a scripting language). In the future I might start using nob_needs_rebuild to only regenerate the files that needs regenerating, though I'll need to work out how to also delete files which no longer have a source.