summaryrefslogtreecommitdiff
path: root/src/SW/sitemake/document.it.rest.txt
blob: 8f7fdb4be5c9fef67523d3e20dd549c2c241cf4e (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
===========================================
SiteMake - come veniva generato questo sito
===========================================
:Id: SW/sitemake
:CreationDate: 2003-01-31 19:03:19
:tags: software
 
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 software.
 
.. _XML: http://www.w3.org/TR/REC-xml
.. _XSLT: http://www.w3.org/TR/xslt
.. _XWeb: http://xweb.sourceforge.net
.. _`libreria Gnome XSLT`: http://xmlsoft.org/XSLT
.. __: http://www.thenautilus.net/cgit/sitemake/