Com'è organizzato www.debian.org

Il “webtree” del sito Debian, l'insieme di file e directory che costituiscono il nostro sito web, si trova nella directory /org/www.debian.org/www di www-master.debian.org. La maggior parte delle pagine sono file HTML statici (cioé non vengono prodotti dinamicamente da script PHP o CGI o altro), poiché il sito web è copiato (mirror).

Il sito è generato in uno di questi tre modi:

Un aggiornamento automatico (dal "repository" CVS e dalle altre sorgenti) viene fatto sei volte al giorno.

Se vuoi contribuire al sito, non devi semplicemente aggiungere o modificare pagine nella directory www/. Contatta prima i webmaster.

Tutti i file e directory sono proprietà del gruppo debwww e scrivibili dal solo gruppo, in questo modo il team web può modificare i file della directory. I permessi 2775 delle directory sono stati utilizzati per far sì che ogni file creato erediti il gruppo di appartenenza, debwww in questo caso. Chiunque nel gruppo debwww dovrebbe avere attivato "umask 002" in modo tale che i file siano creati con il permesso di scrittura al gruppo.


Look & feel

Diamo alle pagine lo stesso look and feel indicando a WML di creare tutte le intestazioni e piè di pagina. Anche se una pagina .wml può sembrare HTML ad un primo sguardo, HTML rimane solo uno dei vari tipi di informazione extra che possono essere utilizzati in .wml. Dopo che WML ha finito di applicare i suoi vari filtri su un file, il prodotto finale sarà HTML. Per darti un'idea della potenza di WML, è possibile includere codice Perl all'interno delle pagine in modo da poter fare praticamente tutto.

Nota comunque che WML controlla (e qualche volta corregge) solo una parte della validità del codice HTML. Dovresti installare weblint e/o tidy per validare il tuo codice HTML.

Le nostre pagine web attualmente sono conformi allo standard HTML 4.01 Strict. Pensiamo comunque di passare a XHTML, quindi invitiamo tutti gli autori web a scrivere i loro tag in minuscolo, sistemare correttamente i tag di chiusura, ecc., in modo da rendere questa transizione indolore.

Chiunque lavori su molte pagine dovrebbe installare WML in modo tale da verificare che il risultato sia quello desiderato. Se stai utilizzando Debian, puoi facilmente installare il pacchetto wml. Leggi le pagine sull'uso di WML per maggiori informazioni.

Sorgenti

Il sorgente delle pagine web è memorizzato nel CVS. CVS è un sistema di controllo delle versioni che permette di avere un tracciato di cosa, da chi, quando e perché è stato cambiato. È un modo sicuro per controllare la modifica in contemporanea di file sorgenti da parte di vari autori, che è un fattore cruciale poiché il team web Debian è piuttosto grande.

Se non hai familiarità con questo programma, forse potresti leggere le pagine sull' uso di CVS.

La directory webwml dell'archivio CVS contiene le directory con il nome dell'idioma in cui le pagine sono tradotte, due makefile e parecchi script. I nomi delle directory che contengono traduzioni dovrebbero essere in inglese e in minuscolo (ad esempio "german", non "Deutsch").

Il più importante dei due makefile è Makefile.common che, come dice il suo nome, contiene alcune regole comuni che sono applicate includendo questo file negli altri makefile.

Ogni directory delle traduzioni contiene makefile, sorgenti WML, file e sottodirectory. I nomi dei file e delle directory non differiscono per avere link corretti per tutti i linguaggi. Le directory potrebbero inoltre contenere dei file .wmlrc che contengono alcune utili informazioni per WML.

La directory webwml/english/template contiene speciali file WML che noi chiamiamo template, poiché possono essere utilizzati da tutti gli altri file tramite il comando #use.

Affinché le modifiche ai template si propaghino ai file che li utilizzano, i file hanno dipendenze nel makefile su di essi. Poiché un gran numero di file usano un template chiamato "template", grazie alla riga "#use wml::debian::template" all'inizio, la generica dipendenza (quella per tutti i file) è il vero template. Ci sono eccezioni a questa regola, naturalmente.

Script

Gli script sono per la maggior parte scritti in shell o Perl. Alcuni sono isolati, mentre altri vengono integrati da file WML.

I sorgenti per la creazione del www-master principale sono memorizzati nel repository Git debwww/cron.

I sorgenti degli script che compilano packages.debian.org sono nel repository Git webwml/packages.

Come aiutare

Invitiamo quanti siano interessati a partecipare ad aiutarci per migliorare il sito. Se credi che ci siano delle informazioni mancanti nel sito allora avvertici e vedremo come includerle.

Possiamo sempre avvalerci del tuo aiuto per disegnare le pagine (da un punto di vista grafico), o anche per chiarire il nostro codice HTML. Noi facciamo regolarmente i seguenti test su tutto il sito web:

L'aiuto nella lettura di questi registri e nel risolvere eventuali problemi è sempre gradito.

I log attuali della compilazione del sito web possono essere trovati all'indirizzo http://www-master.debian.org/build-logs/.

Se sei una persona che padroneggia bene l'inglese potresti controllare le nostre pagine e inviare le eventuali note alla nostra lista.

Se parli un'altra lingua puoi aiutarci a tradurre le pagine per quella lingua. Se una traduzione è già attiva ma hai trovato dei problemi puoi contattare il coordinatore della traduzione per proporgli delle correzioni. Se vuoi tradurre le pagine direttamente allora leggi queste pagine per maggiori informazioni.

C'è anche un file TODO, guardalo pure.

Come non aiutare

[Q] Vorrei inserire delle caratteristiche web carine in www.debian.org, posso?

[A] No. Noi vogliamo che www.debian.org sia accessibile il più possibile, quindi

[Q] Ho questa idea simpatica. Possiamo abilitare un'opzione QUALSIASI nell'HTTPD di www.debian.org, per favore?

[A] No. Vogliamo mantenere la vita facile agli amministratori di sistema dei mirror di www.debian.org, quindi non ci sarà nessuna caratteristica speciale di HTTPD. No, neppure SSI. L'unica eccezione è stata fatta per la negoziazione dei contenuti. Questo perché è l'unico modo robusto per servire pagine in lingua diverse.