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