Skip to content

./blog.sh 1.3.2

Choose a tag to compare

@DanielSnor DanielSnor released this 21 Aug 09:15
· 36 commits to main since this release

A GoToSocial release. The first blog.sh site paired with a GTS instance went live this week, and both of its findings are fixed upstream within a day — plus one small thing its skin work earned for every skin after it, and the guide that work cost.

The feed widget reads GoToSocial feeds now. Every fetch used to ask for application/json first, and a host that negotiates content by the Accept header — GoToSocial's profile feed for one — answered exactly as asked: with a JSON Feed the XML parser then reported as "Malformed XML". The feed widget, the Pixelfed widget and the feed importer now ask for RSS/Atom first, and keep asking for it across redirects; the API callers keep JSON. The same GTS feed URL that failed renders as a sidebar widget.

An account id may be more than a number. doctor and ./style.sh demanded digits — Mastodon's shape — while GoToSocial answers the very same lookup endpoint with a 26-character ULID, so the id the setup points you at was rejected by the tool that asked for it, on a value the fetcher handles fine. Both gates now accept numbers and letter-and-digit ids (ULIDs, Pleroma flakes) and still catch the mistake they exist for: a pasted @handle or profile URL.

A listing page says whether it is the first one. <body> on a listing carries page-first or page-cont, so a stylesheet can tell the front page from its /page/N/ continuations — something CSS cannot work out on its own. Two skins written against this engine wanted the same thing (a lead card on one, a profile block on the other) and neither could have it. Post pages keep a bare <body>.

And skinning has a guide. docs/skinning.md — how a site dresses differently without touching the engine: colors: and site.extra_css first, what a skin may safely override, and now a section on styling one page of a listing, answering the question the guide itself opened.

Upgrading — nothing to migrate. The first deploy after this carries every listing page, because each now names its position; a rebuild of a 3200-post archive differs from 1.3.1 by exactly that one line per listing page and nothing else.

Full notes in CHANGELOG.md.

MIT licensed. Documentation · blogsh.app