Everything else in 1.9

Part 7 of 7 of ./blog.sh v1.9

Five posts have covered what 1.9 is about: a post in two languages, the site in the language of the page, what stands in a deploy target before the first deploy, a host that only speaks FTP and one phone shortcut instead of two. This one is the rest, in the order an operator meets it. Most of it came from two people who set 1.9 up from nothing and upgraded a copy of a 6,600-post site, doing only what the docs said.

Setting up

./setup.sh asks which language to speak first, and speaks it from the next screen on — the introduction used to stay in English above a Czech run, because it was said before the choice was made. While the site's name, short name, description, author and address are still the template's examples, Enter no longer takes them as answers: an address has to be yours, or http://localhost:8000 for trying things out on this machine. A deploy directory typed as ~/www is written out whole, and a prompt that shows nothing as you type now says what went in — its length and its last two characters, enough to tell an access token from the client key beside it and too little to give either away. A token pasted with a space on either side is trimmed before it is saved.

Esc does nothing

At "rebuild and deploy the site now?" Esc used to answer yes and deploy; at a post's crossroads it opened the editor; in a question you type into, it wrote an invisible control character into site.yml. Esc leaves without doing anything now, everywhere — in a typed question it is Esc and then Enter, because the terminal reads a whole line there. And q no longer closes a menu: it was a second Esc in the menus and nowhere else.

The command line

./blog.sh rebuild --help built and deployed the site, and rebuild --force — the rerun the deploy's own guard asks for — was taken for nothing. rebuild takes --full and --force and refuses anything else by name, and a rebuild whose build failed ends with 1. A mistyped command says it does not exist and names the nearest one, instead of scrolling the whole usage past.

A draft's properties

The properties screen shows where to read a draft, whole even at 80 columns, and [q] puts that address on a phone as a QR code — reading a draft on a phone used to mean opening it in the editor first. [p] asks before it publishes and announces. And the screen stopped promising an announcement nothing would send: on a site that announces nowhere, or has a network configured with its token still empty, it says so.

Surfer 7

Cloudron's Surfer 7 signs in with your Cloudron username and an app password, and no longer takes the access token every earlier Surfer did. SURFER_USERNAME and SURFER_PASSWORD go into env.sh; they can go in before the app updates, because an older Surfer is signed in to with the token until the day it is not. A refused sign-in stops the deploy at the first file and says which of the two was refused, instead of printing HTTP 401 once per file.

From the phone

Beside the single shortcut, the writing app sends its text from Chrome and Edge: Chromium shares only files whose extension is on its own list, .md is not on it, and the text was refused before any share sheet opened. It goes as .md.txt now, and the receiver puts the .md back. That one was found on an Android phone, by somebody who tested exactly what the browser refuses.

What doctor names now

A deploy backend whose program is not installed, rather than letting the first deploy find out after the build — and the rclone snap, which can read only inside your home directory. A quote left open in site.yml, by the line it opens on rather than the line where the parser gave up. A language file still holding the example's text, and one left behind by a language taken out of site.locales. An option it does not know: doctor --onlien used to run the offline checks and say nothing. It no longer ticks the site's identity while the author is still the example's, and no longer says the shipped banner will jump — only the ratio holds its space open.

Smaller things

A picture captioned in typographic quotes — ![alt](01.png „Caption“), what every phone keyboard writes — pointed at a file nobody has, and vanished from the page. Every embedded player drew a black rectangle on a host that sends a tight Referrer-Policy, which is Surfer's default. A file size used the English decimal point in every language. A podcast import put the show's cover over every episode. Ctrl+C left every screen of ./blog.sh through a stack trace. publish --json answered an unreadable date with prose and status 1, which a phone cannot tell from a crash.

The Czech interface

The engine's Czech said "post" in over 300 places, the help and the editor's hint included, while the sites it builds said "příspěvek"; a build was "postaven", constructed, where Czech puts one together — "sestavení". Now it says "příspěvek", "sestavení" and, for a draft, "koncept", in the wizard, the command line, the writing app and the Czech cheat sheet. The key is still d for "[d] nechat jako koncept". A script that reads the Czech output will see the new words.

A cold build costs about 6% more than 1.8's, the price of every page asking which language it is in. A cached rebuild costs what it did, so an ordinary day of publishing is unchanged.

Full notes, all of it, in CHANGELOG.md under 1.9.

Comments