Date: 2023-07-07 22:46:44
From: rpt@desudoli.cz
Subject: Reboot
To: dalnopis@desudoli.cz
Tags:
software
internet
OpenBSD
psaní
Desc: Návrat k webovému fundamentalismu.
Reboot
Kolega z triapul.cz mne nápadně i nenápadně ponoukal, abych kontrarevoluční myšlenku dovedl k jejímu logickému závěru, kompletní autarkii.
Byl jsem s předešlou verzí svého webu i blogu, inspirovanou Tufteho desingem, poměrně spokojen. O výhodách a nevýhodách jsem psal zde:
Večer strávený diskuzí na IRC a nějaké další materiály kolegou ochotně poskytnuté mě přesvědčily, že vytvořit vlastní skripty na generování jednoduchého blogu nebude zas tak obtížný úkol.
Výsledek vidíte před sebou.
Jednoduchost
First things first! Bylo evidentní, že vše bude třeba podřídit principu jednoduchosti. Obojí, stavba blogu i jeho vizuál, musí být jednoduché, aby i skript na jeho generování byl jednoduchý. Rezignoval jsem tedy na předchozí úvahy o velkém počtu blogpostů a vytvořil jsem dva archivy či indexy, chcete-li: index blogpostů a index tagů odkazující na dílčí seznamy blogpostů s příslušným tagem.
Pokud jde o vizuální stránku blogu, soubor CSS doznal značného zjednodušení. Volbu fontu nyní nechávám na prohlížeči a doporučuju čtenářům, aby si nastavili serifový, bezserifový i monospace font a jejich velikost dle svého gusta. Narozdíl od kolegy z triapul.cz nejsem fixovaný na bitmapovou estetiku, i když současná forma jeho webu kombinující vzhled strojopisu s bitmapovým obrazovým doprovodem dosáhla stupně čistoty a dokonalosti, který dlouho hledal, stále nespokojen.
Mým záměrem bylo ponechat vzhled co nejblíž čistému HTML bez kaskádových stylů. CSS je F&G.
Markup
Psát v HTML není jednoduché, ani úsporné. Zvažoval jsem přednastavení často používaných HTML tagů v konfiguraci nvi editoru, ale nakonec jsem tuto myšlenku zavrhl.
Kolega z triapul.cz už měl napsaný skript na konverzi jednoduchého markupu založeného na Gemini, který mi velkoryse poskytl. Vynikající odrazový můstek pro další experimentování!
Je zřejmé, že lidé, co stojí za projektem Gemini, věnovali diskuzi o vhodném markupu pro protokol Gemini hodně času. Výsledek, jenž lze krátce popsat jako ještě jednodušší markdown, je hoden následování, alespoň v principu. Podobně jako Gemini, musel jsem i já redukovat sémantické prvky HTML na minimum. Nicméně minimalismus Gemini je pro mne nedosažitelný díky způsobu, jakým píšu. Nebylo by ono obejít se bez marginálií a kurzívy. Na druhou stranu odkazy nyní dávám na samostatné řádky, podobně jako Gemini. Nebylo to striktně nutné, proto je možné to brát jako vzdání povinné úcty projektu, z něhož jsem čerpal inspiraci.
Sémanticky používám odstavce, citace, tři úrovně titulku, marginálie, odkazy, jednoduchý seznam nečíslovaný i číslovaný, zdrojový kód jako blok a inline, kurzívu a obrázek.
Syntakticky můj markup vychází z troff a info. Používá pouze
konstrukce typu blok, a to i pro inline prvky jako kurzíva
<em>
nebo zdrojový kód
<code>
.
Tato volba vycházející z požadavku jednoduchosti přináší jistá
omezení, zejména nelze libovolně vnořovat. V XML, z něhož HTML
vychází, není vnořování problém.
Když jsem uvažoval o markupu z tohoto úhlu pohledu, zjistil jsem, že existují tři typy sémantických prvků:
- běžný odstavec,
- řádkový odstavec,
- vnořený odstavec.
Příkladem řádkového odstavce je seznam nebo báseň. Příkladem vnořených odstavců je třeba více odstavcová citace nebo marginálie. Bylo zřejmé, že se vnořeným odstavcům nelze zcela vyhnout, ale na druhou stranu nelze dovolit víc než jednu vnořenou úroveň.
Jen tak lze zůstat u blokové, tedy v podstatě odstavcové syntaxe. To znamená maximálně podřídit syntax unixovské práci s textem, tedy po řádkách.
Výsledný skript má necelých 200 řádků, a to obsahuje ještě nahrazení mezer u jednoznakových předložek nezlomitelnými mezerami a převod z Unicode do ASCII.
Při psaní musím dodržovat určitá pravidla, ale výsledný text je poměrně čitelný. Není jednodušší než markdown, ale rozhodně mnohem lepší než HTML. Je možné, že v budoucnu ještě budu řešit nějaké hraniční případy, ale zdá se, že pro valnou část mých textů bude tento markup zcela dostačující.
Tagy
Konverze do HTML, jejímž výsledkem je pouhý obsah bez hlavičky a patičky, zároveň vytváří seznam tagů vyčtených z metadat TXT souboru. Jde v podstatě o soubor CSV, z něhož další skript generuje jednotlivé seznamy článků obsahujících daný tag. A ještě další skript má na svědomí seznam tagů s příslušnými odkazy. Za tím účelem si dělá interní seznam ls(1) právě vygenerovaných tagových souborů, odkud vytahuje přístušné informace.
Atom
Soubor Atom pro odebírání novinek, což je v podstatě XML, vytváří další skript, procházející zdrojových TXT souborů a jejich metadata. Jednoduché, rychlé, účinné. Trochu škoda, že moderní weby tento mechanismus nepodporují. Sběr cizích emailů má zřejmě prioritu.
Zdroje
Mimo blog doznala největších změn stránka Zdroje, což je v podstatě ukecanější blogroll. Došlo k jeho aktualizaci v souladu s mým momentálním chápáním událostí ve světě.
Svoboda
Jednou z věcí, která mě dlouho hnětla na řešení založeném na sblg(1), byla nutnost „ohnout“ tento program, aby generoval stránky způsobem, který jsem chtěl, a výsledek ještě „doladit“ skriptem.
Proč používat nástroj, který nedělá, co potřebuju? Proč nevyužít jako nástroj samotný operační systém, když obsahuje celý ekosystém programů pro práci s textem a celá unixovská koncepce směřuje k tomuto cíli? Alespoň není potřeba začínat na zelené louce.
Někoho možná omezuje, že nemá milion již hotových možností poskytovaných komplikovaným nástrojem třetích stran. Ale jde to i jinak! Podřídím-li své požadavky určitým limitům, odměnou je mi naprostá kontrola nad výsledkem.
Populární mem využívání pouze základní instalace OpenBSD, kdekoliv a kdykoliv je to možné, nakonec zvítězil i v mé hlavě, která to chápe jako určitou formu křesťanského umrtvování v oblasti IT. Nazvěme to technoasketismus. Záměrné tlumení nižších vášní zaměřených na opulentní softwarová řešení s „intuitivním“ ovládáním, okupující HDD, RAM i procesor falešnými sliby pohodlí a snadnosti.
Do budoucna
Kdo ví, co bude za půl roku!
Zatím však není vše ani z daleka hotové. Konverze blogpostů bude postupovat pomalu. Čeká mě obnova zbylých sekcí webu. Chtěl bych přidat novou sekci Download, kam přijdou materiály ke stažení. Pozornost budou také potřebovat servery gopher a gemini.
EOF