Generatore Web ============== Le motivazioni -------------- Da quando ho scoperto `XML`_ e `XSLT`_, ho cercato un modo semplice e comodo per gestire in maniera del tutto separata contenuto e presentazione. All'inizio usavo `XWeb`_, ottimo programma, ma con alcuni difetti: * è scritto in Java (OK, OK, questa è una questione personale...) * "trucca" i file per aggiungervi informazioni (di navigazione), e io pensavo non fosse necessario * non ha (aveva?) funzionalità di controllo dipendenze (tipo make) Poco dopo la versione 0.3 ho perso la sincronizzazione con la codebase ufficiale a causa di qualche mia modifica al codice, e non ne ho più seguiti gli sviluppi. Dato l'ottimo livello di correttezza raggiunto dalla `libreria Gnome XSLT`_, ho deciso di vedere se fosse possibile usare soltanto xsltproc e make per ottenere gli stessi effetti. Ho quindi sviluppato un DTD per descrivere la struttura del sito, uno stylesheet per convertire questa struttura in un makefile, e ho ritoccato gli stylesheet per adeguarli alle modifiche. Funzionamento ------------- Data una descrizione della struttura del sito, nel file sitemap.xml, lo stylesheet compile.xsl genera un Makefile contenente le istruzioni per la trasformazione di tutte le pagine, e i loro prerequisiti. In questo modo, chiamando make vengono rigenerati soltanto i file i cui sorgenti sono stati effettivamente modificati. Inoltre, ad ogni stylesheet vengono passati implicitamente due parametri: sitemapuri che indica la URI della sitemap relativa allo stylesheet, e active che è un'espressione XPath che identifica, dentro la sitemap, il nodo corrispondente alla pagina che si sta trasformando. In questo modo gli stylesheet possono accedere a tutte le informazioni di navigazione utili. Potete consultare i sorgenti del sito. .. _`xml`: http://www.w3.org/TR/REC-xml .. _`libreria gnome xslt`: http://xmlsoft.org/XSLT .. _`xweb`: http://xweb.sourceforge.net .. _`xslt`: http://www.w3.org/TR/xslt