Static website for blogs and more
My earlier attempts to distill blogging (and blog creation) down from a software and sysadmin task to "just name something and start writing" have kind of failed, but as I'm shuffling around hardware and feeling inspired to procrastinate by writing, I'm doing another pass.
Given that I'm python-oriented, I wanted something primarily in python, open source, with extra points for "maintained in Debian" and "I haven't failed to use it previously."
Blag
blag
is maintained by a Debian
developer, easy to get launched, is named after an XKCD
comic, and I actually put 3 draft blogs
together with it in a couple of days before trying the next thing.
(In particular, I had one site that was going to mostly be collected
essays and with some blog bits, and not primarily a blog, though I
still wanted an index and RSS and tagging, I had some trouble
reorganizing that one into the right shape.)
Definitely still worth a look, especially for anything "actually blog shaped" - I had filled half a whiteboard with notes on what I actually wanted before I stumbled on the next candidate, so it was very helpful in getting me to define what I meant by "static site blogging" and how that was different from what I thought I meant. Unlike many of the other systems discussed here, the developer actually notices github issues, which is commendable.
Staticsite
staticsite
caught my eye
in an odd sort of way - it's still a markdown blog with other
features, an instant-blog tutorial (doc/tutorial/blog.md
), and some
obvious tooling. What stood out was that it had Hugo-inspired taxonomy support -
when tags aren't enough but you want kinds of tags, this lets you
name and label a group, and have automatic lists of pages in the navbar,
just by using them (and creating one two-line file.) This was
attractive, especially for my ice cream
blog which is itself completely serious
but also serves as a playground for tooling and rendering ideas; ice
cream shops have flavors, towns, and novelties and I can just drop a
little metadata on each page.
(2024-08-07 side note: still fixing some details like actually including those on the pages themselves like tags are1, doing user defined themes2 at all, and fixing the image handling3; I'm not stuck on any of those, just merely-part-way into them.)
(2024-08-21 side note: fixed the above and I'm using it live - see staticsite-itself for more in-depth usage and customization.)
Others
Others I've glanced at - didn't really dismiss, they just didn't end
up on the fast-path before I got to staticsite
:
Pelican
pelican
is in Debian, and the initial
description starts with metadata in a post; this wasn't originally
an objectionable issue, but after using blag
and staticsite
I find
I really want a minimal post to need no more than a # title
(though
I certainly want to be able to add metadata later, that's "being
organizational", not "blogging", and is minor unexpected friction.) Is
this excessive? Certainly, but I'm also someone that recommends that
developers learn to touch-type (and pick an editor) early in their
careers - I'm already committed to being excessive about flow and friction.
Nikola
Nikola python, markdown, MathJax; also heavy
on the required metadata (and seems to require a new_post
command.
ssite new
is similar but optional, and is really just a generic "run
a template for me" tool.) Looks very featureful, I was just in the
mood for something with less rope.
Hyde
Hyde is named as a pun on Jekyll (a popular github-pages-capable ruby static site tool) - not in Debian, is on pypi but last release was 9 years ago, the description page has many dead links, and doesn't yet have a completed python3 port.
other sources
- https://wiki.python.org/moin/StaticSiteGenerator (I'd forgotten for
a moment that
moinmoin
itself is not static, I used to use it for a homedir-only wiki though.) staticjinja is on this list and is even more minimal/"raw templating" thanstaticsite
; not so much as a recommendation but a point on the curve describing the shape of these things. - https://www.reddit.com/r/Python/comments/rja4l2/what_is_the_best_python_static_site_generator/ turns up high in google but the only relevant bits are Sphinx, Lektor (newish) and mkdocs-material.
- https://jamstack.org/generators/ looks exhaustive, to the point of
including a number of long-dead examples among the currently 54
listed (and
staticsite
itself isn't on the python list.) The backing repo has a pile of untouched pull requests, so it's likely to stay out of date.
-
turns out that
ssite show
ignores.staticsite.py
so you can't set an explicit path to a theme, but it takes a--theme
argument; misleadingly,ssite shell
does read the settings. There are probably 2 or 3 issues here, I'm just not sure which ones are real (the "show ignores settings" bit might just be an under-documented security concern) and haven't filed them yet. ↩ -
recently figured out that ImageMagic
convert -resize
produces a smaller JPEG, but doesn't update the EXIF Data which definitely misleads the browser, and is probably also misleadingssite
when it generates the smaller images (since it also doesn't discard the EXIF data.) Again, still needs a couple of experiments where I do clean up and let it re-run before deciding which parts are actually issues. (In the end, I stomped on the native size-handling with bootstrap'simg-fluid
.) ↩