Štítekpsaní

Procházení archivu

Jeden příspěvek tady nedávno tvrdil, že menu průvodce se zkrátilo, protože operace s příspěvkem patří do příspěvku, ne do menu. To pořád platí. Tohle vydání přesto přidává obrazovku a důvod stojí za vyslovení: najít příspěvek je jiná práce než s ním něco udělat.

./blog.sh browse ukazuje tytéž příspěvky jako list, jako obrazovku, ve které zůstáváš.

Co to je

Šipky a Page Up/Down celým archivem. Filtry podle typu, stavu a štítku, s počtem u každého. A hledání, které filtruje při psaní.

Hledání je vlastní hledání webu. Slova se spojují jako A, "fráze v uvozovkách" se počítá jako jedna, -slovo vylučuje a diakritika nikdy nerozhoduje o shodě. Jazyk dotazu a sjednocování bydlí v lib/search_query.rb, vedle poznámky, že se mění společně s assets/js/search.js – protože dotaz, který v prohlížeči znamená jedno a v terminálu druhé, je horší než nemít hledání v terminálu vůbec.

Prohledává plný text každého příspěvku, takže pod vybraným řádkem je řádek vlastního textu toho příspěvku, který ti ukazuje, proč odpovídá.

Číst dál

Tvůj fotoaparát si zapisuje, kde jsi byl

Vyfoť něco telefonem a zaznamená místo, kde jsi stál. Ne jako odhad – jako souřadnice, přesné na pár metrů, v bloku metadat, který cestuje se souborem, kamkoli jde.

Sociální sítě to při nahrání odstraňují. Dělají to léta, dost potichu na to, aby na to většina lidí přestala myslet. Statický web nemá nikoho, kdo by to udělal: blog.sh zkopíroval tvou fotku do archivu bajt po bajtu a nic v enginu se na metadata nikdy nepodívalo. Takže fotka kočky na parapetu zveřejnila parapet.

Od 1.2.1 ne. Fotka přijde o polohu na cestě do archivu – když ji přidáš do příspěvku, a stejně tak když vstoupí kterýmkoli z dvaadvaceti importérů, protože všechny končí v témže zápisu.

Jen poloha

Fotoaparát, objektiv, expozice, okamžik otevření závěrky: ty zůstávají. Jsou to tvoje vlastní záznamy o tvé vlastní fotografii a archiv, který by je potichu zahodil, by odpovídal na otázku, kterou nikdo nepoložil.

Číst dál

Nastavení je teď rozhovor

Až do tohoto vydání znamenala instalace ./blog.sh zkopírovat dva soubory a upravit 277 řádků komentovaného YAML, než proběhlo první sestavení. Všechno bylo zdokumentované. To není totéž jako snadné.

./setup.sh se místo toho ptá a každou odpověď kontroluje, jakmile přijde.

Otázky, které byly potichu nebezpečné

Tři nastavení šlo napsat špatně způsobem, o kterém by ti nikdy nic neřeklo.

Časové pásmo. Překlep tady neselže – Ruby spadne na UTC a nic neřekne – jen datuje každý příspěvek o dvě hodiny vedle, navždy. Průvodce nabídne pásmo z vlastní databáze stroje, ledaže stroj sedí na UTC, což je fakt o datacentru, ne o člověku, který odpovídá; pak navrhne podle jazyka, ve kterém se tě ptá. A odmítne cokoli, co není skutečné pásmo.

Adresa. Bydlí na dvou místech a env.sh přebíjí config/site.yml. Dodávaný příklad ji má namířenou na example.com, takže vyplnit jen konfiguraci nechá tvůj web říkat si example.com ve feedu, v sitemapě a v každém náhledu při sdílení. Průvodce zapíše obojí.

Číst dál

Menu se zkrátilo

Průvodce dřív vypisoval deset věcí, které můžeš udělat. Teď jich vypisuje pět a engine umí víc než dřív.

To není paradox, to je přiznání: osm z těch deseti nebyly činnosti. Byly to operace s příspěvkem v kostýmu položky menu.

Všechno o příspěvku na jednom místě

./blog.sh props <slug> – nebo v průvodci vyber příspěvek a stiskni v – ukáže, co se o něm dá vědět. Stav, typ, štítky, jestli je připnutý, jestli byl oznámen a kde. Když je naplánovaný, celou publikační frontu.

A akce bydlí tam také, vedle skutečností, na které působí. Koncept nabízí publikovat a naplánovat. Publikovaný příspěvek nabízí stáhnout, znovu oznámit, připnout nebo odepnout, přejmenovat, smazat.

Už nejdeš do menu, nezvolíš „stáhnout" a pak nehledáš příspěvek. Jdeš k příspěvku a vidíš, že stažení je jedna z věcí, které právě teď umí.

Co zůstalo, kde bylo

Číst dál

Fotka, kterou tvůj iPhone nikomu neukáže

iPhone fotí ve výchozím nastavení do HEIC. Safari ho vykreslí. Chrome ne. Firefox ne. Takže fotka rovnou z telefonu, připojená k příspěvku a publikovaná, je fotka, kterou většina tvých čtenářů nikdy neuvidí.

