On adding the 4th article, it of course becomes clear that manually copying a static HTML template will never do. I knew this before, but deferred the issue. I migrated by chopping up the articles I have into multi-line python strings embedded in a JSON-y list of articles. While I originally considered putting each article in a separate file, this seemed simpler. Also I hold a long-standing speculation that the right way to deal with complexity isn't to chop up things into lots of little files, but to fix your editor (insert clever idea). Though in practice I hate big files, so we'll see how long this lasts.
Having everything in one big structure lets me also generate an index. While I currently have so few articles that dumping them in reverse order works, that won't scale. I start by duplicating what I have, and generating it on top of the existing static files. With git that lets me check that nothing has changed too drastically.
To plan ahead for lots of articles (you never know), I've added a subjects fields to each article. This way I can generate a title only subject index. I think I'll do two, one by just date, the other by subject.
Of course all of this is folly. It's just more escaping to allow a text document to stand in for something that's really a more complex entity. Escaping is the root of all evil.