Paul Greveson

Making a new website

Using Zola to generate a static site, for speed and ease.

That was the plan, anyway! My old website was running on a decades-old pile of PHP that I'd written myself... and I don't know how to write PHP.

Doing processing on the server, like PHP does, just seems pointless and slow when the content is all static anyway, so using a static site generator seemed to be the way to go.

Static site generators

But which one? There are so many!

  • Jekyll shows up top of various lists, but then they start mentioning Ruby and "gems" and other things I've never heard of (and don't want to learn). So I just didn't even bother investigating further than the homepage.
  • Lektor was a possibility since I know the guy who wrote it, I gave it a spin a few years back and it seems decent.
  • Hugo's name comes up a lot too, but I'm not so familiar with Go - I downloaded it and played around for a few hours but didn't get into it.
  • I've also given Gatsby a try in the past, but kinda bounced off it, I think it felt too fiddly to set up.
  • What about Zola, then?

I've dabbled briefly with Rust, and I really like the cargo ecosystem and build setup for speed and ease-of-use. So, after a bit of reading about it, Zola seemed like a really solid option for me. Even better, it's open-sourced under the MIT license on Github, which I appreciate.

So I cloned the Github repo and built it, simple as cargo build!

Picking a theme

I had a look through the Zola Themes to get an idea of what was out there - most of them are pretty simple, and I wasn't interested by most of them, but Papaya caught my eye as being fairly clean, with light & dark theme support.

I didn't really get the whole "theme" setup originally and ended up doing far more than I should have in my fork of the actual theme repo after cloning it - I realised later that I should have done more customization outside of the themes subfolder, putting my own specific templates into the templates folder and layering my own "personal" tweaks to the theme via the base sass folder instead of modding the theme directly.

Papaya's author (who I found out later is a technical artist too, how fortuitous!) was open to merging PRs when I fixed some minor bugs and formatting stuff in the original repo, which is cool. I also PR'ed back some support for Sketchfab and YouTube embedding, in case other people are interested in that.

Migrating content

I don't have anything new to add, since these days I mostly write code instead of making 3d models, textures or animations.

But I still needed to copy everything over from my old website - videos and images mainly. I used the snippets for Sketchfab and YouTube to embed some content - it's much nicer now since I can just write things like this to have a full Sketchfab embed up and running:

{ sketchfab(id="92bed1f16d1046c8b83e0adc2e8a5a33") }

I also wanted to write a Gallery snippet to just automatically list all the images from a folder into a page, but then I realised that I wanted to caption the images uniquely, and I don't have that many of them, so I just did it all manually for now.

That felt a little messy, since I usually like to automate things for consistency and ease of future maintenance, but I figure I'll just get this initial version running and then iterate on it.

Future work

There's a bunch of stuff I want to do to improve this site in future, and there's certainly a bunch of bugs which I haven't encountered yet - please let me know if you find any!

Some things to improve include:

  • Layout of initial page (I don't really like the narrow 2-column split, it will look unbalanced until I add more blog posts)
  • Generating galleries of images instead of writing them out manually
  • Improving the overall look and feel to make it more impactful and unique, but still clear and easily navigable
  • Probably several things with the mobile layout, I haven't tested that much

Anyway, as Richard Edwards once told me his music teacher once told him, "you can't edit nothing", so here is ... something!