A Ovest Di Paperino

Welcome to the dark side.

Hugo

Storia dell’ultima migrazione di piattaforma. Solo qualche giorno fa ero abbastanza soddisfatto della soluzione basata su Jekyll. In uno slancio di ottimismo mi son spinto a dire:

Speriamo di non dover pensare all’obsolescenza un’altra volta prima dei prossimi dieci anni. Ecco dieci anni sarebbe una misura giusta per rivedere magari un po’ di cose.

Ed invece.

Premessa: mi ero erroneamente convinto che GitHub Pages (GP d’ora in poi) fosse una soluzione più unica che rara. Poi mi son scontrato con un problema con la paginazione delle categorie. Oddio, neanche il supporto per le categorie è stato indolore: ho cominciato seriamente ad irritarmi in quanto ho “comprato” Jekyll con la promessa di un tool che fosse, parole loro, Simple, blog-aware, static sites.

Scopro che la versione 2 del plugin di paginazione fa questo e quell’altro, incluso generare pagine al volo per le categorie ma github pages supporta solo la versione 1. Chiedo lumi su chi bisogna corrompere per avere il supporto nativo di tale versione in GP. Mi dicono che quelli di GP non si fidano dei plugin scritti da terze parti, persino le skin son guardate con sospetto, ecc. ecc. Mi consigliano di guardare Netlify, prodotto simile a GP con supporto nativo di GitHub e massima libertà coi plugin disponibili. Fatto questo, ho sistemato il forum sfruttando l’idea di generare un post tramite le API di GitHub usando un’istanza Google Cloud. Però il dover attendere svariati minuti per un cambio di virgola o l’upload di contenuto statico che non ha nessun impatto sui file generati mi ha fatto nascere qualche sospetto. Mi son chiesto se ci fosse un flag, un qualcosa che generasse il tutto in maniera incrementale e son finito su un baco in cui si discuteva del tutto come di qualcosa di dannatamente complicato.

Il fatto che un prodotto che dovrebbe essere orientato alla generazione dei siti statici, che in full mode ci mette svariati minuti per qualcosa come poche decine di post e al tempo stesso non è stato disegnato con un meccanismo di rigenerazione un pelino più sveglio della mera forza bruta non la dice bene sulla qualità dello stesso.

Sapevo dell’esistenza di Hugo, scartato inizialmente solo perché non supportato da GP, e mi son dato un’altra occhiata. Ho fatto una piccola prova e sono rimasto allucinato. Ho deciso di “importare” i contenuti da Jekyll tramite l’apposita feature e il tutto ci ha messo meno di qualche secondo dandomi l’impressione che qualcosa fosse andato storto. Lancio il server builtin sul mio PC al lavoro che è abbastanza muscoloso e in tutto passano 222 millisecondi. Incredulo ho fatto diverse prove e niente. L’unica pecca è che Hugo non ha, a differenza di Jekyll, un tema di default e ho dovuto pescare un po’ a caso. Però… wow. Supporto nativo di tutto quello che serve ad un blog:

  • tassonomie
  • post postumi e con scadenza
  • paginazione nativa
  • auto-generazione di liste
  • ricchi premi e cotillon

In una mattinata ho importato tutti i post in automatico, importato le pagine a manina, sistemato il layout delle pagine particolari e pumm! Online.

In tutto questo ho solo dovuto faticare un po’ con:

  • la configurazione del feed RSS che di default include tutti i contenuti e quindi anche pagine, forum post, ecc.
  • la disabilitazione di alcune feature (es. il reading time; link a post precedente-successivo; ecc.) in maniera selettiva
  • capire a quale file di layout corrisponda una determinata pagina, roba secondo me inutilmente complicata

Tuttavia niente che non abbia risolto grazie a qualche ricerca su Google.

L’unica pecca di tutto l’ambaradan è il fatto che mentre la generazione via Hugo è superveloce, Netlify impiega svariati secondi nella fase di post-processing e pubblicazione. Credo che sia una feature intenzionale disattivabile solo con account premium e nel caso c’est la vie.

Last but not least: essendo Go un linguaggio compilato, per installare HuGo non c’è bisogno di installare il runtime di Go, a differenza di Jekyll che tra linguaggio e librerie è un po’ espansivo. Però non voglio pensare che il peso delle prestazioni orribili sia dovuto solo al linguaggio scelto.

In tutto questo va riconosciuto a Tom Preston-Werner, fondatore di GitHub e autore di Jekyll, il merito di aver lanciato al pubblico più vasto l’idea di un generatore statico di website.

-quack

P.S. la prossima volta starò più attento al fatto che, nella soluzione proposta con enfasi da qualcuno, ci possa essere il sospetto di bias dovuto al Muslow’s Hammer.