PmWikiPl / Dyrektywy tabel

dla autorów (rednio zaawansowanych)

S cztery dyrektywy tabel. Wszystkie musz si zaczyna od pocztku linii, eby zadziaay.

(:table (attr...):)

Tworzy now tabel - znacznik HTML <table> - z atrybutami podanymi w attr.... Zamyka (koczy) poprzedni tabel, jeli jaka bya zaczta (nie ma tabeli w tabeli, chyba e prosta w zaawansowanej). Poprawne atrybuty i wartoci to:

(:cell (attr...):)

Tworzy now komórk tabeli z atrybutami podanymi w attr.... Zamyka poprzedni komórk, jeli jaka bya zaczta. Kontynuuje rzd. W HTML-u to tworzy nowy znacznik "<td attr>" (i jak trzeba, znaczniki <table>, <tr> i </td>).

Uwaga: Umieszczenie spacji po znaczniku komórki: "(:cell:) " powoduje, e tekst w danej linii bdzie potraktowany jako preformatowany.

Poprawne atrybuty i wartoci to:

(:cellnr (attr..):)

Tworzy now komórk tabeli od pocztku nastpnego rzdu. Zamyka poprzedni komórk, jeli jaka bya zaczta. W HTML-u to tworzy znaczniki "<tr><td attr>" (i jak trzeba, znaczniki <table>, </td> i </tr>). Atrybuty i wartoci s takie same jak dla (:cell:).

(:tableend:)

Zamyka ostatni komórk tabeli, i tabel (jak trzeba, tworzy znaczniki /td>, </tr> i </table>).

* Informacja o atrybucie valign

Jeli nie jest wczeniej ustawiony, PmWiki automatycznie doda atrybut valign='top' do kadej komórki tabeli. PM stwierdzi "Dyrektywy tabel s w celu rozmieszczania i w tym przypadku najwikszy sens ma, by kada komórka (kolumna) miaa zawarto od góry rzdu". Ten atrybut jest umieszczany w kadej celi, a nie w znaczniku <tr>, bo pewne przegldarki nie rozpoznaj valign='top' w znaczniku <tr>.

Uwagi:

W znacznikach 'table', 'cell' i 'cellnr' autor moe poda dowolne atrybuty, które byyby poprawne w znacznikach HTML <table> bd <td>. Mona wic podawa atrybuty rowspan, colspan, itd., aby tworzy dowolne tabele. Jednak nie jest moliwe zagniedanie (:table:) wewntrz (:cell:), czy (:cellnr:) -- nastpny paragraf wyjania, dlaczego.

