Tabellendirektiven
Siehe Einfache Tabellen für das Einfügen "einfacher Tabellen". Hier finden Sie die Beschreibung für erweiterte/strukturelle Tabellen.
Es gibt sechs Direktiven für erweiterte Tabellen. Sie alle müssen am Anfang der Zeile stehen, um wirksam zu sein.
(:table [attr...]:)
Erzeugt eine neue HTML-<table>
mit den in attr... angegebenen Attributen. Beendet vorherige Tabellen, falls vorhanden. Gültige Attribute und Werte sind:
- border (Tabellenrand – eine positive ganze Zahl)
- bordercolor (Farbe des Randes – eine (englische) Farbbezeichnung oder eine Hexadezimalzahl, die einer Farbe entspricht; wird nicht in allen Browsern angezeigt)
- cellspacing (eine positive ganze Zahl, die den Abstand zwischen den Zellen bestimmt)
- cellpadding (eine positive ganze Zahl, die den Abstand zwischen Zelleninhalten und Zellenrand bestimmt)
- width (Tabellenbreite – eine positive ganze Zahl oder eine Prozentangabe)
- bgcolor (Hintergrundfarbe – eine (englische) Farbbezeichnung oder eine Hexadezimalzahl, die einer Farbe entspricht)
- align ("left", "center", "right" – Ausrichtung linksbündig, zentriert oder rechtsbündig)
- summary (Zusammenfassung – wird nicht dargestellt; vor allem genutzt, um Menschen mit Sehschwächen das Navigieren zu erleichtern)
- style (CSS-Regeln für die Tabelle)
- class (CSS-Klassenname für die Tabelle)
(:cellnr [attr...]:), (:cell [attr...]:), (:headnr [attr...]:), (:head [attr...]:)
- Die
(:head:)
-Direktive erzeugt eine neue Kopfzelle der Tabelle mit den in attr... angegebenen Attributen. Im HTML-Quelltext wird eine neue "<th attr>"-Anweisung erzeugt. - Die
(:cell:)
-Direktive erzeugt eine neue reguläre Zelle der Tabelle mit den in attr... angegebenen Attributen. Im HTML-Quelltext wird eine neue "<td attr>"-Anweisung erzeugt. - Die
(:headnr:)
-Direktive und die(:cellnr:)
-Direktive erzeugen eine neue Zelle in einer neuen Tabellenzeile der Tabelle.
Diese Direktiven beendet eine eventuell vorher vorhandene Zelle und/oder Zeile.
Anmerkung: Die (:headnr:)
- und die (:head:)
-Direktiven gibt es sein PmWiki 2.2.11 oder neuer.
Gültige Attribute und Werte sind:
- align ("left", "center", "right" – horizontale Ausrichtung linksbündig, zentriert oder rechtsbündig)
- valign ("top", "middle", "Bottom" – vertikale Ausrichtung oben, mittig oder unten – voreingestellt ist "top", siehe valign-Attribute unten)
- colspan (eine positive ganze Zahl – gibt an, über wieviele Spalten sich die Zelle erstrecken soll)
- rowspan (eine positive ganze Zahl – gibt an, über wieviele Zeilen sich die Zelle erstrecken soll)
- bgcolor (Hintergrundfarbe – eine (englische) Farbbezeichnung oder eine Hexadezimalzahl, die einer Farbe entspricht)
- width (Zellenbreite – eine positive ganze Zahl oder eine Prozentangabe)
- class (eine CSS-Klasse für die Zelle)
- style (angepasster CSS-Stil für die Zelle)
(:tableend:)
Schließt die letzte Tabellenzelle und schließt auch jegliche Tabelle. Erzeugt </td>, </tr> und </table> wie benötigt.
* Info zu valign-Attributen
Wenn nicht anders angegeben, fügt PmWiki zu allen (:cell[nr]:)
- und (:head[nr]:)
-Anweisungen automatisch das Attribut valign='top'
hinzu. Pm erklärte hierzu: "Tabellen-Direktiven wurden eingeführt, um Tabellen besser gestalten zu können. Insofern ist es am sinnvollsten, dass der Inhalt einer Zelle im oberen Bereich angezeigt wird. Das Attribut wird in jede Zelle einzeln eingefügt, weil manche Browser ein Attribut valign='top'
für ganze Tabellenzeilen nicht erkennen."
Mit $EnableTableAutoValignTop
lässt sich dieser Automatismus abstellen.
Anmerkungen
Für die Formatierungsanweisungen 'table', 'cell' und 'cellnr' lassen sich alle Attribute spezifizieren, die in korrekten HTML-<table> oder -<td>-Anweisungen nutzbar sind. So kann man rowspan, colspan, usw. als Argumente angeben, um beliebig formatierte Tabellen zu erzeugen. Allerdings ist es nicht möglich, eine Tabelle (:table:)
innerhalb einer Zelle (:cell:)
oder (:cellnr:)
zu erzeugen. Der nächste Absatz erläutert die Gründe für diese Einschränkung.
Viele werden vermutlich fragen, warum wir nicht einfach die normalen HTML-Tabellen-Formatierungsanweisungen (<table>, <tr>, <td>, <th>) nutzen und damit verschachtelte Tabellen ermöglichen, anstatt gänzlich neue Auszeichnungen zu erfinden, die diese Möglichkeit nicht bieten. Darauf gibt es zwei Antworten: Zum einen sind die HTML-Formatierungsanweisungen für Tabellen für unerfahrene Autoren (siehe Zielgruppen und PmWiki Philosophie #2) sehr hässlich. Zum anderen könnte es sehr schnell passieren, dass Autoren Tabellen mit fehlerhaftem HTML-Code erzeugen, die (zumindest in einigen Browsern) falsch oder überhaupt nicht mehr dargestellt werden. Sogar erfahrenen Netzseitenprogrammierern passieren ab und an Fehler bei der HTML-Kodierung von Tabellen. Es ist insofern unrealistisch zu erwarten, dass durchschnittliche Autoren dies immer richtig hinbekommen, oder dass sie in der Lage sind, komplizierten HTML-Code zu verstehen, den andere Wikibenutzer verwendet haben.
Es ist schwierig, PmWiki so zu programmieren, dass es beliebige Tabellenformatierungen erkennt und notfalls reparieren kann. Deshalb benutzt PmWiki die oben erklärte einfachere Version. Diese Version ist dennoch in der Lage, den meisten Anforderungen an Tabellen zu genügen (mit der Ausnahme von verschachtelten Tabellen).
Dies bedeutet allerdings noch nicht, dass verschachtelte Tabellen mit PmWiki überhaupt nicht erzeugt werden können – sie lassen sich nur nicht mit den Standard-Formatierungsanweisungen herstellen. Ein Administrator eines Wikis kann natürlich Header/Footer-HTML-Kode und andere lokale Anpassungen erzeugen, die verschachtelte Tabellen verwenden.
Beispiele
Eine Tabelle mit erweiterten Formatierungsanweisungen
" ist ein festes Leerzeichen in HTML. Es kann in einer leeren Zelle eingefügt werden, falls es sonst Probleme mit der Darstellung der Zell-Umrandung kommt.
(:table border=1 cellpadding=5 cellspacing=0:) (:head:) a1 (:cell:) b1 (:cell:) c1 (:cell:) d1 (:headnr:) a2 (:cell:) b2 (:cell:) c2 (:cell:) (:tableend:) | ||||||||
|
In HTML ist dies das Gleiche wie
<table border='1' cellpadding='5' cellspacing='0'> <tr> <th>a1</th> <td>b1</td> <td>c1</td> <td>d1</td> </tr> <tr> <th>a2</th> <td>b2</td> <td>c2</td> <td> </td> </tr> </table>
Fließende Tabelle mit Navigationsliste
Was, wenn man eine nette kleine Tabelle erzeugen wollte, die wie ein Inhaltsverzeichnis auf einer Seite wie dieser funktioniert? In diesem Beispiel fließt die Tabelle rechts (der Text fließt links herum) und enthält einige Verweise in einer Liste. Das ist eine nette Demonstration, wie es möglich, ist ein kleines Inhaltsverzeichnis zu erstellen, das vielleicht auch zu anderen Seiten der gleichen Gruppe verweist. Man beachte, dass eine Aufzählungsliste nicht in einer einfachen Tabelle funktionieren würde - Sie funktioniert nur innerhalb einer erweiterten Tabelle, wie im hier verwendeten Beispiel-Code.
(:table border=1 width=30% align=right bgcolor=#cccc99 cellspacing=0 :) (:cellnr:) '''Navigationsverweise''' (:cellnr:) *[[Tables|Einfache Tabellen]] *[[TableDirectives|Tabellendirektiven]] (:tableend:) | ||
|
(:table border=1 width=30% align=right bgcolor=#cccc99 cellspacing=0 :) (:cellnr colspan=2 align=center:) '''Navigationsverweise''' (:cellnr align=center:) [[Tables|Einfache Tabellen]] (:cell align=center:) [[TableDirectives|Tabellendirektiven]] (:tableend:) | ||||
|
Wenn man sich die hier verwendeten Auszeichnungen ansieht, erkennt man, dass die hexadezimale Farbe #cccc99 für den Tabellenhintergund verwendet wurde. Außerdem erzeugt die Auszeichnung (:cellnr:)
eine neue Zeile, eine neue Zelle und schließt die vorherige Zeile am Ende ab.
Sie können dieses Konzept noch etwas weiter treiben: Wenn Sie vielleicht in jeder Seite der Gruppe das gleiche Inhaltverzeichnis sehen möchten, können Sie nur EINE wie oben beschriebene Tabelle erzeugen und sie auf einer eigenen Seite ablegen. Dann können Sie sie auf jeder der eigenen Seiten einbinden. Der Textfluss (Ausrichtung, align=
) wird dann auf jeder Seite, in die das Inhaltsverzeichnis eingebunden wird, beachtet.
FAQ
Kann ich Tabellenköpfe definieren, indem ich die Tabellendirektive benutze?
Ja, benutzen Sie (:head:)
oder (:headnr:)
mit PmWiki version 2.2.11 oder neuer. Siehe auch Cookbook:AdvancedTableDirectives (auf Englisch)
Ist es möglich, verschachtelte Tabellen anzulegen?
Ja, wenn sie Einfache Tabellen in erweiterten Tabellen einschachteln.
Kann man Hintergrundbilder zu Tabellen oder Tabellenzellen hinzufügen?
Ja, siehe Cookbook:BackgroundImages (auf Englisch).
Ist es möglich, Stile auf Tabellenelemente anzuwenden, wie eine ID für die Tabellenzeile, oder eine Klasse / einen Stil für TD?
Ja, siehe $WikiStyleApply
.
Ist es möglich, TableCaptions in Tabellendirektiven zu benutzen wie in einfachen Tabellen? Ich habe ! Captiontext !
und (:caption:)
versucht. Das ging nicht.
Sehen Sie sich Cookbook:AdvancedTableDirectives (auf Englisch) an, dort gibt es u. a. die Direktive (:caption:)
.
Übersetzung von PmWiki.TableDirectives, Originalseite auf PmWikiDe.TableDirectives — Retroenlaces
Zuletzt geändert: | PmWikiDe.TableDirectives | am 14.05.2022 |
PmWiki.TableDirectives | am 13.05.2022 |