I ran my own blog for many years but recently I suspect my server got hacked, and after reinstalling I want to do things a little differently.
I’d like to move away from PHP and I don’t really need a dynamic CMS anyhow.
So far I’ve been using PicoCMS which serves content from markdown pages with a little header. I got quite good at it, wrote my own theme and a few plugins. The templating language is Twig so something similar would be a boon for me.
Writing content in markdown is my most important requirement, or rather reusing the existing pages with as little massaging as possible. Here is one example:
---
Title: Create WiFi Hotspot with NetworkManager
date: 24.11.2022
Tags: archlinux,android
template: post
---
# Make sure required depenencies are installed
blablablablablablablabla
I really want a tag cloud, which used to be my only sorting mechanism apart from date. Most generators, at first glance, offer a tags page. Honestly I have no idea if I’d have to template the cloud myself but tag functionality seems to be common, I guess?
What I don’t want is any sort of web UI or even builtin server functionality or other bells and whistles for the user. I prefer to ssh into the server and do things on the CLI.
Now my most important constraint is that I want to use what’s available in (or as a) Debian repositories. After a quick search around it boils down to:
Searching for similar topics I found this and this. I read all the comments.
TIA
edit: Lots of people mention Hugo. Why would I choose that over, say, Jekyll or Pelican?
Personally I feel drawn more towards Python than Go or Rust, and a Twig-like (e.g. Jinja) templating language. If that’s idiotic, please let me know why.
Also please remember I’m not running a github (or other similar VCS) page but have a dedicated VPS running Debian Stable. Deployment or containerization are of no interest to me.
edit2: For now I have settled on Pelican - both frontmatter and templating feel very familiar to me. I might even be able to port my PicoCMS theme over. I have not tried to install plugins via pip yet.
Thanks to all!
I went the same direction, from WordPress to static site generation. I did the same evaluation as you are trying to do and ended up with Hugo, mostly because there is a lot of support available for it. My runner up was Pelican, because I was fluent in Jinja2, but I didn’t want to mess around with the templates and Hugo’s were prettier. Sue me, I am shallow.
The one regret I have about Hugo is that the templating language is challenging. I am trying to be as neutral as possible, but it seemed like even simple things were complicated to achieve. If someone would come up with a Hugo that speaks Jinja2, I’d be really delighted.
Other than that, conversion from WordPress to Hugo was relatively straightforward, despite needing to find a gallery component and converting menus. Hugo is indeed very fast in processing, which become important when your blog has thousands of articles.
I set up the blog as a private git repository. The server pulls from it, then runs Hugo and a full text search engine, and the content is visible and searchable within five minutes on update.