Sito web per sopravvivere

Avvertenza

Questo documento è una versione provvisoria, e non dovrebbe essere divulgato.

In caso di errori, si prega di segnalarli all'autore.

Autore:Prof. Massimo Piai
Data:2005-05-05
Aggiornamenti:2005-05-06, 2005-05-08, 2005-05-11, 2005-05-12

Indice


1   Premessa

Il presente documento intende fornire allo studente:

Questo documento è stato realizzato utilizzando gli strumenti Docutils.

2   Aderenza allo standard ISO 15445

Ogni documento HTML che faccia parte del sito deve aderire allo standard ISO 15445.

A tale scopo lo studente può avvalersi degli script html-frammento-valido.sh e html-completa-frammento.sh. In pratica, lo studente preparerà dei frammenti di documento HTML (essenzialmente si tratta del contenuto dell'elemento BODY), ne controllerà la validità mediante lo script html-frammento-valido.sh e genererà il documento completo mediante lo script html-completa-frammento.sh.

Esempio

Ci si posizioni all'interno della directory di lavoro, ad esempio:

$ cd ~/lavoro

Si parte da un file che contiene un frammento HTML:

~/lavoro$ ls
fram-1.html
~/lavoro$ cat fram-1.html 
<P>Questo è il primo paragrafo... bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla. Bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla.</P>

<P>Questo è il secondo paragrafo... bla bla bla bla bla
bla bla bla bla. Bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla. Bla bla bla bla bla bla
bla bla bla bla bla bla bla.</P>

Si verifica la corretteza sintattica:

~/lavoro$ html-frammento-valido.sh fram-1.html 
fram-1.html: Frammento HTML valido! (ISO/IEC 15445)

Si produce il documento completo:

~/lavoro$ html-completa-frammento.sh fram-1.html 
fram-1.html: Frammento HTML valido! (ISO/IEC 15445)
Sorgente HTML completo: ./fram-1.iso15445.html

Si verifica che il file è stato effettivamente generato:

~/lavoro$ ls
fram-1.html  fram-1.iso15445.html
~/lavoro$ cat fram-1.iso15445.html 
<!DOCTYPE HTML PUBLIC "ISO/IEC 15445:2000//DTD HTML//EN">

<HTML LANG="it">

<HEAD>

<META HTTP-EQUIV="content-type" CONTENT="text/html;
charset=ISO-8859-1">

<TITLE>....</TITLE>

</HEAD>

<BODY>

<P>Questo è il primo paragrafo... bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla. Bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla.</P>

<P>Questo è il secondo paragrafo... bla bla bla bla bla
bla bla bla bla. Bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla. Bla bla bla bla bla bla
bla bla bla bla bla bla bla.</P>

<HR>

<P><A HREF="http://validator.w3.org/check?uri=referer"><IMG
SRC="http://validator.w3.org/images/v15445" ALT="Valid
ISO-HTML!"></A></P>

</BODY>

</HTML>

Come si può notare, il documento generato dallo script html-completa-frammento.sh contiene tutti gli elementi che lo rendono un documento completo e corretto in adesione allo standard ISO 15445, come si può verificare con il seguente comando:

~/lavoro$ nsgmls -s fram-1.iso15445.html

che, se non genera messaggi, significa che la correttezza è verificata.

Inoltre, ci sono altre informazioni di contorno, di utilità pratica.

L'unica accortezza che lo studente deve avere a questo punto è che l'elemento TITLE deve essere completato a mano, direttamente sul file con estensione .iso15445.html. Per convenzione, tutti i documenti contenuti nel sito avranno come contenuto dell'elemento TITLE la stessa informazione, ossia il «nome» del sito. Ad esempio, se il sito tratta della Rivoluzione Francese, allora l'elemento TITLE potrebbe essere così:

<TITLE>La Rivoluzione Francese</TITLE>

Avvertenza

Se sono necessarie ulteriori modifiche, lo studente opererà sul frammento, lo ricontrollerà e rigenererà un nuovo documento completo.

3   Pubblicazione dei documenti e «pagina casa»

I documenti che cosituiscono il sito, una volta completati, vanno pubblicati.

Concretamente ciò consiste nella creazione di un'opportuna sottodirectory in ~/public_html; il nome della sottodirectory costituisce in pratica il «nome» del sito; i documenti sono automaticamente pubblicati nel momento in cui vengono copiati all'interno di tale sottodirectory.

Avvertenza

Si presti molta attenzione a copiare i documenti non con il nome generato automaticamente dallo script html-completa-frammento.sh, bensì con il nome del frammento originale, altrimenti non funzionerebberò più i collegamenti ipertestuali interni al sito.

Inoltre si eviti accuratamente di procedere a modifiche manuali direttamente sui file già presenti all'interno della directory ~/public_html; invece, si modifichino i frammenti nella directory di lavoro, li si completino e infine li si copino.

Il sito deve, per convenzione, contenere un documento denominato index.html che in pratica è il documento principale (o «pagina casa») del sito. Da esso deve essere possibile raggiungere direttamente o indirettamente tutti gli altri documenti del sito tramite opportuni collegamenti ipertestuali.

La «pagina casa» risulta dunque raggiungibile mediante il protocollo HTTP utilizzando un URI che termina col nome della directory contenente il file corrispondente.

Esempio

Si prepara la directory che conterrà il sito:

~/lavoro$ mkdir ~/public_html/rivoluzione

Si parte da un file che contiene un frammento HTML, che costituirà la «pagina casa»:

~/lavoro$ ls
fram-1.html  fram-1.iso15445.html  index.html
~/lavoro$ cat index.html 
<H1>Questa è la «pagina casa»</H1>

<P>Questo è il primo paragrafo... bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla. Bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla.</P>

Se ne verifica la validità:

~/lavoro$ html-frammento-valido.sh index.html 
index.html: Frammento HTML valido! (ISO/IEC 15445)

Lo si completa:

~/lavoro$ html-completa-frammento.sh index.html 
index.html: Frammento HTML valido! (ISO/IEC 15445)
Sorgente HTML completo: ./index.iso15445.html
~/lavoro$ ls
fram-1.html  fram-1.iso15445.html  index.html  index.iso15445.html
~/lavoro$ cat index.iso15445.html 
<!DOCTYPE HTML PUBLIC "ISO/IEC 15445:2000//DTD HTML//EN">

<HTML LANG="it">

....

<H1>Questa è la «pagina casa»</H1>

....

Si copiano i file usando i nomi corretti:

~/lavoro$ cp index.iso15445.html ~/public_html/rivoluzione/index.html
~/lavoro$ cp fram-1.iso15445.html ~/public_html/rivoluzione/fram-1.html

A questo punto si può accedere alla «pagina casa» del sito tramite un URI del tipo:

http://SERVENTE_HTTP/~UTENTE/SITO/ 

Per esempio, se il sito è ospitato da una macchina il cui indirizzo IP è 192.168.1.129, l'utente proprietario del sito è denominato pierino e il sito è contenuto nella directory ~/public_html/rivoluzione, allora l'URI da utilizzare è:

http://192.168.1.129/~pierino/rivoluzione/

4   Inclusione di immagini e «miniature»

Si dice che un'immagine valga più di mille parole. È senz'altro condivisibile che un'illustrazione ben scelta può favorire molto la trasmissione del pensiero dell'autore al lettore; ma è altresì vero che se l'immagine non è scelta con cura l'effetto può essere controproducente.

Inoltre, è necessario prestare cautela a non includere immagini «ingombranti» che rendano la lettura del documento nel suo insieme tutt'altro che agevole.

4.1   Immagini di grandi dimensioni

Un'immagine dovrebbe costituire da sola il contenuto di un paragrafo (il testo che precede e/o segue dovrebbe spiegare o giustificare la presenza dell'immagine), e le sue dimensioni non dovrebbero mai superare i 400 o 500 pixel di larghezza e i 200 o 300 di altezza. Può essere quindi necessario preparare un file alternativo contenente l'immagine stessa ma rimpicciolita; convenzionalmente tale file dovrebbe avere lo stesso nome del file originale, tranne che per il suffisso _sm (come «small», ossia «piccolo»).

