summaryrefslogtreecommitdiff
path: root/sitemake/document.it.rest.txt
blob: dd842b352b680b3c5a3f9a4d0c65a500867cbe2b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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