Staré chování bylo to nejhorší možné: soubor vstoupil, sestavení ho nedokázalo změřit a obrázek ze stránky potichu zmizel – i s popiskem. Žádná chyba. Jen příspěvek s dírou tam, kde byla fotka.

Odmítnuto, s příkazem, který potřebuješ

Připojení HEIC teď uložení zastaví a vypíše přesný převodní příkaz pro stroj, u kterého stojíš:

sips -s format jpeg photo.heic --out photo.jpg      # macOS
heif-convert photo.heic photo.jpg                    # Linux

Tvůj soubor zůstane přesně tam, kde byl, v incoming/. Nic se nemaže, nic se nehádá. Převedeš ho a pokračuješ.

Nebo převedeno, když si řekneš

Číst dál

Tři koncepty, tři rána

Psaní nepřichází rovnoměrně. Přijde večer, kdy chtějí ven tři příspěvky, a pak týden nic. Publikovat je tak, jak byly napsány, znamená tři příspěvky za jednu noc a potom ticho – což je horší blog než tytéž tři příspěvky rozložené do tří rán.

Takže web teď může říci, kdy obvykle publikuje:

publishing:
  slots:
    - "mon 09:30"
    - "wed 09:30"
    - "fri 09:30"

Nebo, když píšeš víc, jediné "daily 09:00".

S tímhle v konfiguraci ti naplánování konceptu nabídne nejbližší slot, který žádný jiný naplánovaný příspěvek ještě nezabírá. Tři koncepty napsané za jeden večer dostanou nabídnuto pondělí, středu a pátek, v tomhle pořadí, aniž bys počítal dny.

Jen a pouze nabízí

Číst dál

Některé příspěvky jsou ke stažení

Fotka v příspěvku je holé jméno souboru v řádku s obrázkem. Vždycky byla:

![Pohled z okna](window.jpg)

Takže soubor připojený k příspěvku je týž řádek bez vykřičníku:

[Poznámky ze čtení, 2025](reading-notes.pdf)

Celý řádek, který není nic než odkaz, mířící na holé jméno souboru se známou příponou, je příloha. Připraví se přes incoming/ jako fotka, uloží se vedle příspěvku jako fotka a nikdy tvůj web neopustí.

Řádek s adresou v sobě zůstává tím, čím vždy byl: odkazem. Rozdíl je holé jméno souboru – totéž pravidlo, kterým se fotky už řídí, takže není co nového se učit.

Vykreslená jako karta, ne jako odkaz

Příloha se vykreslí jako karta nesoucí popisek, příponu a velikost. Velikost tam je proto, že stažení si zaslouží říci, co stojí, než se k němu zavážeš – 40MB PDF na telefonu na mobilních datech je jiná nabídka než 200kB, a čtenář má mít možnost to rozhodnout.

Číst dál

Příspěvek, který zůstává

Titulní strana blogu je jediná stránka, která je prohlášením. Všechno ostatní je chronologie, která dělá svou práci.

Takže pinned: true v hlavičce publikovaného příspěvku teď drží jeho kopii nahoře na první stránce výpisu. To je celá funkce a zajímavá část je všude tam, kde se záměrně neuplatní.

Jen titulní strana

Výpisy podle typu, výpisy štítků, feed RSS a sitemapa zůstávají přísně chronologické. Připnutí je tvrzení o tom, co má návštěvník číst první, ne přepis toho, kdy byly věci napsány. Kdo odebírá feed, dostává příspěvky v pořadí, v jakém se staly, a připnutý příspěvek mu nepředbíhá frontu pokaždé, když se přepne.

Co se děje, jak stárne

Dokud je příspěvek ještě dost nový na to, aby podle data seděl na stránce 1, objeví se přesně jednou – připnutí ho nevytiskne dvakrát na téže obrazovce. Jakmile zestárne na stránku 2, objeví se na obou místech: nahoře na stránce 1 a na svém chronologickém místě na stránce 2.

Číst dál

Některé příspěvky jsou rozhovory

Petr
Potřebuju do příspěvku dialog.
./blog.sh
Napiš ho do plotu chat. Jméno, dvojtečka, řádek.
Petr
To je všechno?
./blog.sh
Řádek bez dvojtečky pokračuje v tom nad ním.
Petr
A Markdown uvnitř?
./blog.sh
Funguje. Tučné, odkazy, kód – jako obvykle.
Petr
Každý jiný engine na tohle chce plugin.
./blog.sh
Každý jiný engine chce plugin i na tabulky.

Zdroj té výměny je přesně to, co jsi právě četl – jméno mluvčího, dvojtečka, řádek:

Petr: Potřebuju do příspěvku dialog.
./blog.sh: Napiš ho do plotu chat. Jméno, dvojtečka, řádek.
Petr: To je všechno?

Zabal ty řádky do plotu kódu označeného chat a máš hotovo.

Právě jsi přečetl tu funkci. To je celá dokumentace.

$ ./blog.sh add

Z prázdného terminálu ke sdílitelnému konceptu, bez střihu.

Jeden záběr, padesát sedm vteřin, bez komentáře a bez střihů. Telefon se skládací klávesnicí a ./blog.sh běžící přes SSH na obrazovce za ním.

Co sleduješ:

Číst dál