Série./blog.sh v1.108

./blog.sh 1.10

./blog.sh v1.10 — díl 1 z 8

./blog.sh 1.10 je venku — vydání na GitHubu.

Vydání, které otevírá dveře programům. Každá obrazovka, kterou si přečteš, než něco uděláš, a každá akce, kterou ti nabídne, teď umí odpovědět i jako data. Program na jiném stroji se k nim dostane přes SSH, které server už má, a jen přes jeden skript, který mu dovolí spustit jeden příkaz enginu a nic jiného. Připojí se kódem, který ./blog.sh pair nakreslí v terminálu, takže nikdo nikam nepíše adresu ani klíč. Na tom stojí nativní appky pro iOS a Android, které se chystají.

Kolem toho archiv víc mluví o sobě. Karta „V tento den“ ukáže příspěvky z dnešního dne v dřívějších letech, /series/ je rejstřík všech sérií, stránka výpisu řekne, které dny pokrývá, a stránka 404 nabídne hledání rovnou vyplněné slovy z adresy, kterou nenašla. Na Macu ./setup.sh nabídne ikonu v Aplikacích, takže se blog dá otevřít bez psaní do terminálu. A druhý jazyk z 1.9 dospěl: série má jméno v každém jazyce a překlad si drží své staré adresy stejně jako příspěvek.

Jedna věc dopředu: stránka /write/ a zkratka SendPost ve verzi 1.11 skončí a nahradí je appky. V 1.10 fungují jako dřív.

Číst dál

Archiv promlouvá

./blog.sh v1.10 — díl 2 z 8

Koncem září přišel dopis. Pavel si tímto enginem zálohoval starý blog a napsal, co se při tom dozvěděl: za devět let přes tisíc příspěvků a období, kdy psal každý den. Nevěděl to. Blog byl celou dobu jeho, příspěvky byly celou dobu v něm, a přesto mu to číslo řekl až archiv, když ho poprvé někdo přečetl celý.

Tohle vydání je o tom, co archiv řekne, když se ho zeptáš. Jak se do něj dostane, jak z něj odejde a jak se hlídá, o tom web napsal dost. Tenhle text je o tom, co archiv ví o tobě.

Co archiv spočítá

./blog.sh stats přečte každý příspěvek a odpoví jednou obrazovkou. Na archivu, kolem kterého tento engine vznikl, dnes vypadá takhle:

Archiv
  příspěvků: 6912 — z toho publikovaných 6907, rozepsaných 1, naplánovaných 4
  31. 10. 2003 – 22. 10. 2026, dnů: 8392
  nejvíc toho přibylo v roce 2024 (příspěvků: 642)

Slova
  slov celkem: 425 828, průměrně na příspěvek: 61,6, uprostřed: 22
  nejdelší: minimal-jedna-barva-tri-pisma (slov: 3267)
  přečíst celý archiv trvá 35,5 hodiny
Číst dál

Ikona místo terminálu

./blog.sh v1.10 — díl 3 z 8

Každý návod k tomuto enginu začíná stejnou větou: otevři Terminál, přejdi do složky svého webu a napiš ./blog.sh. Pro člověka, který v terminálu žije, je to jedna věta. Pro člověka, který v něm nežije, jsou to tři věci, které lze pokazit dřív, než napsal první slovo – kde se Terminál bere, co znamená „přejdi do složky" a proč před tím příkazem stojí tečka s lomítkem.

1.10 dělá z té věty věc, na kterou se dá poklepat.

Co průvodce nabídne

./setup.sh na Macu končí jednou otázkou navíc:

Vytvořit v Aplikacích ikonu, která tenhle blog otevře poklepáním?
Číst dál

Dveře pro programy

./blog.sh v1.10 — díl 4 z 8

Do 1.9 měl engine pro programy jedny dveře, a byly úzké. Telefon jimi doručil příspěvek: zkratka poslala soubor přes SSH, na druhé straně ho převzal receive.sh a odpověděl jedním objektem. Dva příkazy držely tenhle slib – add --json a publish --yes --json. Všechno ostatní byla obrazovka pro člověka: výpis, vlastnosti příspěvku, fronta, koš. Program, který se chtěl podívat, co je v archivu, neměl co zavolat.

1.10 otevírá dveře dokořán, a právě proto si dává záležet na tom, co jimi smí projít.

Každá obrazovka jako data

Každá obrazovka, kterou si člověk přečte, než něco udělá, a každá akce, kterou mu nabídne, má teď tvar --json: jeden objekt na standardním výstupu a nic jiného, každý klíč vždy přítomný. Odmítnutí je také objekt, {"ok": false, "error": "not_found", …}, a vrací nulu – návratový kód říká, jestli odpověď vůbec přišla, objekt říká, jaká byla. Program, který musí zkoušet, zda klíč existuje, si píše vlastní parser; tomu se tady předchází.