Esempio

Si parta da un file grafico in formato JPEG:

~/lavoro$ ls
aereo3.jpg  fram-1.html  fram-1.iso15445.html  index.html index.iso15445.html

Se ne determinino larghezza e altezza:

~/lavoro$ imgsize aereo3.jpg 
width="510" height="341"

Siccome la larghezza dell'immagine supera i 500 pixel è necessario ridimensionarla. Per scendere al di sotto dei 400 pixel in larghezza è sufficiente portarla al 75% delle dimensioni originali (75 / 100 * 510 = 383, approssimativamente):

~/lavoro$ convert -resize 75% aereo3.jpg aereo3_sm.jpg
~/lavoro$ imgsize aereo3_sm.jpg 
width="383" height="256"

Si noti che entrambe le dimensioni sono state ridotte in proporzione, in modo da mantenere l'aspetto geometrico dell'immagine.

A questo punto è possibile inserire l'immagine ridimensionata nel documento HTML:

....

<P><IMG SRC="aereo3_sm.jpg" ALT="[aeroplano in decollo]"></P>

....

Eventualmente, è possibile far sì che l'immagine rimpicciolita costituisca un'àncora per un collegamento ipertestuale al file che contiene l'immagine a dimensioni piene.

Esempio

....

<P><A HREF="aereo3.jpg"><IMG SRC="aereo3_sm.jpg"
ALT="[aeroplano in decollo]"></A></P>

