Série./blog.sh v1.29

Blogovací engine, ze kterého se stal archiv

./blog.sh v1.2 — díl 1 z 9

První příspěvek na tomto webu je o fotce, kterou jsem v roce 2012 dal na Instagram. Odkaz pořád funguje. Fotka ne.

Ten příspěvek byl o jednom archivu – mém – a o jednom pravidle: média se vracejí domů. Tenhle je o tom, co se stalo, když se to pravidlo použilo na každou platformu, ke které jsem našel export.

Seznam je uzavřený

Importuje se teď dvaadvacet zdrojů, ve třech skupinách.

Sociální sítě: Bluesky, Facebook, Instagram, Mastodon, Pixelfed, Threads, Twitter/X.

Blogy a publikační platformy: beehiiv, Blogger, Ghost, Jekyll/Hugo a jakákoli složka s markdownem, LiveJournal, Medium, Movable Type a TypePad, podcasty (jakýkoli feed se zvukem), Squarespace, Substack, Tumblr, Wix, WordPress a jakýkoli feed RSS nebo Atom.

A mrtvé weby: Wayback Machine, pro blogy, jejichž platforma už vůbec neexistuje.

Číst dál

./blog.sh 1.2

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

./blog.sh 1.2 je venku – importní vydání.

Z osmi zdrojů importu je dvaadvacet: každá sociální síť, na kterou jsi pravděpodobně kdy něco psal, blogovací platformy a Wayback Machine pro blogy, jejichž platforma už neexistuje.

Nastavení webu je teď rozhovor. Stejně tak jeho vzhled, s kandidátskou paletou vykreslenou na tvém vlastním webu, než si ji necháš.

A obrazovka pro procházení archivu, který se stal příliš velkým na rolování.

Nastavení je teď rozhovor

./blog.sh v1.2 — díl 3 z 9

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

Záchrana blogu, který zemřel v roce 2013

./blog.sh v1.2 — díl 4 z 9

Každý importér tady čte exportní soubor. To funguje přesně do chvíle, kdy platforma zmizí – a pak není o jaký export žádat, kam se přihlásit ani jaký účet obnovit. Posterous skončil v roce 2013. Blog.cz je pryč. Tvůj hosting je na řadě, časem.

Pro tyhle blogy je dvacátým zdrojem importu Internet Archive.

Režim feedu: co si crawler nechal

Archiv udělal užitečnou věc, aniž to zamýšlel. Léta procházel RSS feedy blogů – znovu a znovu, každých pár týdnů, kdykoli šel crawler kolem. Každý záchyt je snímek posledních deseti nebo dvaceti příspěvků v tu chvíli. Seřaď je od nejstaršího a překryvy zrekonstruují historii, kterou nikdo neuložil.

To dělá importér: přečte index CDX pro adresu feedu, odstraní duplicity podle digestu, aby sto shodných záchytů stálo jedno stažení, vytáhne původní bajty přes koncový bod id_, aby ti do příspěvků nikdy nepřistála vlastní lišta Archivu, a překrývající se okna sloučí stejně, jako nový import slučuje cokoli jiného.

Obrázky se vracejí týmž strojem času.

Číst dál

Paleta, na kterou se můžeš napřed podívat

./blog.sh v1.2 — díl 5 z 9

Dřívější příspěvek tady vysvětluje, že každá barva na tomto webu pochází ze sedmi klíčů v konfiguračním souboru. Ta část se nezměnila. Změnilo se to, že si už nemusíš představovat, jak těch sedm hodnot bude vypadat, než se k nim zavážeš.

Vybírat mezi čtrnácti hexadecimálními hodnotami je v průvodci přesně tak slepé jako v YAML. Takže ./style.sh ti to ukáže.

Sedm palet, jeden stisk klávesy

Celé palety teď přicházejí v config/palettes.yml, světlé i tmavé:

  • Výchozí modrá, teplá, monochromatická a vysoký kontrast – čtyři z galerie na tomto webu, jejichž světlé režimy jsou přesně to, co ta stránka ukazovala. Jejich tmavé režimy jsou nové; galerie měla vždy jen světlé titulní strany.
  • Slunečnice, krémová a zlatá s olivovými odkazy – zlatavá žlutá zůstává na pilulkách štítků, protože žlutý text na krémové se číst nedá a zvýrazňovací barva je tu především barvou textu.
  • Zahrada, zelené a khaki.
  • Oceán, ocelová modř nad námořnickou.
Číst dál

Většina tvého Facebooku není tvoje

./blog.sh v1.2 — díl 6 z 9

Importér z Facebooku vznikl nad skutečným exportem „Stáhnout své informace". První užitečná věc, kterou mi řekl, bylo číslo, které jsem nečekal.

Na tom exportu nebylo 95 % příspěvků napsáno na Facebooku. Byly tam zrcadleny – z Twitteru, z Posterousu, z celé éry crosspostů, kdy každá služba zdvořile nabízela, že tě přepošle všude jinde.

Přeskakují se a počítají

Tyhle příspěvky se neimportují. Ne proto, že by byly bezcenné, ale protože platformy, ze kterých skutečně pocházejí, mají vlastní exporty a ty nesou originály: plný text, skutečné časy, média ve velikosti, v jaké byla nahrána. Facebookové zrcadlo tweetu je horší kopie něčeho, co můžeš pořádně naimportovat z archivu Twitteru ležícího v téže složce.

Naimportuj obojí a tvůj archiv se zdvojnásobí, přičemž horší verze vyhraje v polovině případů. Takže se rozpoznají a přeskočí s počtem v souhrnu, a FACEBOOK_CROSSPOSTS=1 to přebije, když nesouhlasíš. Check-iny beze slov a příběhy z aplikací jsou také počítané přeskoky.

Zbývají tvoje vlastní příspěvky, s fotkami a videi z archivu samotného.

Číst dál

Procházení archivu

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

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

Všechno, co je špatně, najednou

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

Každé přerušení v tomto enginu je správné tam, kde stojí. Každé také hlásí přesně jeden problém – ten první, odkudkoli v kódu, kde si ho náhodou všimlo. Oprav ho, spusť znovu, potkej další. Opakuj, dokud se to nesestaví.

./blog.sh doctor přečte, co je na disku, a řekne ti všechno v jednom průchodu, celými větami, každou s řádkem opravy napsaným pro někoho, kdo neví, ve kterém souboru to nastavení bydlí.

Jde po tichých selháních

Hlasitá chyba se aspoň ohlásí. Problémy, na které se doctor soustředí, jsou ty, které nikdy nic neřeknou:

Číst dál

Odkaz je přehrávač

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

Vložení videa obvykle vypadá takhle. Otevřeš platformu, klikneš na Sdílet, klikneš na Vložit, zkopíruješ chuchvalec HTML, který ti podá, a vložíš ho do příspěvku. Co jsi právě založil do vlastního archivu, je cizí značkování: iframe, někdy skript, pár sledovacích parametrů a jméno třídy z designového systému, který nepoužíváš. A když platforma změní cestu k vložení – a to dělají – rozbije se každý příspěvek, který jsi kdy takhle napsal, v jedno odpoledne.

Tady vložíš adresu, kterou bys poslal kamarádovi.

Dva z nich, a opravdu hrají

Video s popiskem:

Číst dál