Malý experiment v minimalismu aneb jak z minima vytěžit maximum. Cvičení ve využívání unixovských nástrojů.
Přestal se mi líbit původní vzhled tohoto webu. Začal jsem proto experimentovat s fonty a skončilo to u dalšího přechodu na nový nástroj (či nástroje) pro tvorbu webu. Letos už druhá změna. Doufám, že poslední. Původní blog jsem generoval pomocí sblg(1), později jsem přešel na Pollen.
Programátor na baterky
Pollen stojí na principu, že kniha je program. Program vyžaduje programovací jazyk a tím je v případě Pollenu již zmíněný Racket. Není to nadměrně složitý jazyk, ale moje lenost a nedostatek času mi brání proniknout hlouběji do jeho tajů. Pollen je velice flexibilní, ale pro mé skromné účely je kompletní programovací jazyk zbytečný luxus. Je to nikoliv nezbytná nadstavba, protože všechny nástroje, které k tvorbě jednoduchého webu potřebuju, obsahuje přímo operační systém. Navíc instalace Racketu zabere poměrně dost místa na disku a další nevýhody zmíněné v blogpostu o Pollenu. V neposlední řadě mě také mírně iritovala nízká rychlost, s jakou se stránky generovaly. S tím by si patrně poradila optimalizace kódu, na kterou jsem ale neměl kapacitu.
Takže s nechutí učit se Racket ve současně rostla chuť zaexperimentovat se shellovými skripty. Používám unixovský operační systém, kde jsou shell (konkrétně ksh) a jednoduché nástroje pro manipulaci s textem (např. sed(1)) součástí základní instalace. Psaní skriptů, kde lze funkce těchto nástrojů řetězit, je jádro filozofie Unixu. Proč toho nevyužít?
OpenBSD
Tím unixovský operačním systémem je OpenBSD. Nedávno vyšla nová verze 6.6 a tak jsem nelenil a přeinstaloval svůj starý netbook od Samsungu. Není to žádný rychlík:
$ sysctl hw.{machine,model,ncpu,smt,physmem}
hw.machine=amd64
hw.model=Intel(R) Atom(TM) CPU N450 @ 1.66GHz
hw.ncpu=2
hw.smt=0
hw.physmem=1046151168
Můj experiment v minimalismu se začal rýsovat konkrétněji: stařičký, slaboučký, ale stále funkční netbook, téměř čistá instalace OpenBSD, xterm(1), editor nvi, browser vimb (Firefox je pro tento netbook příliš náročný program) a jednoduchý filemanager. Žádný bloatware. Dá se s takovým strojem vytvořit a udržovat jednoduchý web? Bez problému.
Ne všechny nástroje jsou součástí základní instalace. Kromě browseru a filemanageru jsem doinstaloval ještě lowdown(1) pro převod z markdownu do HTML a stáhl Zolotarevův skript ssg5. To je vše, co je zapotřebí.
Downy a typografie
lowdown(1) je šikovný software od stejného autora jako sblg(1), které jsem používal na začátku. Umí nejen převést markdown do HTML, ale taky extrahovat hodnoty z metadat zdrojového souboru. Toho využívám při generování tagů (kategorií), navigace, hlavičky s časovou značkou apod. Moje skripty na generování těchto stránek by se bez lowdown(1) neobešly.
O markdownu už byla řeč. Je to relativně bídný značkovací jazyk, ale pro účely tohoto blogu dostačující. Zdrojový soubor je čitelnější než pollenovský, který jsem používal předtím, ale samozřejmě postrádá jeho bohaté možnosti a flexibilitu.
Opustil jsem také způsob výhradně automatického generování stránek. Ve formátu HTML není možné mít tak dokonalou kontrolu nad typografií jako např. v PDF, protože šířka řádků není pevně daná. U automaticky generovaných stránek je to ještě o něco horší. Manuálním zásahem do výsledných HTML souborů se ale dá něco zachránit, např. jednoznakové spojky a předložky na konci řádku.
Mem minimalismu do extrému
Jsem zvědav, jakým směrem se budou moje experimenty nadále ubírat. Mem minimalismu na mě má silný vliv. Příště si možná vyhrabu díru v lese a připojím se na internet ze solárně napájeného kávovaru s nainstalovaným NetBSD, což je operační systém proslulý tím, že běží snad na všech existujících platformách. Dokonce ho nainstalovali i na toaster, takže nejsem zas tak mimo realitu.
Kupředu, pravá!
Doufám, že nový kabát potěší oko čtenářovo. Snažil jsem se o konzervativní, jednoduchý a kontrastní vzhled. Volbu fontu už nenechávám na prohlížeči a tak jsem zvědav, zda budou nová písma fungovat na všech podstatných browserech. Nemám zatím otestováno.
A příště se zase zpátky k tepání levičáctví, moderny a vůbec.
UPDATE leden 2020: Přepsal jsem shellovské skripty do Perlu. Generování stránek teď probíhá automaticky, včetně stránek pro kategorie. Zbývá dopsat skript pro atomfeed, který nyní nefunguje.
Perl je na scéně desítky let a obsahuje velké množství knihoven. Některé z nich mi pomohly s problémy, které byly v rámci shellu obtížně řešitelné. Perl je součástí základní instalace OpenBSD, takže nebylo nutné nic instalovat, pouze tyto knihovny. Ukázalo se, že Perl je poměrně jednoduchý skriptovací jazyk, pro práci s textem jako stvořený.