The last few weeks I’ve been digging myself a hole in web development land, again. It is a nightmare. Which I enjoy staying in, for some reason. Moments include: late night shifts because I can’t sleep until I implement just one more feature, hours of banging my head against the wall trying to traverse a framework’s maze-like documentation, gleefully alt-tabbing between my text editor and the CSS reference because I have terrible memories, et cetera.
I’m too tired to write a proper, uhh, thing, about what I’ve been doing. Right now I’m working on a static site for my personal homepage portfolio thing, taking a break from some server-side programming for a collaborative writing web app I’m working on.
I’m a vanilla guy; I like to work with no-frills HTML and CSS files with plaintext editor when designing a website. At first I thought of just building the entire website with it, but then, ugh, what if I have to change something in the header or the sidebar? I’d have to edit every single page in the site. What a nightmare. So I thought of using one of these static site generators.
I thought of using Pelican, at first, since I’m familiar with Python (I was building my other project with Flask, a web framework built on Python). Half an hour into its documentation and I went nope nope nope, too complicated. Then I tried Hugo, which I’m already sort of familiar with after trying it out about a year ago. Three tires and hours later I’ve gone to the conclusion that, screw this, screw all this mess. These static site generators tend to assume a lot on how you want to build your sites, and they just end up being more work than they’re worth.
Ha. Ain’t that a common thing for programmers. We tried building or using a tool to help us with doing repetitive tasks, only to find ourselves hours later at the centre of a spaghettified mess, realising that it’ll be way quicker if we just do things manually.
Software engineering: Where everything is a nightmare, but we keep on throwing ourselves into it anyway.
I end up implementing Jinja2 into a Python file that I make myself to generate the site. It’s such a relief not to have to wade through triple-layered documentations just to do what I want to do.