Hauptseite | Hilfe | Tabellendirektiven


Tabellendirektiven

Es gibt vier Direktiven für erweiterte Tabellen. Alle Tabellendirektiven müssen am Anfang einer Zeile stehen, um wirksam zu werden.

(:table (attr...):)

Diese Tabellendirektive erzeugt eine neue HTML <table> mit den in attr... angegebenen Attributen und 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: 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...):)

Diese Tabellendirektive erzeugt eine neue Zelle mit den in attr... angegebenen Attributen und beendet eine eventuell vorher vorhandene Zelle. Im HTML-Quelltext wird eine neue "<td attr>" Anweisung erzeugt und vielleicht auch <table>, <tr> und </td> Anweisungen, falls notwendig, um eine gültige HTML Tabelle zu erzeugen. Gültige Attribute und Werte sind:

  • align: horizontale Ausrichtung -- linksbündig, zentriert oder rechtsbündig
  • valign: vertikale Ausrichtung -- top, middle or bottom
  • colspan: eine positive ganze Zahl; gibt an, über wie viele Spalten sich die Zelle erstrecken soll
  • rowspan: eine positive ganze Zahl; gibt an, über wie viele 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

(:cellnr (attr..):)

Diese Tabellendirektive erzeugt eine neue Zelle am Anfang der nächsten Zeile und beendet eine vorherige Tabellenzelle, falls vorhanden. Im HTML-Quelltext wird eine "<tr><td attr>" Anweisung erzeugt. Zusätzlich auch <table>, </td> und </tr>, falls notwendig, um gültiges HTML zu erzeugen. Gültige Attribute und Werte sind:

  • align: horizontale Ausrichtung -- linksbündig, zentriert oder rechtsbündig
  • valign: vertikale Ausrichtung -- top, middle or bottom
  • colspan: eine positive ganze Zahl; gibt an, über wie viele Spalten sich die Zelle erstrecken soll
  • rowspan: eine positive ganze Zahl; gibt an, über wie viele 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

(:tableend:)

Schließt die letzte Tabellenzelle und schließt auch jegliche Tabelle. Erzeugt </td>, </tr> und </table>, wie benötigt.

Anmerkungen

Für die Formatierungsanweisungen 'table', 'cell' und 'cellnr' lassen sich alle Attribute spezifizieren, die in korrekten HTML-<table> und <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.

Profis werden vermutlich fragen, warum die Software von Pm Wiki nicht einfach die normalen HTML-Tabellen-Formatierungsanweisungen (<table>, <tr>, <td>, <th>) nutzt und damit verschachtelte Tabellen ermöglicht, anstatt gänzlich neue Auszeichnungen zu erfinden. Darauf gibt es zwei Antworten:

  • Zum einen sind die HTML-Formatierungsanweisungen für Tabellen für unerfahrene Autoren sehr hässlich und schwer zu benutzen.
  • 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 Webseitenprogrammierern passieren ab und an Fehler bei der HTML-Codierung von Tabellen. Es ist nicht zu erwarten, dass durchschnittliche Autoren ohne HTML-Kenntnisse dies richtig hinbekommen oder in der Lage sind, komplizierten HTML-Code zu verstehen, den andere Autoren mit HTML-Kenntnissen verwendet haben.

Dagegen könnte man einwenden: Sicherlich würden unerfahrene oder durchschnittliche Autoren HTML-Code nicht direkt schreiben, sondern dazu ein Werkzeug wie FrontPage oder einfach nur MSWord benutzen. Dies wäre für diese Autoren doch viel einfacher als die einfachsten PmWiki -Formatierungsanweisungen neu zu lernen.

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 oder MSWord Datei, aus der jener Code erzeugt wurde, nicht zur Verfügung hat? Man muss daran denken, dass wir bei einem Wiki ü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 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 durch lokale Anpassungen oder die Verwendung von Header/Footer-HTML-Code die Verwendung von verschachtelten Tabellen ermöglichen.

Erweiterte Formatierungsanweisungen

Beispieltabelle 1


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

In HTML sähe das so aus:

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

Umflossene Tabelle mit Navigationsliste

Navigation

Was, wenn man eine kleine Tabelle erzeugen will, die wie ein Inhaltsverzeichnis auf einer Seite wie dieser funktioniert? In diesem Beispiel ist die Tabelle rechts positioniert, der Text fließt links herum und die Tabelle enthält einige Verweise in einer Liste. Das ist eine Demonstration, wie es möglich ist ein kleines Inhaltsverzeichnis zu erstellen, das vielleicht auch zu anderen Seiten der gleichen Gruppe verweist. Beachten Sie dabei, dass eine solche Aufzählungsliste nicht in einer einfachen Tabelle funktionieren würde - sie funktioniert nur innerhalb einer erweiterten Tabelle, wie im hier verwendeten Beispielcode.

(:table border=1 width=30% align=right bgcolor=#cccc99 cellspacing=0 :)
(:cellnr:)
'''Navigationsverweise'''
(:cellnr:)
*[[Einfache Tabellen]]
*[[Tabellendirektiven]]
(:tableend:)

Navigationsverweise

(:table border=1 width=30% align=right bgcolor=#cccc99 cellspacing=0 :)
(:cellnr colspan=2 align=center:)
'''Navigationsverweise'''
(:cellnr align=center:)
[[Einfache Tabellen]]
(:cell align=center:)
[[Tabellendirektiven]]
(:tableend:)

Navigationsverweise

Einfache Tabellen

Tabellendirektiven

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.

Man kann dieses Konzept noch etwas weiter treiben: Wenn man vielleicht in jeder Seite einer Wikigruppe? das gleiche Inhaltsverzeichnis sehen möchte, kann man nur EINE wie oben beschrieben Tabelle erzeugen und sie auf einer eigenen Seite ablegen. Dann kann man sie auf jeder der eigenen Seiten einbinden?. Der Textfluss (Ausrichtung) wird dann auf jeder Seite, in die das Inhaltsverzeichnis eingebunden wird, gleich gelten. Nicht schlecht!


Hauptseite | Hilfe | Tabellendirektiven




FacebookTwitThis
Pin ItMister Wong
RSS-Feed RDF-Feed ATOM-Feed

schliessen