Live data from Hacker News

Jeffgeerling.com has been migrated to Hugo

jeffgeerling.com

81–90 of 253 posts

Re: Jeffgeerling.com has been migrated to Hugo

#81
post #3

I made the jump to Hugo too (from a managed service: svbtle) a long time ago, but I'll be really honest... I regret it. I decided to use an off-the-shelf theme, but it didn't quite meet the needs and I forked it; as it so happens Hugo breaks userland relatively often and a complex theme like the one I have requires a lot of maintenance. Like.. a lot . Now I can't really justify the time investment of fixing it so I j…

At least it’s practical to identify a specific version to use, and you can be reasonably confident it will work indefinitely. I remember that with the Hyde iteration of my site, somewhere along the way Hyde became impossible to install, and I was stuck with an existing installation, or a lot of effort to put it back together manually. Python packaging has improved a lot since then, so that I doubt that problem would apply on any new project, but it’s still far more plausible than in a language like Go or Rust.

I maintained a personal fork of Zola for my site (and a couple of others), and am content to just identify the Git repository and revision that’s used.

Zola updates broke my site a few times, quite apart from my patches not cleanly rebasing. I kept on the treadmill for a while, initially because of a couple of new features I did want, but then decided it wasn’t necessary. You don’t need to run the latest version; old is fine.

—⁂—

One piece of advice I would give for people updating their SSG: build your site with the old and new versions of the SSG, and diff the directories, to avoid regressions.

If there are dynamic values, normalise both builds before diffing: for example, if you have timestamp-based cachebusting, zero all such timestamps with something like `sed -i 's/\?t=[0-9]+/?t=0/' **/*`. Otherwise regressions may be masked.

I caught breakages a couple of times this way. Once was due to Zola changing how shortcodes or Markdown worked, which I otherwise might not have noticed. (Frankly, Markdown is horrible for things like this, and Zola’s shortcodes badly-designed; but really it’s mostly Markdown’s fault.)

Re: Jeffgeerling.com has been migrated to Hugo

#82
post #34

A few years ago, I decided to migrate my personal website to a Common Lisp (CL) based static site generator that I wrote myself. In hindsight, it is one of the best decisions I have made for my website. It started out at around 850 lines of code and has gradually grown to roughly 1500 lines. It handles statically rendering blog posts, arbitrary pages, a guestbook, comment pages, tag listings, per tag RSS feeds, a con…

Similar to my "Go 101" books website, about 1000 line of Go code (started from 500 lines at 9 years ago). The whole website can be built into a single Go binary.

Re: Jeffgeerling.com has been migrated to Hugo

#83
post #75

Earlier quoted context omitted.

