The menu got shorter
The wizard used to list ten things you could do. It lists five now, and the engine can do more than it could before.
That's not a paradox, it's an admission: eight of those ten were not activities. They were operations on a post, wearing the costume of a menu item.
Everything about a post, in one place
./blog.sh props <slug> — or, in the wizard, pick a post and press v — shows what there is to know about it. State, type, tags, whether it's pinned, whether it's been announced and where. If it's scheduled, the whole publishing queue.
And the actions live there too, next to the facts they act on. A draft offers publish and schedule. A published post offers unpublish, re-announce, pin or unpin, rename, delete.
You no longer go to a menu, choose "unpublish", and then hunt for the post. You go to the post and see that unpublishing is one of the things it can do right now.
What stayed where it was
Type and tags are still edited in the frontmatter of edit, prefilled with their current values, because they're text you write. The pin is a switch rather than a value, so it toggles right in the dialog with c — and the header line keeps working, for anyone who'd rather type it.
The five that remain are the ones that really are activities: write, edit, import, list, rebuild.
One guard worth mentioning
The dialog acts on the post it read when it opened. If the scheduled-publish cron fired in between — you opened the properties of a draft, went for coffee, came back at 09:31 — an action taken on that stale copy could have reverted a post the cron had just published, dropping its announcement URL along the way.
edit already guarded against exactly that. Now the dialog's actions do too. It's the kind of bug you only find by asking "what if something else touched this file while I was looking at it?", which is a question worth asking of every screen that holds state open.
If you script
The wizard's numbering changed with the shorter menu, so a scripted printf "4\n" | ./blog.sh picks something different than it did in 1.0. The CLI commands are the stable interface — none of them changed, and none of them will.

Comments