Wielu by chtnie zapytao, dlaczego nie uywamy po prostu standardowych znaczników HTML (<table>, <tr>, <td>, <th>), zamiast tworzy nowe, co by pozwolio na zagniedone tabele. S dwie odpowiedzi: po pierwsze, znaczniki tabel w HTML-u wygldaj gronie dla naiwnych autorów (zobacz PmWiki.Audiences i PmWikiPhilosophy? #2); i po drugie, byoby bardzo atwo utworzy bdn tabel, któr jakie przegldarki pokazywayby nie tak, jak si chce. Nawet dowiadczeni zawodowi twórcy stron WWW czasem pisz bdne znaczniki tabel, wic to troch nierealistyczne, by oczekiwa, e przecitny autor zawsze napisze dobrze, albo bdzie w stanie przeczyta dowolne znaczniki tabel, które napisa kto inny.

Powszechny komentarz: Z pewnoci, przecitny czy naiwny autor nie pisaby wprost w HTML-u, lecz uywaby narzdzia takiego jak FrontPage, czy nawet MSWord, by tworzy HTML. To byoby o wiele prostsze, ni uczenie si nawet najprostszych znaczników PmWiki.
Odpowied PM: I skoro ten HTML byby utworzony i wysany, jak ktokolwiek inny miaby edytowa t tabel, jeli nie mia by oryginalnego pliku FrontPage-u, czy MSWord-a uytego, by j utworzy? Pamitajmy, e mówimy o wspólnym autorstwie. HTML tworzony przez te pakiety jest jednym z naciszych do czytania i edycji!

Trudno jest napisa kod potrzebny do tego, by PmWiki rozumiao i poprawiao dowolne znaczniki tabel, wic uywa ono tej uproszczonej wersji. Wci, ta wersja jest w stanie zaj si wikszoci wymaga co do tabel (moe z wyjtkiem zagniedonych tabel).

I, nie jest powiedziane, e zagniedone tabele s w PmWiki niemoliwe - one tylko nie mog by atwo tworzone przez autorów przy uyciu zwykych znaczników. Administrator moe oczywicie utworzy kod HTML do nagówka/stopki strony, i inne lokalne dostosowania? uywajce zagniedonych tabel.

Przykad 1. Tabela uywajca dyrektyw.

"&nbsp;" jest niedzielc spacj w HTML-u. Umie j w komórce, jeli ma by pusta - inaczej obramowanie tej komórki nie narysuje si poprawnie.

(: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  

W HTML-u, to jest to samo, co

<table border='1' cellpadding='5' cellspacing='0'>
  <tr>
    <td>a1</td>
    <td>b1</td>
    <td>c1</td>
    <td>d1</td>
  </tr>
  <tr>
    <td>a2</td>
    <td>b2</td>
    <td>c2</td>
    <td>&nbsp;</td>
  </tr>
</table>

Opywana tabela z wypunktowan list do nawigacji

Co jeli chcesz utworzy tak mi tabelk, jak tabela zawartoci strony podobna do tej? W tym przykadzie, tabela jest z prawej strony, i zawiera kilka linków w wypunktowanej licie. To jest miy pokaz, jak to jest moliwe, by zbudowa tabliczk zawartoci strony, która moe odsya do innych stron akurat w tej samej grupie wiki. Zauwa, e wypunktowana lista nie bdzie dziaa w zwykej tabeli - dziaa tylko w tabeli utworzonej dyrektywami takimi, jak w uytym tutaj przykadowym kodzie.

(:table border=1 width=30% align=right bgcolor=#cccc99 cellspacing=0 :)
(:cellnr:)
'''Navigation Links'''
(:cellnr:)
*[[Tabele]]
*[[Dyrektywy tabel]]
(:tableend:)

Navigation Links

(:table border=1 width=30% align=right bgcolor=#cccc99 cellspacing=0 :)
(:cellnr colspan=2 align=center:)
'''Navigation Links'''
(:cellnr align=center:)
[[Tabele]]
(:cell align=center:)
[[Dyrektywy tabel]]
(:tableend:)

Navigation Links

Tabele

Dyrektywy tabel

Patrzc na te znaczniki, zauwa e uylimy koloru #cccc99 jako ta tabeli. Ponadto, znacznik (:cellnr:) tworzy nowy rzd, now komórk, i zamyka poprzedni rzd.

Moesz z t koncepcj pój nieco dalej: skoro moesz zechcie, by kada strona w grupie zawieraa t sama tabel zawartoci, moesz zrobi JEDN tabel tak, jak powyej, i umieci j na jej wasnej stronie. Nastpnie uy znacznika include ? na dowolnej ze swoich stron, i dosta t tabel. Waciwo opywania bdzie honorowana na kadej stronie, która j doczy.

<< | Documentation Index? | >>

Czy mog zdefiniowa nagówki tabeli uywajc dyrektyw tabel?

Nie, ale moesz z Cookbook:AdvancedTableDirectives. Zobacz odpowied PM do PITS:00535.

Czy mona zrobi zagniedone tabele?

Tak, jeli zagniedasz proste tabele wewntrz zaawansowanych. Zobacz jeszcze Cookbook:AdvancedTableDirectives.

Czy mona doda obrazki jako to tabeli i jej komórek?

Tak, zobacz Cookbook:BackgroundImages.

(nie przetumaczone, i bez odpowiedzi) Is it possible to have a collapsible table, that you can set by default to be deployed (as with the (:toc:) display) or retracted?