Codex

authors (intermediate)

Per creare tabelle esistono quattro direttive. Devono essere inserite all'inizio di una nuova linea, altrimenti non funzionano.

(:table (attr...):)

Genera una nuova tabella (<table>) HTML, con gli attributi specificati in attr.... Chiude un'eventuale tabella aperta in precedenza. Gli attributi e i valori possibili sono:

  • border (un numero intero positivo)
  • bordercolor (il nome inglese di un colore o un numero esadecimale; non funziona con tutti i browser)
  • cellspacing (un numero intero positivo che indichi lo spazio tra le celle)
  • cellpadding (un numero intero positivo che indichi la dimensione della spaziatura interna di una cella)
  • width (un numero intero positivo o una percentuale)
  • bgcolor (il nome inglese di un colore o un numero esadecimale)
  • align ("left", "center" o "right")
  • summary (non viene visualizzato normalmente; è utilizzato soprattutto dai browser per non vedenti)

(:cell (attr...):)

Genera una nuova cella con gli attributi specificati in attr.... Chiude un'eventuale cella aperta in precedenza. In HTML, questo inserisce un tag "<td attr>" (eventualmente anche i tag <table>, <tr> e </td> se necessari per creare una tabella HTML valida).

Nota: Se si inserisce uno spazio dopo il markup "(:cell:) " il resto della linea viene trattato come testo preformattato.

Gli attributi e i valori possibili sono:

  • align ("left", "center" o "right")
  • valign ("top", "middle" o "bottom") * vedi sotto
  • colspan (un numero intero positivo)
  • rowspan (un numero intero positivo)
  • bgcolor (il nome inglese di un colore o un numero esadecimale)
  • width (un numero intero positivo o una percentuale)

(:cellnr (attr..):)

Inserisce una nuova cella all'inizio della riga successiva. Chiude un'eventuale cella aperta in precedenza. In HTML, viene inserito un tag "<tr><td attr>", ed eventualmente <table>, </td> e </tr> se necessari per avere HTML valido. I valori e gli attributi possibili sono:

  • align ("left", "center" o "right")
  • valign ("top", "middle" o "bottom") * vedi sotto
  • colspan (un numero intero positivo)
  • rowspan (un numero intero positivo)
  • bgcolor (il nome inglese di un colore o un numero esadecimale)
  • width (un numero intero positivo o una percentuale)

(:tableend:)

Chiude la cella precedente e tutte le tabelle. Genera i tag necessari </td>, </tr> e </table>.

* l'attributo valign

Se non viene specificato altrimenti, PMWiki include automaticamente l'attributo valign='top' in tutte le direttive (:cell:) e (:cellnr:). PM ha detto che "Le direttive per tabelle sono state create per fare impaginazioni e in questo caso ha più senso che ciascuna cella abbia il proprio contenuto allineato con la parte superiore della riga. L'attributo è inserito in ciascuna cella e non nella riga, perché alcuni browser non riconoscono valign='top' nel tag che definisce le righe."

Note

Per i tag "table", "cell" e "cellnr" gli autori possono specificare qualunque attributo sia valido nei tag HTML <table> o <td>. È quindi possibile specificare "rowspan", "colspan" ecc. per costruire tabelle. Tuttavia, non è possibile inserire altre (:table:) dentro una (:cell:) o (:cellnr:) -- il prossimo paragrafo spiega perché.

Molti si chiederanno perché non abbiamo semplicemente usato il markup standard HTML (<table>, <tr>, <td>, <th>) anziché crearne uno nuovo, perché così sarebbe stato possibile annidare tabelle una dentro l'altra. Ci sono due risposte: prima di tutto, il markup HTML per fare tabelle è molto brutto, se visto da autori alle prime armi (vedi Pubblico PmWiki e Filosofia di PmWiki #2); in secondo luogo, per gli autori sarebbe troppo facile creare tabelle che non sono HTML corretto e quindi non appaiono correttamente su alcuni browser. Anche autori esperti del web a volte sbagliano il markup delle tabelle, quindi sarebbe irrealistico pensare che l'utente medio riesca sempre a usarlo correttamente, oppure sia in grado di leggere qualunque markup per tabelle HTML scritto da un altro.

