After thinking about cleaning up my blog building scripts, and inspired by chee's blog post, I figured it was time to finally rewrite them from scratch!
The two ugliest parts of of the old system that I managed to get rid of now was the ordering of posts, and specifying entry metadata. Previously I used numbered filenames, and a yaml frontmatter that I split out of the entry before parsing, but I replaced both with a file called entries.json. It contains a list of objects, with the objects containing the metadata for the entry, e.g. title, date, et.c., to be built, and the order of the objects defining the order of the entries.
One current deficiency is that there's no support for draft entries, but I'm fairly certain that I know how I'm going to implement it.
Oh, and I nuked all my old posts, since there was nothing interesting in there. They're still accessible through the wayback machine, and my website's git history though.