Per costruire questo sito ho scelto di usare org-mode, quindi Emacs, per la stesura dei contenuti e Hugo per trasformarli nel sito web vero e proprio. Non mi interessa molto l'estetica; ho scelto PaperMod come tema perché è carino ed è sviluppato da una community abbastanza grande da restare probabilmente attiva per qualche anno. Siccome non vendo prodotti, non ho alcun interesse a investire maggior tempo nella costruzione di quello che, dal mio punto di vista, è solo un mezzo, un veicolo per il testo che voglio condividere. Tuttavia, questo articolo non è solo una spiegazione di questo piccolo tassello del mio stack software, che descriverò gradualmente in vari post, ma è anche una dimostrazione di come si possa creare e gestire un sito personale esteticamente gradevole (secondo me) con pochissimo sforzo.
I ferri del mestiere
Hugo è un'app Go/CLI, ovvero è facilmente go install-abile senza particolari problemi su ogni distro (ed è in genere già impacchettato da quasi ogni distro centrata sul desktop). Il grosso dei temi usa (sigh) Node.js ma anche lui come Hugo ha una vasta community dietro, un package manager interno ed è largamente supportato dal grosso delle distro. Quindi è qualcosa che si può installare system-wide in ogni distro senza problemi ed anche tener in un cantuccio della propria home senz'altro se si preferisce così. Hugo serve a creare il sito web a partire dal contenuto testuale scritto dall'umano (sperabilmente) per altri umani, crea l'HTML, CSS, js ecc che si può piazzare in una directory e farla servire dall'webserver che si vuole.
Org-mode non è solo un linguaggio di markup più carino di Markdown, è un ecosistema gigante che permette di far di tutto, gestire il testo e dati anche binari come si vuole senza frizione, senza problemi di integrazione. È renderizzato live, permette di eseguire codice nel testo in una pletora di linguaggi, creare TODOs che formano poi un'agenda, allegare files, ed n altre cose, tutto in org-mode, tutto in testo semplice. Ora il grosso di queste funzionalità in effetti per far un blog non serve, ma serve a organizzare la propria informazione, la propria vita digitale, integrando in questa anche il proprio sito. Niente frizione, niente context-switch, semplicemente alcune delle proprie note sono il proprio sito, altre sono altra informazione personale. Nessuna configurazione extra necessaria, creo post giusto cliccando su un link che è una sexp elisp, nella mia nota del giorno.
Emacs è la base di quanto sopra, l'ambiente operativo, e questo solo perché non posso chiamarlo sistema operativo non avendo una LispM, non sono più sviluppate, mi serve qualcosa sotto quale bootloader per Emacs, un bootloader un po' grossino. Emacs di suo è tutto fuorché semplice ma semplifica la vita in maniere che chi non l'ha mai usato non può neppure immaginare.
Provate giusto a guardar questi video per farvi un'idea:
- LispM 3D Demo ~1992 si Emacs era il sistema operativo delle LispM
- Emacs in action M-x Calc, LaTex + org-mode tutto integrato
- Literate DevOps o come amministrare l'Ops nel DevOps
- Altro esempio, più lato Dev e sviluppo web, merita davvero.
Ci sarebbe da scrivere un'intera enciclopedia, qui mi limito a spiegare perché ho scelto questo stack e perché consiglio una scelta simile a chiunque voglia un sito personale e più in generale, a chiunque desideri un computer desktop FLOSS che sia davvero suo e che sia al suo servizio, invece di essere usato come una macchina dove l'utente è poco più di un braccio operativo che può controllare la macchina solo in parte tramite ciò che chi l'ha creata ha previsto per lui.
conclusions
Questo post è giusto l'avvio del mio nuovo blog, idealmente serve a stuzzicare l'appetito mostrando qualcosa che penso possa interessare altri, spiegando a grandi linee come funziona e poi pian piano con moooolta calma dettagliando un componente alla volta, il tutto per farsi la propria casa digitale, padroni nel proprio spicchietto di terra, in una società dove l'web è la faccia pubblica personale, il perimetro del proprio immobile, col cancello ed il numero civico.
Così da incuriosirsi e decidere con un minimo di base se si è interessati, anziché trovarsi davanti documentazione eccessivamente dettagliata senza una visione d'insieme o solo showcases senza i dettagli necessari per poterli replicare modellati a proprio gusto in casa propria.