Ago 11

HTMLTemplateProRenderer, un modulo di templating per Mojolicious

Share
Tempo di lettura: 2 min

perl codePer creare siti web il linguaggio di "programmazione" si chiama HTML ma questo permette di scrivere solo pagine statiche nel senso di pagine che non cambiano il contenuto nel tempo a meno che qualcuno non vada a mano a cambiare il codice HTML.

Per creare siti che cambiano dinamicamente il loro contenuto è necessario integrare l'HTML con un "programma" che, eseguito ogni volta che qualcuno richiama la pagina, genera l'HTML di volta in volta creando nuovi contenuti.

Ma per lasciare separato il ruolo del programmatore da quello che scrive pagina HTML esistono dei sistemi, detti Template, per cui viene creata una pagina HTML "scheletro" su cui, di volta in volta, il programma inserisce i contenuti dinamici.

Diciamo che voglio visualizzare in una pagina la temperatura all'esterno. Possiamo scrivere una cosa tipo:

"Ciao. In questo momento fuori ci sono xxx gradi"

e dare questo in pasto ad un programma che sostituisce al segnaposto "xxx" il valore attuale preso in qualche modo di modo che, ogni volta che qualcuno chiama questa pagina web, il programma prende il template che abbiamo scritto sopra, si ricava la temperatura esterna da un qualche apparato, mette il valore al posto delle "xxx" e ritorna il testo completo al browser dell'utente.

Qualche anno fa avevo contribuito alla scrittura di alcuni pezzi per il sistema di templating HTML::Template::Pro

HTP_Authorse creato un'estensione modulare a plugin per questo modulo chiamata HTML::Template::Pro::Extension.

Questi moduli permettono di usare dei segnaposto tipo %nome%, %cognome%, %temperatura% che poi vengono sostituite con i relativi valori reali passati dal programma.

Dato che in questa torrida estate mi sto divertendo un po' a giocherellare con Mojolicious, un framework per applicazioni web in tempo reale che ovviamente ha un suo sistema di templating per integrare codice HTML e codice generato dinamicamente, mi sono detto, perchè non creare un modulo per integrare Mojolicious con HTML::Template::Pro e ::::::Extension?

E cosi è nato Mojolicious::Plugin::HTMLTemplateProRenderer che integra appunto in Mojolicious questi due sistemi di templating.

Per cui, ora è possibile scrive codice come questo

[code lang="perl"] use Mojolicious::Lite;
plugin 'HTMLTemplateProRenderer';
 
get '/hello/#cometichiami' => sub{
  my $c = shift;
  $c->render('hello', handler => 'tmpl');
}

__DATA__

@@ hello.html.tmpl
Ciao %cometichiami%
[/code]

e vedere sul browser un bel saluto 🙂

Il modulo è stato citato anche nel "What's new on CPAN" di Luglio 2014 su perltricks.