Číst dál

Co teď výpis říká

./blog.sh v1.10 — díl 5 z 8

Výpis je stránka, kterou engine staví nejčastěji a kterou nikdo nepíše. Úvodní stránka, stránka štítku, rok archivu, díly série, výsledky hledání – všechno jsou karty příspěvků za sebou, a to, co karta říká, rozhoduje engine, ne autor. 1.10 na výpisech mění několik věcí najednou, a jedna z nich se změní, aniž by někdo cokoli nastavil. Na tu je dobré se připravit.

Karta obrázkového příspěvku nese obrázek

Karta se řeže na výšku a první blok si nechá, ať váží cokoli. Fotografie pod jedním řádkem slov tak z karty vypadla přesně u příspěvku, který je tou fotografií: na jednom archivu ukazovala první stránka obrázků tři obrázky ve třinácti kartách. Příspěvek druhu obrázek nebo video má teď na kartě napřed své médium a týž řez běží přes to, co následuje. Obrázek na výšku je držený na 22rem místo celé obrazovky a karta si tu výšku účtuje, takže popisek pod fotkou na výšku je na kartě také.

Tohle je ta změna, která se stane sama: každý web s takovými příspěvky ukáže po aktualizaci na výpisech víc obrázků. Článek s fotografií uvnitř zůstává článkem. A kdo chce, aby první karta úvodní stránky vedla obrázkem i u článku, zapne layout.lead_card. Je vypnuté: mění jen jednu kartu a jen na úvodní stránce, a to je rozhodnutí o vzhledu, které engine nedělá za autora.

Číst dál

Uloženo beze změny

./blog.sh v1.10 — díl 6 z 8

Oprava překlepu v jednom odstavci. To je celá změna, kterou autor udělal, a tak ji má archiv zapsat: jeden odstavec jinak, ostatní jak byly. Na skutečném archivu, cestou, kterou příspěvky posílá telefon, to engine do 1.9 neuměl. Měřeno 8. října: 101 příspěvků se změnilo tím, že byly uloženy beze změny.

Co markdown neumí říct

Příspěvek je uložený jako bloky, a editor ukazuje text. Mezi tím stojí převod, který většinou nic neztratí – odstavec je odstavec, nadpis je nadpis. Jenže archiv, který přišel z importu, nese na blocích věci, pro které markdown slovo nemá: odstavec, který Tumblr označil jako odsazený, jako položku seznamu nebo jako řádek chatu; u videa jeho poskytovatele a adresu, na které bylo poprvé; přehrávač, který služba předala jako HTML. Text, který editor ukáže, nic z toho nenese. A uložení dosud postavilo každý blok znovu z textu: oprava jednoho překlepu přepsala všechny ostatní bloky příspěvku bez nich. U stolu i z programu stejně; jen u stolu to nikoho nenapadlo měřit.

Otázka naopak

Číst dál

Druhý jazyk, o vydání později

./blog.sh v1.10 — díl 7 z 8

1.9 přineslo druhý jazyk: jeden příspěvek, text v každém jazyce, strom /en/ vedle kořene. První web, který to nasadil naostro, byl ten, na kterém engine vyrostl, a za měsíc provozu se ukázalo, co žádný test neukáže. V changelogu 1.10 je k druhému jazyku přes třicet položek. Tohle není jejich seznam. Je to o tom, co druhý jazyk potřebuje a první ne.

Jméno, které se skloňuje

site.author stojí ve větách: „na osobním webu Daniela Šnora". Čeština jméno skloňuje, takže v konfiguraci je druhý pád, a stránky v angličtině ho převzaly i s pádem. 1.10 přidává site.author_name: jméno tak, jak stojí samo – pod titulkem úvodníku, jako osoba ve strukturovaných datech, na stránkách jiného jazyka než vlastního. Bez něj se dál všude bere author, jako dřív. Jazyk, který neskloňuje, to nikdy nepotřeboval, a proto to nikdo nenapsal.

Série má jméno v každém jazyce

Číst dál

Všechno ostatní v 1.10

./blog.sh v1.10 — díl 8 z 8

Šest dílů pokrylo, o čem 1.10 je: archiv, který promlouvá, ikona místo terminálu, dveře pro programy, co teď výpis říká, uloženo beze změny a druhý jazyk, o vydání později. Tohle je zbytek, v pořadí, v jakém ho potká ten, kdo web provozuje. Většina z toho přišla ze dvou webů, které běžely na předběžné verzi od konce září, a od čtenářů, kteří si četli opravy oprav.

Číst dál