Šest věcí navíc
Prvního srpna jsem vypustil ./blog.sh do světa a hned druhý den vyšla první oprava. V následujících dnech jsem pak pracoval na věcech, co jsem celou dobu odkládal — na věcech, které jsem si při psaní tohohle webu přál mít a nikdy nebyl čas je udělat. Je z toho verze 1.1: dvacet jedna commitů, dva a půl tisíce nových řádků, šest nových věcí.
Běží tady. Vydané to ještě není, na to to chce ještě projít dokumentaci a pustit regresi nad ostrými daty, ale všechno, co je popsané v tomhle článku, už na tomhle webu funguje.
Připnutý příspěvek
Do hlavičky příspěvku se napíše pinned: true a jeho kopie se drží nahoře na první stránce. Jen tam. Archiv, štítky, typy, RSS ani sitemapa se nehnou — zůstávají přísně chronologické.
To omezení je celý ten návrh. Připnutí je výrok o titulní straně, o tom, co má vidět člověk, který sem přijde poprvé. Není to výrok o pořadí věcí v čase. Kdyby se připnutý příspěvek přesouval i v archivu, přepisoval bych tím historii kvůli něčemu, co je ze své podstaty dočasné. Takže se nepřesouvá: dokud je příspěvek ještě na první stránce sám za sebe, je tam právě jednou. Až sjede na druhou, objeví se na obou — nahoře na první jako připnutý a na druhé na svém chronologickém místě.
Vedlejším potěšujícím efektem je, že kotvené stránkování zůstalo nedotčené, takže připnout nebo odepnout příspěvek stojí při nasazení jeden až dva soubory. Ne přečíslování celého archivu. A že je post na titulní stránku připnut poznáte podle malého špendlíku v rohu datového odznáčku — používá tu samou dvojici barev, do které se odznáček převrací pod myší, takže drží ve světlém i tmavém režimu a v jakékoliv paletě, aniž by se pro ni musela vymýšlet zvlášť.
Publikační sloty
Do konfigurace se napíše, kdy obvykle publikuju. U mě úterý, čtvrtek a neděle v půl šesté odpoledne a sobota v půl deváté ráno. Od té chvíle plánovač sám nabídne nejbližší volný termín, který si nezabral jiný naplánovaný příspěvek.
Vzniklo to z jednoho konkrétního večera, kdy jsem napsal tři příspěvky za sebou a pak seděl nad otázkou, na kdy je naplánovat, aby nevypadly ven naráz. Ta otázka má pokaždé stejnou odpověď a počítač si ji umí spočítat sám. Tři drafty napsané v jeden večer teď vyjdou ve třech po sobě jdoucích termínech, aniž bych u toho cokoliv počítal.
Podstatné je, co sloty nedělají: jenom nabízejí. Vlastní datum je vždycky přebije. Příspěvek naplánovaný ručně na 14:17 nikomu nic neblokuje. A nic nikdy nepřesune příspěvek, který už svůj čas má. Kdo si sloty nenastaví, dostane přesně tu otázku, co dřív — tohle je funkce, kterou si člověk zapne, ne kterou musí obcházet.
Příspěvek může nést soubor
Řádek, na kterém není nic než \[Příručka\](prirucka.pdf) s holým jménem souboru, je příloha. Je to stejné pravidlo, jaké tu už bylo pro fotky: holé jméno na vlastním řádku znamená „tenhle soubor patří k příspěvku", zatímco cokoliv s adresou zůstává odkazem. Soubor přiletí přes stejnou složku, kterou sem posílám fotky z telefonu, a uloží se k příspěvku.
Vykreslí se jako karta se jménem, příponou a velikostí. Ta velikost tam je schválně a je to jediná věc, na které jsem u téhle funkce trval: odkaz ke stažení má napřed říct, co stojí. Dvacetimegabajtové PDF je legitimní příloha, ale ne když se o něm člověk dozví až z průběhu stahování na mobilních datech.
Krátký text plus soubor navíc dělá příspěvek typu dokument — a protože menu ukazuje jen ty typy, které web skutečně má, DOKUMENTY se v něm objeví samy s tím prvním. K příloze patří i jedna nová hranice: soubor přes sto megabajtů se odmítne, a to už při ukládání příspěvku, kdy s tím ještě můžu něco udělat, ne až při nasazení. Ten limit je jeden pro všechny způsoby nasazení schválně, i když by některé unesly víc. Web se má dát přestěhovat, takže příspěvek, který dneska projde tady, nesmí rozbít nasazení v den, kdy se web přesune jinam.
Jeden dialog na vlastnosti a akce
./blog.sh props ukáže u jednoho příspěvku všechno, co o něm platí — stav, typ, štítky, připnutí, oznámení — a nabídne k tomu akce: publikovat, naplánovat, stáhnout z webu, oznámit znovu, připnout, přejmenovat, smazat.
Rozdělení mezi tím, co je vlastnost, a tím, co je akce, je tu záměrné a docela jsem se u něj zdržel. Vlastnosti se pořád píšou v hlavičce příspěvku při úpravě, kde se předvyplní tím, co platí teď. Akce se dělají v dialogu, protože každá z nich něco udělá se světem venku — pošle oznámení, sundá stránku z webu, přesune adresu. Ty dvě věci si nezaslouží stejné dveře. Jediná výjimka je připnutí: je to přepínač, ne hodnota, takže se překlápí rovnou v dialogu, i když cesta přes hlavičku funguje dál.
Vedlejším produktem je, že hlavní menu průvodce se zkrátilo na pět položek. Publikování, plánování, stažení, mazání i oznámení z něj zmizely — člověk se k nim dostane přes příspěvek, kterého se týkají, což je stejně to, jak o nich přemýšlí. A ještě jedna maličkost, na kterou jsem si dupl: prostý draft v tom přehledu nemá u sebe žádný čas. Draft je draft, jakýkoliv čas je u něj mimo mísu. Čas vzniká publikací nebo naplánováním, ne psaním.
Adresu jde změnit, aniž se rozbije odkaz
Přejmenování příspěvku si každou starou adresu zapíše do něj samotného a build pak na každé z nich nechá stát jednostránkové přesměrování. Odkaz ve dva roky starém tootu tím pádem pořád vede, kam má.
Tohle byla dlouho zaparkovaná věc a parkovala právem — dokud jsem neměl přesměrování, byla změna adresy prostě rozbití internetu a nechtěl jsem k ní dávat pohodlné tlačítko. Teď to jde, ale zůstalo to hlídanou akcí, ne položkou v seznamu vlastností. Přesměrování navíc žijí a umírají s příspěvkem: když ho stáhnu z webu, zmizí s ním, když ho vrátím, vrátí se taky. A do sitemapy, RSS ani do vyhledávání se nedostanou, protože to nejsou stránky, to jsou jen ukazatele.
Fotky z iPhonu
HEIC, výchozí formát fotek z iPhonu, se otevře v Safari a prakticky nikde jinde. Přiložení takové fotky se proto zastaví a vypíše přesný převodní příkaz pro ten stroj, na kterém zrovna jste — soubor zůstane ležet, kde byl. Kdo ale chce, zapne si automatický převod a engine si poradí tím nástrojem, který na stroji najde.
Formát se pozná podle obsahu, ne podle přípony. HEIC přejmenovaný na .jpg tedy neprojde taky — a to není teoretická situace, přesně tohle udělá pár programů při „exportu do JPEG", který ve skutečnosti jen přepíše koncovku.
A ještě spousta oprav
Kromě toho je ve verzi spousta oprav. Nejraději mám tu, u které jsem zjistil, že pojistky proti tomu, aby rozbitý build smazal půlku webu — ty, o kterých jsem před pár dny psal jako o funkci, která tenhle web chrání — se daly tiše a natrvalo vypnout jedním trvale selhávajícím nasazením. Teď se nedají. Zbytek je v changelogu.
Co dál?
Vydat. Pak mám na stole převod videí z iPhonu, vkládané přehrávače z dalších platforem než YouTube a jednu drobnost, která mě štve nejvíc: když se ukládání příspěvku přeruší, engine text neztratí a napíše, kam ho odložil — ale zpátky do editoru si ho musím nakopírovat ručně. To chci mít hotové dřív než cokoliv nového.
Tak asi tak...d8-D

Komentáře