....

4.2   «Miniature»

La tecnica cosiddetta delle «miniature» consiste in un'estensione degli esempi visti sopra al caso di più immagini affiancate. In pratica la tecnica si applica al caso in cui si vogliano presentare più immagini in sequenza sulla stessa linea di testo; è evidente che il problema fondamentale è quello di ridimensionare le immagini in modo tale che:

  1. tutte le immagini della linea condividano la stessa altezza, tipicamente inferiore ai 200 o 300 pixel;
  2. la larghezza complessiva sia inferiore ai 400 o 500 pixel.

Le immagini così ridotte solitamente sono molto piccole, tanto da meritare il termine «miniature»; i file corrispondenti sono convenzionalmente contraddistinti dal suffisso _tn (da «thumbnail», ossia - idiomaticamente - «miniatura»). Gli elementi IMG corrispondenti alle miniature allineate dovrebbero essere separati da un singolo spazio vuoto. Ciascuna miniatura deve costituire un'àncora di un riferimento ipertestuale all'immagine a dimensioni piene.

Esempio

Si determinino le dimensioni di cinque immagini da cui partire per costruire le miniature:

~/lavoro$ imgsize bambino.jpg basket.jpg caffe.jpg calcio.jpg capra.jpg 
bambino.jpg: width="510" height="341"
basket.jpg: width="340" height="508"
caffe.jpg: width="510" height="341"
calcio.jpg: width="510" height="339"
capra.jpg: width="340" height="511"

Bisogna intanto ridurre l'altezza delle immagini a 200 pixel:

~/lavoro$ convert -resize x200 bambino.jpg bambino_x200.jpg
~/lavoro$ convert -resize x200 basket.jpg basket_x200.jpg
~/lavoro$ convert -resize x200 caffe.jpg caffe_x200.jpg
~/lavoro$ convert -resize x200 calcio.jpg calcio_x200.jpg
~/lavoro$ convert -resize x200 capra.jpg capra_x200.jpg
~/lavoro$ imgsize *x200.jpg
bambino_x200.jpg: width="299" height="200"
basket_x200.jpg: width="134" height="200"
caffe_x200.jpg: width="299" height="200"
calcio_x200.jpg: width="301" height="200"
capra_x200.jpg: width="133" height="200"