Commento tipico: Certo, l'autore medio o inesperto non andrebbe a scrivere HTML direttamente, ma userebbe uno strumento come FrontPage, o MSWord, per generare automaticamente l'HTML. Questo sarebbe molto più semplice che imparare anche il markup più semplice di PmWiki.
Risposta di Pm: E quando anche l'HTML venisse generato e messo on-line, come farebbero gli altri a modificare la tabella senza il file originale di FrontPage or MSWord usato per crearla? Non dimentichiamo che parliamo di collaborazione. L'HTML generato da quei programmi è tra i più difficili da leggere in assoluto!

Sarebbe molto difficile scrivere il codice che rendesse PmWiki in grado di capire e sistemare qualunque markup per tabelle; per questo motivo PmWiki utilizza la versione semplificata appena descritta. Questa versione è comunque in grado di gestire la maggioranza dei requisiti legati alle tabelle (con la possibile eccezione delle tabelle annidate).

In ogni caso, le tabelle HTML annidate non sono impossibili in PmWiki -- esse sono solo difficili da creare attraverso il markup predefinito. L'amministratore di un sito può sempre creare codice HTML nell'intestazione o nella chiusura di una pagina, insieme ad altre personalizzazioni? che facciano uso di tabelle annidate.

Esempio 1. Una tabella creata con le direttive.

"&nbsp;" in HTML è uno spazio che deve essere mostrato per forza. Inserendolo da solo in una cella, fa sì che questa appaia vuota; altrimenti il bordo della cella non verrebbe visualizzato correttamente.


(:table border=1 cellpadding=5 cellspacing=0:)
(:cell:) a1
(:cell:) b1
(:cell:) c1
(:cell:) d1
(:cellnr:) a2
(:cell:) b2
(:cell:) c2
(:cell:) &nbsp;
(:tableend:)
a1 b1 c1 d1
a2 b2 c2  

In HTML lo stesso effetto si otterrebbe con questo codice:


Tabella flottante con elenco puntato per la navigazione

Link per la navigazione

Come si fa a creare una tabella piccola e carina, simile a un indice, in una pagina come questa? In questo esempio, la tabella è flottante a destra, e contiene alcuni collegamenti organizzati in un elenco puntato. Questa è una buona dimostrazione di come è possibile inserire un piccolo indice in una pagina, che permetta di visitare altre pagine nello stesso wiki group. Si noti che un elenco puntato non funzionerebbe in una tabella ordinaria - funziona solo in una tabella creata con le direttive, come l'esempio mostrato qui.

(:table border=1 width=30% align=right bgcolor=#cccc99 cellspacing=0 :)
(:cellnr:)
'''Link per la navigazione'''
(:cellnr:)
*[[Tables|+]]
*[[Table directives|+]]
(:tableend:)

Link per la navigazione

(:table border=1 width=30% align=right bgcolor=#cccc99 cellspacing=0 :)
(:cellnr colspan=2 align=center:)
'''Link per la navigazione'''
(:cellnr align=center:)
[[Tables|+]]
(:cell align=center:)
[[Table directives|+]]
(:tableend:)

Link per la navigazione

Tabelle

Direttive per tabelle

Guardando il markup qui riportato, si noti che abbiamo usato il colore esadecimale #cccc99 per lo sfondo della tabella. Inoltre, il markup (:cellnr:) crea una nuova riga, una nuova cella e chiude la riga alla fine.

Questo concetto si può portare avanti: si potrebbe volere che ciascuna pagina nel gruppo contenga lo stesso indice, magari creando la tabella una sola volta e inserendola in una pagina a sé. Dopodiché, usando la direttiva include nelle pagine del gruppo si farebbe apparire la tabella. La proprietà float (di allineamento) verrebbe rispettata in ciascuna pagina. Carino, eh?

<< Tabelle | Indice documentazione | Markup per blocchi >>

Posso definire l'intestazione di una tabella, usando queste direttive?

No, ma è possibile usare Cookbook:AdvancedTableDirectives. Vedi la risposta di Pm alla PITS:00535 in corso.

È possibile annidare tabelle?

Sì, inserendo tabelle semplici dentro tabelle avanzate. Vedere anche Cookbook:AdvancedTableDirectives.

È possibile inserire immagini di sfondo per celle e tabelle?

Sì, vedi Cookbook:BackgroundImages.


Traduzione di PmWiki.TableDirectives - Pagina originale: PmWikiIt.TableDirectives - Links de retorno
Ultime modifiche:
PmWikiIt.TableDirectives: 10 de setembro de 2011, às 12:52
PmWiki.TableDirectives: 28 de fevereiro de 2014, às 09:16