0.2.0

Ten issues, closed together. Most of them were the same bug wearing different clothes: a build that exited 0 and wrote a site that was wrong in a way nothing on the site revealed.

Breaking

The home page is no longer described in site.json. portrait, contact, elsewhere and home are gone, along with the three structs behind them and the procedure that turned them back into the markup they started as. A site now writes html/home.html and gets the whole page, with <!--ostat:recent--> marking where the recent posts goThe data model had to grow a field for every idea a home page might have, and the generator a branch to draw it. A fourth section meant editing write_home and recompiling; a paragraph or a table had no representation at all. A document is stored as a document now..

html/ also holds header-01.html and header-02.html, the two halves of every page’s <head>, and not-found-404.html. Each is optional and falls back to a built-in default, so a bare content directory still builds. This is the arrangement gingerBill’s generator uses, read at runtime rather than compiled in, because compiling it in is what would undo multi-site support.

Three content trees that used to build now fail, on purpose:

An _index.md marked draft removes its section, so that now fails too.

Fixed

Also

ostat writes a 404.html, which it did not have at all.

The test suite went from 82 to 98. The golden tree is unchanged except for the new 404 page, which is what says the home page migration was faithful rather than merely finished.