continua (next page) Click here for helicopters Index of UNOFFICIAL Circumvesuviana Home Page main index

This is a short description of my TaToBuilder software, the page description interpreter language tool used to build with minimum hassle this site. Maybe one day I will publish its sources...
Questo sito è stato realizzato con il mio potente programma TaToBuilder, ormai a uno stadio maturo.

Le caratteristiche di questo sito

Sono state le caratteristiche che avevo stabilito per questo sito a determinare il funzionamento del programma.

  1. Dev'essere un sito stile "album", cioè in genere ad ogni pagina è associata (almeno) una immagine (generalmente JPEG), abbastanza grande da essere visualizzata su un display 800×600 (tipicamente 740×550). Nella pagina viene contenuta anche la descrizione, una possibile barra di link all'inizio ed una alla fine, più dei bottoni-link (che useranno piccole immagini JPEG, di circa 100×110 pixel) da usare in alto a destra o in alto a sinistra. Per massimizzare la velocità di rendering della pagina, nel codice HTML di ogni immagine vanno dichiarate le dimensioni esatte in pixel (così la pagina non fa continue metamorfosi ogni volta che si carica un'immagine).

  2. Ad eccezione dell'indice generale "index.html", tutti i nomi delle pagine e degli altri files (immagini, audio, etc) devono essere brevi ed unici (hashing): prevedendo che il sito possa crescere a dismisura, è indispensabile evitare l'ingolfamento dei titoli e dei link, ed occorre automatizzare l'aggiornamento dei link. Il software deve anche verificare che tutti i link corrispondano (nessun "dead link"), che tutte le immagini disponibili siano effettivamente utilizzate (nessun byte sprecato sul server), che tutti i link dichiarati verso siti esterni siano utilizzati almeno una volta (questi ultimi vengono dichiarati una sola volta, e poi se ne usa il solo nome, di modo che cambiare l'indirizzo di un sito richiede la modifica in un solo punto e non in tutte le pagine dov'è stato citato).

  3. Il sito deve poter essere manipolato e ricompilato localmente, per essere poi rapidamente aggiornato (nei soli files necessari) al momento opportuno (si lavora off-line e si pubblica solo quando si è sicuri). Il software deve prevedere uno script di aggiornamento che aggiorni solo quanto necessario senza obbligare l'utente ad indicare quali pagine sono cambiate.

  4. Deve essere sfogliabile con i più elementari browser. In particolare deve funzionare perfino sotto Microsoft(C) Explorer(R) 1.5 e versioni successive (ciò significa che ordinariamente non deve contenere features come Java, Flash, etc). Chiudendo un occhio sulle dimensioni delle immagini, dev'essere sfogliabile anche dai browser di smartphone e palmari. Non deve far uso di feature HTML complesse come DIV, SPAN, fogli stile, etc. Non deve far uso di caratteri accentati, sequenze unicode, codici numerici degli ISO8859, etc (solo abbreviazioni standard: "è", etc).

  5. Il sito deve essere tutto contenuto in una sola directory, tutte pagine HTML statiche (e "cacheabili"). Qualsiasi vecchio site crawler deve poter accedere ad ogni pagina (e dunque ad ogni altro file: JPEG, MP3, etc).

  6. Ovviamente pagine validate HTML 4.01 almeno Transitional...!

Caratteristiche del software TaToBuilder.

Questo software è giunto ormai a uno stadio di maturità. Per anni l'ho considerato "beta test", ma ho continuato ad usarlo e ad aggiungervi features man mano che mi veniva l'ispirazione, senza dover mai minimamente intaccare le idee iniziali a causa delle estensioni venute su nel corso degli anni dal 2000 ad oggi. E non ho mai avuto bisogno di grosse conoscenze di HTML per svilupparlo.

Questo software dunque costruisce un intero sito (il sito che stai sfogliando in questo momento) a partire da una descrizione minimale delle pagine. Genera i nomi delle pagine e degli altri files autonomamente, nonché i link nelle pagine.

Aggiorna automaticamente il sito remoto via ftp confrontando la copia locale con le pagine appena generate, ed inviando/cancellando solo lo stretto necessario.

Il software parte leggendo due directories, una con le immagini e gli altri files (MP3, PNG, etc), l'altra con gli script di descrizione delle pagine (verrà processato per primo il file chiamato "index").

Il linguaggio di descrizione delle pagine è decisamente semplice. Prevede comandi minimali per la generazione delle pagine, per i bottoni e i link di default (per gruppi di pagine), per le descrizioni di default, anchors, etc. Prevede peraltro sequenze particolari per facilitare l'uso (per esempio "<<" viene letta come "«", mentre "e`" viene letta come "é") e un generico sistema di macro.

Si può lavorare anche su una macchina poverissima, va bene perfino un sistema Linux '386sx con 2Mb RAM e poche centinaia di kilobytes di spazio su disco. Si ricompila ovviamente senza modifiche anche su Mac OS/X di Apple, quantunque non necessiti di interfaccia grafica. Le sessioni ftp sono realizzate con script Perl o un qualsiasi programma capace di invio da command-line (come ad esempio ncftp).

Il software è scritto in un C++ molto semplice, vista la mia pigrizia e visto lo sfruttamento di vecchio codice C++ che avevo scritto nel 1995-1996 e dintorni. Non abbisogna di particolari conoscenze tecniche (e neppure la conoscenza del linguaggio HTML): per mettere su un sito è sufficiente saper maneggiare un text-editor, copiare qualche file e lanciare un programma.


Il mio appunto iniziale per la realizzazione di questo sito (che mi ha poi indotto a realizzare questo software):

Anziché disegnare le pagine una per una, dal momento che sostanzialmente si tratta di una serie di "album" legati fra loro attraverso pagine indice, l'obbiettivo è un compilatore di pagine html che prenda come input una breve, generica, essenziale descrizione della pagina e generi tutto.

Features aggiuntive: un'unica directory (niente subdir) per pagine e immagini; filenames "hashed" (tranne ovviamente il solo index.html e files espliciti) per evitare titoli chilometrici e con spazi e caratteri strani; tabella dei link esterna (se cambio un link non voglio andare a cercarmi tutte le pagine da modificare).


Esempio di descrizione pagina:

page "Ed il sole tramonto' sul mare..."
photo TramontoMare2
text
  Questo e' {un bellissimo tramonto} sul mare.
  Vedi anche [questa pagina][Panorama di sera] per un altro tramonto.
  @pgincompleta
end text

Questo pezzo genera una pagina con un nome tipo "abcdef.html" (sei caratteri apparentemente casuali, derivati dall'hash del titolo della pagina) e col titolo "Ed il sole tramontò sul mare..." (la "o'" viene cambiata nella macrosequenza html "&ograve;", che viene visualizzata come "ò"), contenente l'immagine con un nome tipo "ghijkl.jpg" (che in realtà è il file "TramontoMare2.jpg": l'estensione di default per le immagini è sempre "jpg"), aggiungendo bottoni, descrizioni e link extra come specificato nell'inizializzazione (non citata nell'esempio sopra).

Il gruppo di parole "un bellissimo tramonto" viene messo in corsivo (in quanto racchiuso tra parentesi graffe). Viene creato il link dal nome "questa pagina" (collegato a una pagina con un nome tipo "mnopqr.html", che sarà la pagina intitolata "Panorama di sera"; la verifica dei link viene fatta alla fine della compilazione, quindi non è necessario che tale pagina sia stata già definita). Prima della fine della pagina, trascrive anche il contenuto della macro "pgincompleta".

Per vedere i risultati del parsing delle pagine si può dare un'occhiata al sorgente html delle pagine di questo stesso sito. Si vedranno inoltre l'aggiunta (programmabile) di tag META all'inizio della pagina, di anchors, della descrizione delle immagini (due volte, una come titolo e una come descrizione alternativa dell'immagine, per evitare che si veda solo su alcuni browser).

Ma sì... riprendiamoci l'HTML semplice... prima che ci venga la tentazione di creare un nuovo semplicissimo linguaggio per ipertesti che soppianti questo ormai farraginosissimo HTML "microsoftizzato"!


Google
 
Web www.alfonsomartone.itb.it

L'ambiente di lavoro per creare il TaToBuilder

send e-mail - continua (next page)