Tabellengestaltung für Fortgeschrittene

Tabellengestaltung (3) für Fortgeschrittene

(deutsche Übersetzung der Seite PmWiki.AdvancedTables, Stand 23.Nov 2004)

Es gibt vier Formatierungsanweisungen zum 'großangelegten' Formatieren von Tabellen. Alle Anweisungen müssen am Zeilenanfang stehen, um einen Effekt zu bewirken.

(:table (attr...):)

beendet eine etwaige vorherige Tabelle (äquivalent zu (:tableend:)) und erzeugt eine neue HTML-<table>-Formatierungsanweisung mit den durch 'attr' angegebenen Attributen. Gültige Attribute und deren Werte:

  • border (Tabellenrand -- eine positive ganze Zahl)
  • bordercolor (Farbe des Randes -- eine (englische) Farbbezeichnung oder eine Hexadezimalzahl, die eine Farbe kodiert; wird nicht in allen Browsern angezeigt)
  • cellspacing (eine positive ganze Zahl, die den Abstand zwischen Zellen bestimmt)
  • cellpadding (eine positive ganze Zahl, die den Abstand zwischen Zellinhalten und Zellrand bestimmt)
  • width (Tabellenbreite -- eine positive ganze Zahl oder eine Prozentangabe)
  • bgcolor (Hintergrundfarbe -- eine (englische) Farbbezeichnung oder eine Hexadezimalzahl, die eine Farbe kodiert)
  • align (Ausrichtung -- linksbündig, zentriert oder rechtsbündig)
  • summary (Zusammenfassung -- wird nicht dargestellt; vor allem genutzt, um Menschen mit Sehschwächen oder Blinden das Navigieren zu erleichtern)

(:cell (attr...):)

schließt die vorhergende Tabellenzelle (so es eine gibt) und erzeugt eine neue Zelle mit den durch 'attr' festgelegten Attributen. Diese Anweisung erzeugt HTML-Code: einen neuen "<td attr>"-tag (und -- soweit zur Erzeugung von korrektem HTML nötig -- die erforderlichen <table>, <tr> und </td>-tags).

  • align (horizontale Ausrichtung -- linksbündig, zentriert oder rechtsbündig)
  • valign (vertikale Ausrichtung -- oben, mittig oder 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 eine Farbe kodiert)
  • width (Zellenbreite -- eine positive ganze Zahl oder eine Prozentangabe)

(:cellnr (attr..):)

schließt die vorhergende Tabellenzelle (so es eine gibt) und erzeugt eine neue Zelle am Anfang der nächsten Tabellenzeile. Diese Anweisung erzeugt HTML-Code: einen neuen "<tr><td attr>"-tag (und -- soweit zur Erzeugung von korrektem HTML nötig -- die erforderlichen <table>, </td> und </tr>).

  • align (linksbündig, zentriert oder rechtsbündig)
  • valign (oben, mittig oder unten)
  • colspan (eine positive ganze Zahl)
  • rowspan (eine positive ganze Zahl)
  • bgcolor (eine (englische) Farbbezeichnung oder eine Hexadezimalzahl, die eine Farbe kodiert)
  • width (eine positive ganze Zahl oder eine Prozentangabe)

(:tableend:)

Schließt die vorhergehende Tabellenzelle und beendet alle Tabellen. Erzeugt die dazu erforderlichen HTML-tags </td>, </tr> und </table>.

Für die Formatierungsanweisungen 'table', 'cell' und 'cellnr' lassen sich alle Attribute spezifizieren, die in korrekten HTML-<table> und <td>-tags nutzbar sind. So kannst Du rowspan, colspan, usw. als Argumente angeben, um weitgehend 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 Anweisungen 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, den andere Leute verwendet haben, zu verstehen.

Typischer Einwand: Sicherlich würden unerfahrene oder durchschnittliche Autoren HTML-Code nicht direkt schreiben, sondern dazu ein Werkzeug wie FrontPage oder sogar MSWord benutzen. Dies wäre für die Autoren noch viel einfacher als selbst die einfachsten PmWiki-Formatierungsanweisungen neu zu lernen.
Pm's Entgegnung: Aber nachdem HTML mit externen Programmen erzeugt und ins Wiki eingespeist wurde: wie kann ein anderer Autor den Code bearbeiten und verändern, wenn er die ursprüngliche FrontPage or MSWord Datei, aus der der Code erzeugt wurde, nicht zur Verfügung haben. Denke daran, dass wir über gemeinschafliches Bearbeiten reden. Der HTML-Quelltext, den solche Programme erzeugen, gehört zu den am schwersten les- und bearbeitbaren HTML-Quelltexten.

Es ist schwierig, PmWiki so zu programmieren, dass es willkürliche 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 durch Lokale Anpassungen oder die Verwendung von Header/Footer-HTML-Kode die Verwendung von verschachtelten Tabellen ermöglichen.

Beispiel 1. Eine Tabelle mit erweiterten Formatierungsanweisungen.

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

was dem folgenden HTML-Code entspricht:

  
  <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>d2</td>
  </tr>
  </table>

<< Einfache Tabellen 2 | PmWikiDe.DokumentationsIndex | InterMap >>