Ora la larghezza complessiva ammonta a: 299 + 134 + 299 + 301 + 133 = 1166; per ricondurla al di sotto dei 500 pixel si deve operare un'ulteriore riduzione al 40%:

~/lavoro$ convert -resize 40% bambino_x200.jpg bambino_tn.jpg
~/lavoro$ convert -resize 40% basket_x200.jpg basket_tn.jpg
~/lavoro$ convert -resize 40% caffe_x200.jpg caffe_tn.jpg
~/lavoro$ convert -resize 40% calcio_x200.jpg calcio_tn.jpg
~/lavoro$ convert -resize 40% capra_x200.jpg capra_tn.jpg
~/lavoro$ imgsize *tn.jpg
bambino_tn.jpg: width="120" height="80"
basket_tn.jpg: width="54" height="80"
caffe_tn.jpg: width="120" height="80"
calcio_tn.jpg: width="120" height="80"
capra_tn.jpg: width="53" height="80"

Larghezza totale miniature: 120 + 54 + 120 + 120 + 53 = 467.

A questo punto è possibile preparare la linea di miniature nel documento HTML:

....

<P><A HREF="bambino.jpg"><IMG SRC="bambino_tn.jpg"
ALT="miniatura bambino"></A> <A HREF="basket.jpg"><IMG
SRC="basket_tn.jpg" ALT="miniatura pallacanestro"></A>
<A HREF="caffe.jpg"><IMG SRC="caffe_tn.jpg" ALT="miniatura
caffè"></A> <A HREF="calcio.jpg"><IMG SRC="calcio_tn.jpg"
ALT="miniatura calcio"></A> <A HREF="capra.jpg"><IMG
SRC="capra_tn.jpg" ALT="miniatura capra"></A></P>

....

Ed ecco come viene presentato da un comune programma di navigazione il suddetto frammento:

[swxs_01_002.jpeg]

da cui si nota che ciascuna miniatura presenta la possibilità di collegamento all'immagine a dimensioni piene.

4.3   Formato dei file grafici

I file grafici devono essere nei formati PNG («Portable Network Graphic Format») oppure JPEG («Joint Photographic Experts Group File Interchange Format»). Se si vuole utilizzare un'immagine in un diverso formato bisogna prima convertirla in uno dei due formati suddetti.

Esempio

Si desidera utilizzare l'immagine contenuta nel file in formato GIF («Graphics Interchange Format» 1) sky2.gif; è possibile ad esempio convertire il file nel formato PNG:

~/lavoro$ file sky2.gif 
sky2.gif: GIF image data, version 89a, 300 x 220
~/lavoro$ convert sky2.gif sky2.png
~/lavoro$ file sky2.png
sky2.png: PNG image data, 300 x 220, 8-bit colormap, non-interlaced

5   Rispetto del diritto d'autore

Sia le leggi sul diritto d'autore, sia le regole di buon comportamento, impongono di accertare la possibilità di riutilizzare del materiale che si potrebbe ottenere attraverso la rete. Una volta accertata la possibilità, salvo altri obblighi stabiliti dall'autore, tutto ciò che non è lavoro proprio deve contenere un riferimento al suo autore e possibilmente all'origine dalla quale questo è stato ottenuto.

Una maniera abbastanza pratica di procedere è quella di preparare un opportuno documento (denominato fonti.html) che contenga esplicitamente le indicazioni delle varie fonti utilizzate sia per quanto riguarda il testo, sia per le immagini, e comunque per qualsiasi altra risorsa non originale utilizzata nel proprio sito.

Esempio

Una possibile soluzione è la seguente:

[swxs_01_003.jpeg]

6   Altre indicazioni