I'm already self hosting my own cookieless analytics, and before, I hosted Drupal (LEMP stack) and Apache Solr on separate servers. I'm used to self-hosting, and any comment solution I use will be self-hosted as well (see: https://github.com/geerlingguy/jeffgeerling-com/issues/167 ) The code surface with SSG + 1 or 2 small self-hosted OSS tools is much, much smaller than it ever was running Drupal or another CMS.

But how in the world will you shove a decent search into a static site? I really want to know because there is a Drupal 7 site that I need to migrate to something but I need good search on it (I’m using solr now). Edit: I should have specified that I need more functionality than just word searching. I need filtering (ie faceted search) too. I’ve used a SSG that uses a JavaScript index and appreciate it, but that’s no…

The usual way is to create an index on generation time and serve it statically. JS just uses the index to do the search. It's a big file, so I'm not saying it's a great solution for everyone, but it works reasonably well.

Of course, for my site I just redirect the user to a search engine plus `site:stavros.io`.

Re: Jeffgeerling.com has been migrated to Hugo

#84
post #3

I made the jump to Hugo too (from a managed service: svbtle) a long time ago, but I'll be really honest... I regret it. I decided to use an off-the-shelf theme, but it didn't quite meet the needs and I forked it; as it so happens Hugo breaks userland relatively often and a complex theme like the one I have requires a lot of maintenance. Like.. a lot . Now I can't really justify the time investment of fixing it so I j…

Run Hugo in Docker; in that instance, rolling forward/back is as easy as changing the tag in your Docker image.

Re: Jeffgeerling.com has been migrated to Hugo

#85
post #52

I think this is silly, and it's a hill I'm willing to die on. I wrote this in a comment yesterday, and Jeff has fully confirmed/vindicated this in his post: SSGs are good for static sites with no interactivity or feedback. If you want interactivity or feedback, someone (you or a 3rd party service provider) is going to have to run a server. If you're running a server anyway, it seems trivial to serve content dynamical…

I converted my site to an SSG site and have never regretted it. Then again, I find that the less interactivity, the better.

Re: Jeffgeerling.com has been migrated to Hugo

#86
post #84
post #3

I made the jump to Hugo too (from a managed service: svbtle) a long time ago, but I'll be really honest... I regret it. I decided to use an off-the-shelf theme, but it didn't quite meet the needs and I forked it; as it so happens Hugo breaks userland relatively often and a complex theme like the one I have requires a lot of maintenance. Like.. a lot . Now I can't really justify the time investment of fixing it so I j…

Run Hugo in Docker; in that instance, rolling forward/back is as easy as changing the tag in your Docker image.

it's a Go programmer, so it's statically linked by default.

No need for docker.

Re: Jeffgeerling.com has been migrated to Hugo

#87
post #37

Earlier quoted context omitted.

Sorry to hear it. Always sucks to not be able to tweak your own site. I’ve had amazing success debugging compile errors with Claude Code. Perhaps a coding agent could help you get it going again?

Yeah I feel like Claude Code is basically tailor made for a use-case like this. Where: * I have forked some public repository that has kept up with upstream (IE; lots of example code to draw from) * Upstream is publishing documentation on what's changing * The errors are somewhat google-able * Can be done in a VM and thrown away * Limited attack surface anyway. I think you're downvoted because the comment comes acros…

> handwavy

Yep. I missed the mark.

OP seemed down and out about their blog being broken. So I was trying to put the idea across as not something to be afraid of.

I should’ve just said it - LLMs are perfect for this use case.

Re: Jeffgeerling.com has been migrated to Hugo

#88
post #68

What's the temperature on Pelican [ https://getpelican.com ] these days? Best Python SSG is mostly down to Hugo and Pelican as far as I can tell. I've always loved SSGs, but ActivityPub integration is also looking very attractive absent wider adoption of RSS.

Pelican is what I use, and it works well.

I used to use Nikola, but gave up on that for two reasons. One was it was adding every possible feature which meant an ever growing number of dependencies which gets scary. And that is hard to use - eg how do you embed a youtube video becomes a trawl through documentation, plugins, arbitrary new syntax etc.

But the biggest problem and one that can affect all the SSG is that they try to do incremental builds by default. Nikola of the time was especially bad at that - it didn't realise some changes mattered such as changes to config files, themes, templates etc, and was woolly on timestamps of source files versus output files.

This meant it committed the cardinal sin: clean builds produce different output from incremental builds

Pelican has kept it simple.

Re: Jeffgeerling.com has been migrated to Hugo

#89
post #69
post #52

I think this is silly, and it's a hill I'm willing to die on. I wrote this in a comment yesterday, and Jeff has fully confirmed/vindicated this in his post: SSGs are good for static sites with no interactivity or feedback. If you want interactivity or feedback, someone (you or a 3rd party service provider) is going to have to run a server. If you're running a server anyway, it seems trivial to serve content dynamical…

Shoehorn basic interactivity like comments? https://gohugo.io/content-management/comments/ This includes a giant list of open source commenting systems. I really don’t understand why people commonly say static site generators are a good candidate for building your own when there are a good selection of popular, stable options. The only thing I don’t like about Hugo is the experience of using other people’s themes.

https://cthor.me/SSG

Getting someone else's SSG to do exactly what you want (and nothing more) takes longer than just building it yourself. Juice isn't worth the squeeze.

Re: Jeffgeerling.com has been migrated to Hugo

#90
post #52

I think this is silly, and it's a hill I'm willing to die on. I wrote this in a comment yesterday, and Jeff has fully confirmed/vindicated this in his post: SSGs are good for static sites with no interactivity or feedback. If you want interactivity or feedback, someone (you or a 3rd party service provider) is going to have to run a server. If you're running a server anyway, it seems trivial to serve content dynamical…

> all an SSG pipeline adds is more dependencies and stuff to break.

This is the exact opposite of what static site generation does.

Post reply on HN