Hugo, uno dei generatori di siti statici più popolari al mondo per velocità e semplicità di utilizzo e continua a rilasciare aggiornamenti costanti introducendo novità e correzioni. Oggi parleremo dell’ultimo aggiornamento [v0.141.0] rilasciato ieri che introduce qualche interessante novità come un controllo migliore nella gestione del template e generazioni di QR Code applicabile direttamente nei contenuti.
Gestione degli errori#
Come anticipato, GoHugo apporta delle modifiche per la gestione degli errori nei template, introducendo la funzione try
.
Questa nuova funzionalità permette agli sviluppatori web di prevenire errori critici che possono interrompere il rendering dei contenuti.
Si ma in che modo? Hanno reso il funzionamento veramente semplice ma efficace. Utilizzando try
puoi isolare le operazioni potenzialmente problematiche e definire un comportamento in caso di errori. Ad esempio, invece di interrompere l’esecuzione del template, puoi fornire un output alternativo o un messaggio personalizzato.
Vantaggi#
I vantaggi con l’aggiornamento di Hugo alla versione v0.141.0 sono molteplici. Ecco una breve panoramica:
- Maggiore stabilità: il sito non si blocca in caso di errori, garantendo un’esperienza utente più fluida.
- Debug più semplice: identificazione degli errori semplificata
- Flessibilità: consente di gestire casi specifici senza compromettere l’intero progetto.
Manipolazione delle immagini#
Con la versione v0.141.0, Hugo introduce importanti novità nella manipolazione delle immagini offrendo la possibilità agli utenti di ottenere effetti visivi accattivanti senza la necessità di utilizzo di strumenti esterni per l’editing grafico. Ma vediamo nel dettaglio di cosa si tratta:
- Images.Mask: Funzione che permette di applicare maschere alle immagini direttamente dal template.
defaultImage := resources.Get "images/default.jpg"
maskedImage := defaultImage.Mask "images/mask.png"
maskedImage.RelPermalink
In questo esempio, il file default.jpg
viene modificato applicando una maschera contenuta in mask.png
.
- Images.QR: Funzione che permette di generare QR Code direttamente nei contenuti. Utilissimo quando si deve lavorare in progetti con elementi interattivi come pagine eventi, promozioni o integrazione con app mobile. Ad esempio, se volessimo un QR COde che punta ad un URL specifico possiamo utilizzare questo codice:
qrCode := resources.QR "https://example.com" { "Level": "H", "Size": 256 }
qrCode.RelPermalink
Il metodo resources.QR
genera un QR Code con un alto livello di correzione degli errori (“Level”: “H”) e una dimensione di 256x256 pixel.
- Funzione
alignx
inimages.Text
ti permette di specificare l’allineamento orizzontale del testo nelle immagini.
textImage := resources.Get "images/sample.jpg"
alignedImage := textImage.Text {
"Text": "Esempio di Testo",
"AlignX": "center",
"Color": "#ffffff",
"BackgroundColor": "#000000"
}
alignedImage.RelPermalink
Miglioramenti e ottimizzazioni Hugo#
Con il nuovo aggiornamento, lo shortcode twitter
è stato deprecato.
Questo per favorire l’utilizzo di uno shortcode generico e più visibile: embed
. Ha una maggiore flessibilità, supporto dei tweet, supporto di contenuti multimediali come video, post di altre piattaforme social e contenuti esterni perfettamente integrabili.
Ottimizzazione per le Collezioni#
Ottimizzate le funzioni where
, sort
e merge
.
I benchmark mostrano che una query complessa che utilizza where
e sort
ora sono del 30% più veloci
- Tempi di build ridotti
- Eseguire query complesse in modo più efficente
- Caricamenti più rapidi e miglior esperienza utente
Risolta compatibilità con TailwindCSS v4#
DOpo varie segnalazioni da parte degli utenti, sui conflitti che riscontravano nell’utilizzo del comando NPX
(Node Package Executor), che impediva il corretto funzionamento tra Hugo e TailwindCSS. Con questo aggiornamento il problema è stato risolto.
Template 404#
Un altro miglioramento significativo riguarda il comportamento del server di sviluppo, in particolare quando vengono effettuati cambiamenti al template di errore 404. Prima dell’aggiornamento, il server di sviluppo non riusciva a rilevare correttamente queste modifiche, costringendo a riavviare manualmente il server per applicare le modifiche.
Ora invece il server riconosce automaticamente i cambiamenti nel template 404 e permette una gestione più fluida.
Correzioni minori#
Oltre alle modifiche principali di cui abbiamo parlato, hanno risolto altri piccoli bug come:
- Commenti e documentazione migliorata
- Risolti i conflitti nelle risorse del branch
- Ottimizzazione del rendering
Gestione dei progetti dopo gli aggiornamenti#
Questo aggiornamento potrebbe influire sui tuoi progetti esistenti, soprattutto se si parla della gestione degli errori. Poichè è stata eliminata la funzione Resource.Err
e viene sostituita da try
{{ $image := .Resources.GetMatch "image.jpg" }}
{{ $validImage := try $image "default.jpg" }}
Resource.Err
Conclusione#
Hugo si dimostra essere ancora una volta uno degli strumenti più potenti e versatili per lo sviluppo di siti web statici, dimostrando di saper ascoltare la community e nel facilitare il lavoro di noi sviluppatori. Questi cambiamenti non solo aiutano a semplificare il codice ma offre un maggior controllo senza compromettere l’efficienza del sito, rendendolo ancora più veloce.
Link Utili#
- Elenco completo delle modifiche visita il changelog ufficiale di Hugo
- Documentazione Hugo
- Pagina ufficiale Functions Hugo
- Come installare Hugo