You might have noticed that this website is stupidly simple. No static-website-generating nonsense, no Hugo, Jekyll, WordPress (eww). It’s like that on purpose.
Once I got my hands on some free website hosting, I immediately caught on fire with the idea of, well, making a website. but how? I decided to check out how other people made their websites. Most reasonable people seemed to use Hugo, a static website generator. Easy way, sure, but why would you want to run it server-side? Just dump the html from your pc to the server post-factum. It also uses a bunch of dynamically-downloaded templates from the net, so the security of running it server-side is really questionable. It is available on my tilde, I just don’t like web frameworks, even this one, despite not being too dependent on the cloud, just doesn’t sit right with me. For me, a static website generator shall:
Run locally.
Be fast. This eases prototyping
Easy to use.
Hard to master. Have control over the smallest things, as those
are quite important to me. Perfectionism ftw.
Free software. Proprietary software is unacceptable.
Transparent. All the actions taken shall be explicitly printed out
Be written in a sensible language. Absolutely no JS. Can’t imagine anything more brain-damaged than that.
Use simple syntax for writing. Markdown or LaTeX will do.
Use core Unix utilities, as those are perfect for the job.
Don’t reinvent the wheel. Easily achieved if following the previous item.
Look and work decently in text browsers like w3m, links, lynx, elinks...
Run on Linux and OpenBSD. A small convenience.
With that said, there weren’t many options left. I tried out
teal
from someone on github, ssg
from Roman
Zolotarev, maybe some others. None seemed to be good enough. So you
might know I did next.
Using the arcane wizardry of shell, portable make(1), pandoc, LaTeX, core Unix utilities, rock music and a lot of spare time, I made it:
ONE FRAMEWORK TO RULE THEM ALL
It uses LaTeX
as source files, autoconverts, optimizes
and scales down any image you give it with ImageMagick, uses pandoc for
creating html, sed(1) for touching up, looks stunning in text-mode web
browsers, generates an RSS feed out of it all, is highly portable,
outrageously fast, especially with -j8
option. Is comprised
entirely of free software, is infinitely extensible...
Enough said. That’s how the process of making this page looked:
It does literally everything I want it to do, and if I ever want it to do more, I can easily extend it, for it is all just POSIX shell and simple make(1) logic. Nothing magical.
You may get the source code of this page here, and check out the Makefile
here.