Templ è un linguaggio di templating HTML progettato per sviluppare interfacce utente in Go. Offre infatti degli strumenti avanzati per il coding e ha l'obbiettivo di semplificare la creazione di componenti UI mantenendo la tipizzazione e le funzionalità del linguaggio Go.
Cosa puoi fare con Templ
Templ consente di scrivere delle componenti UI utilizzando la sintassi di Go e permette di sfruttare le potenzialità del linguaggio senza dover apprendere nuove sintassi. Supporta inoltre i più popolari ambienti di sviluppo integrati (o IDE) attraverso LSP (Language Server Protocol) in modo da fornire funzionalità per la programmazione come il completamento del codice, il code browsing e il code refactoring.
I linguaggio facilita il rendering delle interfacce utente lato server con un vantaggio per le prestazioni, vi è poi la compatibilità completa con HTMX che permette di sviluppare applicazioni web interattive senza la necessità di scrivere codice JavaScript.
Templ può essere integrati con vari framework di sviluppo basati su Go, come per esempio Echo. Per utilizzarlo con quest'ultimo è possibile definire i componenti UI in file con estensione .templ
e poi configurarli nel proprio server Echo per il rendering delle pagine Web.
Il deply può essere effettuato come funzione serverless, tramite un container Docker o addirittura come programma Go standard. È supportata la creazione di file HTML statici e i componenti vengono compilati direttamente in codice Go. Questo significa che si possono utilizzare componenti standard di questo linguaggio come per esempio if
, switch
e for
.
Come anticipato non è richiesto alcun codice JavaScript lato client, quindi gli output generati risulteranno puliti e facili da modificare.
Gli ultimi aggiornamenti del linguaggio
Ad oggi il progetto è mantenuto attivamente con aggiornamenti regolari che introducono di continuo nuove funzionalità e miglioramenti. La versione v0.2.793, rilasciata il 30 ottobre 2024, ha incluso ad esempio degli interventi dedicati al supporto per LSP e nuove funzionalità per il rendering lato server .