Série./blog.sh v1.77

./blog.sh 1.7

./blog.sh v1.7 — díl 1 z 7

./blog.sh 1.7 je venku. Stránka, která píše příspěvek na telefonu, ho teď i publikuje, a zjistí, co se stalo, místo aby jí to někdo řekl: před odesláním si vystaví stvrzenku a každé tři vteřiny se na ni ptá webu, dokud nepřijde odpověď.

Vedle toho druhá polovina téže myšlenky – měnit, čím příspěvek je, bez otevírání toho, co v něm stojí: jeho série, štítky, typ a tři příznaky, z jedné obrazovky. Pak karta odkazu zapsaná v hlavičce, asi padesát kreseb, které může nosit štítek, video přebalené na cestě dovnitř, aby čtenář nečekal na celý soubor, a sedmnáct oprav.

#blogsh #ruby #staticsite

Příspěvek, který čekal na terminál

./blog.sh v1.7 — díl 2 z 7

Příspěvek se píše v tramvaji: titulek, čtyři odstavce, dvě fotografie s popisky. Přepínač nad tlačítkem Odeslat říká Koncept, což říká vždy, dokud ho někdo nepřepne. Odeslat, a karta s odpovědí se vrátí s adresou náhledu. A pak to sedí. Vydat koncept byl příkaz, příkaz chce terminál a tramvaj žádný nemá.

1.6 chtěla to rozhodnutí na špatném konci: publikovat ve chvíli odeslání, dřív než blog cokoli vykreslil, nebo se podívat na vlastní stránku blogu a pak hledat klávesnici. 1.7 to uzavírá, a pak uzavírá i cestu, kterou se odpověď vrací.

Jeden soubor, týmž spojením

Karta s odpovědí u konceptu teď nese tlačítko Publikovat. Stisk pošle jeden soubor jménem publish.txt, ve kterém je slug a nic víc – týmž panelem sdílení, týmiž dvěma zkratkami, týmž SSH spojením, kterým šel sám příspěvek.

Číst dál

Čím příspěvek je, ne co v něm stojí

./blog.sh v1.7 — díl 3 z 7

Pět dílů série napsané během jara a třetí vyšel bez řádku series:. Web udělal, co mu bylo řečeno. Třetí díl seděl u svého data a nikde jinde: mimo výpis série, mimo odkazy z jednoho dílu na další a mimo počet, který nesly ostatní čtyři: stránka čtvrtého dílu o sobě říkala díl 3 ze 4 a stála na místě, které měl mít chybějící příspěvek. Oprava bylo jedno slovo.

Dostat se k tomu slovu znamenalo otevřít článek.

To dělá edit. Přečte příspěvek z jeho souboru, celý ho vypíše jako markdown, otevře v editoru a rozebere, co se vrátí. U příspěvku, který je z odstavců a fotografií, je ta cesta tam a zpět věrná a o nic nejde. U příspěvku, který nese něco, pro co markdown nemá tvar, není.

Sedm řádků

props <slug> dostává [e] – u konceptu, u naplánovaného i u publikovaného příspěvku stejně.

Číst dál

Adresa, o které příspěvek je

./blog.sh v1.7 — díl 4 z 7

Někdo ti pošle článek. Přečteš ho a máš k němu dvě stě slov – ne recenzi, jen to, čeho sis všiml, a jednu větu o tom proč. Příspěvek je z větší části ta druhá stránka a adresa, o které je, musí někde bydlet.

Až do tohoto vydání zněla poctivá odpověď: v odstavci, jako každý jiný odkaz. Karta, kterou takový příspěvek otevírá, jako blok existovala – importéry ji vyrábějí z Tumblru a z Bluesky – ale nic, co by šlo napsat, ji nevytvořilo. Zapisovač, který příspěvek převádí zpět do markdownu, pro ni neměl syntaxi, takže edit na příspěvku s odkazem nabízel kartu zahodit a add <soubor> ji neuměl vytvořit vůbec. Vlastní příspěvky o vydáních tohoto projektu z toho důvodu po 1.3 přestaly být příspěvky s odkazem. Nástroj se změnil; záměr ne.

Tři řádky v hlavičce

---
tags: release
link: https://example.org/clanek-nekoho-jineho
link_title: Článek někoho jiného
link_description: O čem je, podle jeho vlastní stránky.
---

Dvě věci v něm jsou špatně a jedna stojí za ukradení.
Číst dál

Kolo, které nikdo nemusel kreslit

./blog.sh v1.7 — díl 5 z 7

Ukázková konfigurace, kterou tento engine dodává, nese kolo: štítek jménem kolo a pod ním ručně vypsané <svg>. Je tam proto, že tam nebylo co jiného dát. tag_icons bral jméno ikony, kterou engine dodává, nebo vlastní kresbu, a dodával jen osm typů obsahu – text, obrázek, video, odkaz, zvuk, citát, dokument, chat. Štítek o cyklistice mohl nosit znak pro „zvuk", nebo někdo mohl strávit večer nad souřadnicovou mřížkou.

1.7 mezi to vkládá pětapadesát kreseb a každé dává jméno.

Pětapadesát podstatných jmen

Spočítáno v lib/icons.rb: osm typů obsahu, pětapadesát dalších, třiašedesát jmen, o která si štítek může říci. Seskupeno podle toho, o čem blogy bývají.

Číst dál

To poslední, co kamera zapíše

./blog.sh v1.7 — díl 6 z 7

Někdo otevře příspěvek s videem a stiskne přehrát. Připojení je v pořádku. Video není velké. Chvíli se nic neděje, a pak se video spustí naráz, jako by čekalo na svolení.

Čekalo na rejstřík.

Proč sedí na konci

MP4 je hrstka boxů položených za sebou. Jeden z nich, mdat, je obraz a zvuk. Jiný, moov, je rejstřík: který snímek leží na kterém bajtu, jak dlouho to celé trvá, jakému kodeku to předat. Přehrávač potřebuje moov dřív, než může ukázat jediný snímek.

Číst dál

Jeden řádek barvy

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

Čtenář změnil jednu barvu okraje v site.css, spustil nové sestavení a čekal, zatímco sestavení vytvořilo, bajt po bajtu, každou stránku, která už existovala. Zeptal se proč. Odpovědí bylo jedno slovo v jednom seznamu a 1.7 ho odstraňuje.

Co si sestavení zapisuje

Od 1.6 si sestavení vede záznam o tom, co vstoupilo do každé stránky, kterou zapsalo – příspěvek, příspěvky kolem něj, štítky, čísla, která stránka počítá. Při dalším sestavení se stránka, jejíž záznam se nezměnil, vůbec nevykresluje. Ne že by se vykreslila a pak shledala shodnou – nevykreslí se. Souhrn na konci říká, kolik stránek zůstalo netknutých; to je první číslo, na které se podívat, když je sestavení pomalé.

Záznam platí jen po dobu, kdy engine, který ho zapsal, je týž engine, a proto visí na otisku toho, z čeho se engine skládá – souborů v templates/, lib/, build/, locales/ a config/, hašovaných podle obsahu, ne podle času změny. Změň cokoli z toho a záznam se zahodí celý, protože cokoli z toho může změnit každou stránku.

Proč barva stála celý archiv

Číst dál