Great looking change log. How are you managing it?
Bug: You have td closing th in the changelog.
Same way I have for 30 years. Flat text file with the lines in a specific order. An asterisk indicates the start of a new item, followed by the status, then the code, then the title, then any number of lines until the next item is the description. A line starting with an =sign indicates a milestone, which is added automagically by the milestone maker if the first line of the file isn't one.
*
FIXED
00041
changelog.html /td closing th
Logic error in generator, easy fix.
*
FIXED
00040
default tablename changed to paladinTesting, should be just "paladin"
Bug in milestone generator.
*
For example. Normally I leave it at that, but it's easy enough to read that format into almost anything with just a handful of lines of code. Empty lines and multi-lines are <br> separated in the markup conversion for the description TD.
I SHOULD probably at some point use something "real" for that with creation and last update timestamps, but it's how I've always done it and how project managers USED to do this stuff before Git and its ilk came along. It never used to matter "when" just so long as it got done.
There's a lot of minutia like that people spend time on now that back in the day we never wasted time on... typically on projects way bigger than anything you'd build with a insecure scripting glue like PHP.