Zur Formatierung von Texten wird der sogenannte Builletin-Board Code (Kurz BBCode) verwendet.
Es handelt sich dabei um in den Text eingefügte Angaben. Solche BBCodes werden in vielen Systemen angewendet, wo Benutzer Texte eingeben, die im Netz publiziert werden sollen. Da dabei natürlich auch Fehler gemacht werden, wird durch die Analyse des Codes verhindert, dass dadurch der übergeordnete Aufbau der Website zerstört wird. Im Normalfall reagiert das System auf Fehler damit, dass der betreffende BBcode nicht aufgelöst wird und im Text stehen bleibt.
1
Die Codes bestehen aus Paaren sogenannter Tags, die den jeweils betroffenen Textabschnitt „einklammern”.
So wird Fettdruck dadurch angewiesen in dem man den betreffenden Text in ein Tag „b” stellt:
„Normaler Text[b]Fett gedruckter Text[/b]Normaler Text” im Eingabefeld wird zu „Normaler TextFett gedruckter TextNormaler Text”. Der Text zwischen öffnendem und schließenden Tags wird als der Inhalt des Tags bezeichnet.
Einzelne Tags haben keinen Inhalt. In diesen Fällen ist dann kein schließendes Tag definiert.
Wie zu sehen ist, werden die Tags in eckige Klammern gesetzt. Das schließende Tag wird durch ein / eingeleitet. Zwischen der öffnenden [ und dem Tag darf kein Leerzeichen sein.
Manche Tags erlauben noch sogenannte Attribute, die bei den öffnenden Tags innerhalb der Klammern angegeben werden. Die Attribute haben die Form attname=attvalue oder attname="attvalue". Die Anführungszeichen sind dann erforderlich, wenn der Wert des Attributes Leerzeichen oder andere Steuerzeichen enthält. In den meisten Fällen sind die Attribute optional, wenn sie nicht angegeben werden nimmt das System einen vernünftigen Standardwert an.
So bedeutet etwa (td ist das Tag für eine Tabellenzelle) [td cs=3]Tabellenzelleninhalt[/td], dass sich die Tabellenzelle über drei Tabellenspalten erweitert.
Es kann auch ein unbenanntes Attribut auftreten. Dabei folgt das = unmittelbar auf das Tag. Ein Beispiel ist die Angabe eines externen Links in der url Angabe nach Typ 1: [url=www.google.de]Hier geht es zu Google[/url] Ein solches Attribut wird als Defaultattribut bezeichnet.
BBcodes können „verschachtelt” werden. So können innerhalb eines Tagpaares andere Tagpaare erscheinen. Dabei ist darauf zu achten, das das zuletzt geöffnete Paar als erstes wieder geschlossen wird.
Ein korrektes Beispiel: [i]„Ein[b]fett ausgegebener Teil[/b] im kursiven Text”[/i] wird zu
„Einfett ausgegebener Teil
im kursiven Text”
Im folgenden Beispiel werden die Tags unsymmetrisch geschlossen: [i]„Ein[b]fett ausgegebener Teil[/i] im Text”[/b]. Durch das vorgezogene [/i] wird die Symmetrie verletzt. Das System schließt deshalb davor den [b]-Bereich ab. Damit ist der nachfolgende Teil „im Text” nicht mehr dazugehörig und das vorhandene [/b] wird als überflüssig angesehen.
„Einfett ausgegebener Teil
im Text”[/b]
Die BBcodes werden vom jeweiligen System definiert, aber es haben sich für viele Tags im Netz schon Konventionen herausgebildet, die auch hier befolgt werden. Für zusätzliche Funktionen werden eigene Bezeichner verwendet.
Die nachfolgende Tabellen geben einen Überblick über die im System zur Texteingabe verwendeten Tags. In deren Anschluss werden die Besonderheiten einzelner Tags erläutert.
1
In Einzelfällen wird die Fehlerursache dem Text vorangestellt
size hat ein Defaultattribut, das die Schriftgröße angibt.
b
color hat ein Defaultattribut, das die Farbe angibt.Die Farbe kann als RGB code oder mit den html-Farbnamen (Siehe Farbtabelle) angegeben werden.
Durch diese Tags werden typographische Textauszeichnungen angegeben. Außer size und color keine Attribute.
Nach oben
3 Tabelle von Htmlfarben
Hier werden definierte Farbnamen aufgelistet und die Farben dargestellt. Neben den Farbnamen wird der zugehörige RGB-code in hexadezimaler Form angegeben. Nicht aufgelistete Farben können nur durch den entsprechenden RGB-code bestimmt werden.
Wenn Sie die Schrift über einer Farbe nicht lesen können, gehen Sie mit dem Mauszeiger auf die entsprechende Zeile. Die Farbe der Schrift verändert sich dann.
Der RGB-code kann wie folgt angegeben werden:
Angabe in Dezimalform: rgb(r,g,b) Die Werte r,g,b stehen für rot,grün,blau und können zwischen 0 und 255 liegen. [color="rgb(255,0,0)"]Roter Text[/color] wird also als
Roter Text
dargestellt.
Angabe als dreistellige Hexadezimalzahl #RGB Die Werte R,G und B stehen wieder für die entsprechenden Farbwerte, Sie können die Ziffern 0 bis 9 oder einen der Buchstaben A bis F bzw a bis f annehmen Die Buchstaben sind bei Hexadezimalzahlen eine Erweiterung des Ziffernbereiches A bzw a entspricht 10, B bzw b entspricht 11 usw. bis F bzw. f entspricht 15. [color="#00F"]Blauer Text[/color] wird also als
Blauer Text
dargestellt.
Angabe als sechsstellige Hexadezimalzahl #rrggbb Die Werte rr,gg und bb stehen wieder für die entsprechenden Farbwerte. Es sind also zweistellige Hexadezimalzahlen (Hexadezimal heißt, es ist ein Zahlensystem, das auf der 16 aufbaut. Unser gewöhnliches dezimales Zahlensystem baut auf der 10 auf. Der Wert eines solchen Ziffernpaares berechnet sich also durch Ziffer1*16+Ziffer2). x08 ist also 0*16+8=8 ; xA4 ist 10*16+4=164 und xFF 15*16+15= 255. Damit wird [color="#40E0D0"]Türkiser Text[/color] also als
Türkiser Text
dargestellt. In der Farbtabelle wird diese Farbe als „turquoise” bezeichnet. Man hätte also auch [color="turquoise"]Türkiser Text[/color] =
Türkiser Text
schreiben können.
Durch die Tags h1 bis h6 werden unterschiedliche Überschriften gekennzeichnet. Die Darstellung der Überschriften ist abhängig vom Layout. [index sub=BBcode key="h1,h2,h3,h4,h5,h6][/index]
Überschriften
tag
Bedeutung
Anwendung
Ergebnis
h1
headline1
[h1]Überschrift Level1[/h1]
Überschrift Level1
h2
headline2
[h2]Überschrift Level2[/h2]
Überschrift Level2
h3
headline3
[h3]Überschrift Level3[/h3]
Überschrift Level3
h4
headline4
[h4]Überschrift Level4[/h4]
Überschrift Level4
h5
headline5
[h5]Überschrift Level5[/h5]
Überschrift Level5
h6
headline6
[h6]Überschrift Level6[/h6]
Überschrift Level6
5 Automatische Nummerierung und Inhaltsverzeichnis
Es ist möglich die Abschnitte eines Artikels (und nur von Artikeln) automatisch zu nummerieren und automatisch ein Inhaltsverzeichnis zu erzeugen. Sie wird durch das Tag [contenttable] eingeschaltet und konfiguriert. Das Tag hat eine Reihe von Attributen, die die Nummerierung und das Inhaltsverzeichnis steuern. Sie werden in der nachfolgenden Tabelle vorgestellt. Es muss am Anfang eines Artikel vor der ersten Überschrift und darf nur einmal angegeben werden.
Achtung!. Wenn [contenttable] genutzt wird, müssen die Überschriftenlevel korrekt genutzt werden. Das bedeutet, dass mit einer Überschrift h1, also Level =1 beginnend die nachfolgenden Überschriften nur einen Level haben dürfen, der maximal um eins erhöht ist. Auf [h1][/h1] darf also direkt nur wieder [h1][/h1] oder [h2][/h2] nicht aber [h3][/h3] notiert werden. Auf [h3][/h3] darf in aufsteigender Richtung demnach nur [h4][/h4] folgen. In absteigender Richtung dagegen gibt es keine Beschränkung es darf also auf [h3][/h3] [h2][/h2] , [h1][/h1] und natürlich auch [h3][/h3] folgen.
Automatische Nummerierung und Inhaltsverzeichnis
tag
Bedeutung
Anwendung
Erläuterung
contenttable
Numerierung der Toplevel (h1)- Überschriften
[contenttable h1=1]
Mit dieser Anweisung werden die mit markierten [h1][/h1] Überschriften mit Dezimalzahlen nummeriert. Mögliche Werte für die Nummerierungsattribute sind:
1 : Nummerierung
a : Nummerierung mit Kleinbuchstaben
A : Nummerierung mit Großbuchstaben
α : Nummerierung mit griechischen Buchstaben
aa : Nummerierung mit doppelten Kleinbuchstaben
AA : Nummerierung mit doppelten Großbuchstaben
αα : Nummerierung mit doppelten griechischen Buchstaben
i : Nummerierung mit klein geschriebenen römischen Zahlen
I : Nummerierung mit groß geschriebenen römischen Zahlen
Diese Anweisungen führen zur Klassifikation aller Überschriften nach Maßgabe der angegebenen Attribute. (h4 bis h6 müssen nicht angegeben werden, da sie im Beispiel nicht verwendet werden. Werden sie es dennoch, bekommen sie keine Nummerierung.
Diese Anweisungen führt zum Anlegen eines Inhaltsverzeichnis am Anfang des Artikels. Das Inhaltsverzeichnis besteht aus eine Liste von Links zu allen Abschnitten. Eine Nummerierung ist nicht unbedingt erforderlich.
Verzeichnis des Inhalts
I Abschnitt 1
I Abschnitt 1
I.A Unterabschnitt 1A
I.B Unterabschnitt 1B
I.B.α Unterunterabschnitt 1Ba
I.B.β Unterunterabschnitt 1Bb
II Abschnitt 2
II.A Unterabschnitt 2A
Wird at=end angegeben erscheint das Inhaltsverzeichnis am Ende des Artikels. Mit title wird eine Überschrift zum Inhaltsverzeichnis angegeben.
Zur Navigation zählen die unterschiedlichen Methoden Hyperlinks anzugeben. Der „klassische” Weg ist dabei die Angabe der Adresse der Zielseite über [url]. Dabei müssen die Adressen externer Seiten vollständig, also mit dem Präfix ‚http://‛ angegeben werden. Die über [url] verlinkte Seite wird, abhängig von der Einstellung des verwendeten Browsers, in einem neuen Tab(Reiter) oder einem neuen Fenster angezeigt.
Verlinkungen innerhalb einer Seite werden durch [goto] hergestellt. Die dazugehörigen Zielmarken können durch [mark] definiert werden. Die Zielmarke 'top' ist vordefiniert. [goto=top]Nach oben[/goto] verweist also auf den Anfang der Seite:
Nach oben.
Mailadressen werden über [mail] angegeben. Ein Klick auf einen solchen Link ruft das Mailtool des Clienten auf. Wenn das nicht korrekt eingerichtet ist, etwa wenn der Client keinen direkten Mailaccount besitzt, ist das natürlich nicht möglich. Dann muss der Client die Mailadresse B. über das Kontextmenü (rechte Maustaste) kopieren.
Über [pagelink] können interne Seiten des Projektes oder von Nachbarprojekten erreicht werden. Über die Attribute page=targetfile (mit Extension!) wird der Zielfile spezifiziert. Durch die optionalen Attribute project und domain werden Nachbarprojekte oder Nachbardomänen erreicht. Werden sie nicht angegeben, gilt das aktuelle Projekt bzw die aktuelle Domäne. Zusätzliche GET-Parameter werden ebenfalls als Attribut mitgegeben.
Die Verknüpfung über [pagelink] setzt natürlich Wissen über die Struktur des Projektes voraus. Einfacher ist die Verknüpfung mit einem anderen Artikel des Projektes über [paper] Es genügt dazu den Namen oder den Datentbankidentifier anzugeben. Der Linktext für den Link wird entweder aus Titel und Untertitel des Artikels gebildet oder durch das zusätzliche Attribut ‚legende‛ bestimmt. Wenn im Text des Artikels eine Marke bekannt ist, kann sie auch direkt angesprungen werden. Sie muss dazu mit dem Attribut ‚mark‛ angegeben werden. Das Tag [paper] ist ein sogenanntes Singeltag. Die Angabe von [/paper] ist nicht nötig und auch nicht zulässig.
Codes für die Navigation
tag
Bedeutung
Anwendung
Ergebnis
mark
Markierung
[mark=Marke]
url
urltyp1
[url=http://www.google.de]Hier geht es zu Google[/url]
Listen werden durch das Tag [list] definiert. Die einzelnen Items werden jeweils durch den Marker [*] eingeleitet. Die Angabe des jeweils Abschließenden [/*] ist optional. Sie empfiehlt sich bei verschachtelten Listen.
Die Darstellung der Listen kann durch das Defaultattribut verändert werden. ([list=x] wobei x ∈ {1,0,a,A,i,I,c,s,d,n} Die Bedeutung der einzelnen Zeichen entnehme man der Tabelle.
Listen können auch verschachtelt werden. Ein Beispiel findet sich in der letzten Tabellenposition.
Zur Beschreibung von Tabellen sind mehrere Tags nötig. Die gesamte Tabelle wird durch das Paar [table] ... [/table] umschlossen. Jede Zeile der Tabelle wird durch [tr] ... [/tr] umschlossen. Und darin werden die einzelnen Zellen durch [td] ... [/td] oder [th]...[/th] beschrieben. (Siehe Beispiel 1 in der Tabelle.)
Durch th werden Zellen beschrieben, die Spalten- bzw Zeilenüberschriften enthalten. Sie werden dementsprechend anders dargestellt. (Beispiel 2)Tabellen
Benachbarte Zellen können zusammengefasst werden. Dies geschieht durch Attribute "cs" für Zusammenfassung über mehrere Spalten oder "rs" für das Zusammenfassen über mehrere Zeilen. Damit lassen sich beliebige Layouts erstellen, wie das Beispiel 3 zeigt. Die einzelnen Zellen werden immer in der Zeile beschrieben, in der sie zuerst erscheinen.Tabellenzellen
Tabellen
Beispiel1
Bedeutung
Anwendung
Ergebnis
1.
Einfache Tabelle 2 mal 2
Text vor der Tabelle
[table]
[tr]
[td]zelle 1.1[/td]
[td]zelle 1.2[/td]
[/tr]
[tr]
[td]zelle 2.1[/td]
[td]zelle 2.2[/td]
[/tr]
[/table]Text nach der Tabelle
Text vor der Tabelle
zelle 1.1
zelle 1.2
zelle 2.1
zelle 2.2
Text nach der Tabelle
Dies ist die einfachste Form einer Tabelle. Wie man sieht, wird die Tabelle Zeile für Zeile aufgebaut und in den einzelnen Zeilen werden die Zellen beschrieben.
Die erste Zeile enthält nur Headzellen als Spaltenüberschriften. In den einzelnen Zeilen ist hier nur die erste Zelle als Zeilenindex durch th ausgezeichnet.
In diesem Beispiel werden verschiedene Zusammenfassungen über mehrere Zeilen und Spalten dargestellt. Es ist zu sehen, dass auch das gleichzeitige Zusammenfassen über Zeilen und Spalten möglich ist.
Referenzen sind in diesem Zusammenhang Fußnoten bzw. Endnoten. Da es in html keine definierten Seitenenden gibt, muss man eher von Abschnittsnoten und Endnoten unterscheiden. Betrachten wir erst die Endnoten.
Durch [ref]...[/ref] wird eine Endnote gekennzeichnet. Wir schreiben also: Dieser Text wird durch eine Endnote[ref]Dies ist eine Endnote zum Text im Abschnitt „Referenzen”[/ref]1
näher erklärt. Auf einer Htmlseite können beliebig viele Endnoten angegeben werden, sie werden fortlaufend numeriert.
Wenn die Referenzen nur über einen bestimmten Abschnitt aufgesammelt werden und dann an dessen Ende aufgelistet werden sollen, sprechen wir von Abschnittsnoten. Dazu wird durch [defref name=]...[/defref] ein Abschnittsbeginn definiert. Der Name des Abschnitts wird durch das Attribut "name" angegeben, das den Namen des Bereiches bestimmt und die Numerierungsweise durch das Attribut "code". Als Numerierungsweise stehen die Werte 1,a,A zur Verfügung.[indexkey=Referenzenabschnitt sub=Öffnen][/index]
Durch [evalref name=]...[/evalref] werden die Referenzen die im Bereich "name" aufgesammelt sind ,ausgegeben. Der Bereich wird dadurch gelehrt. Er kann anschließend weiter genutzt werden.[/index]
Referenzen
tag
Bedeutung
Anwendung
Ergebnis
defref
Definition eines Abschnitts
[defref name=tabelle code=a]
ref
Endnote
Text[ref]Endnotentext in der Tabelle[/ref]
Text2
Der Text der Endnote erscheint am Ende der Seite
Abschnittsnote
Text[ref name=tabelle]Abschnittsnotentext[/ref]
Texta
Der Text der Abschnittsnote erscheint im nächsten Tabellenabschnitt
Ein Bild in [image name="Kurrende.jpg" float=right width=150] einem Text
Ein Bild in
einem Text
Es ist der Name eines hochgeladenen Bildes anzugeben. Das Bild wird in dem durch width und height angegebenen Rahmen dargestellt, wobei das Seitenverhältnis erhalten bleibt, und verlinkt mit der höchstmöglichen Auflösung. Das Attribut float bestimmt die Lage des Bildes. float=right bedeutet, dass das Bild rechts vom umfließenden Text steht.
Die Attribute haben die gleiche Bedeutung wie bei image. Durch das Attribut ‚legende‛ kann eine Bildunterschrift eingefügt werden. Wird zu legende kein Wert angegeben, wird die Bildunterschrift aus der Datensatzbeschreibung übernommen. Wird ein Wert angegeben ist dieser die Bildunterschrift.
Durch das Zeichen
⌘
wird ein Link auf die Datensatzbeschreibung bezeichnet.
Wie bei Bildern kann durch das Attribut ‚legende‛ eine Unterschrift eingefügt werden. Wird zu legende kein Wert angegeben, wird die Unterschrift aus der Datensatzbeschreibung übernommen. Wird ein Wert angegeben ist dieser die Unterschrift.
Durch das Zeichen
⌘
wird ein Link auf die Datensatzbeschreibung bezeichnet. Das Zeichen
⇊
verweist auf den Audiofile.
Der hier verwendete Player wird nur bei mp3-Files angeboten. Bei anderen Fileformaten hängt die Darstellung und Wiedergabe von den Möglichkeiten des verwendeten Browsers ab. Durch die Attribute width und height kann die Größe des Players variiert werden.
Wie bei Bildern kann durch das Attribut ‚legende‛ eine Unterschrift eingefügt werden. Wird zu legende kein Wert angegeben, wird die Unterschrift aus der Datensatzbeschreibung übernommen. Wird ein Wert angegeben ist dieser die Unterschrift. Wird legende nicht angegeben erscheint lediglich das Downloadsymbol
⇊
das auf den Dokumentfile verweist.
Durch das Zeichen
⌘
wird ein Link auf die Datensatzbeschreibung bezeichnet.
medium kann statt der nebenstehenden Codes (und nur dieser) verwendet werden. Die Unterscheidung der verschiedenen Datentypen erfolgt aufgrund der in den Datensatznamen enthaltenen Extension.
Bei externen Bildern werden width und height direkt ausgewertet. Das Seitenverhältnis wird also durch die beiden Werte bestimmt. Soll es erhalten bleiben, darf nur einer der beiden Werte angegeben werden. Werden beide Werte mit 0 angegeben, wird das Bild in voller Auflösung angezeigt.
Es werden die Titel von pagesize Objekten (In den meisten Fällen die neuesten bzw die aktuellsten) als Link auf die entsprechenden Objekte angezeigt. Derzeit sind die Klassen Termlist, Guestbook, Domain und Concert möglich.
snippet
Einbindung eines Textbausteins
[snippet name=HilfeSnippetBeispiel]
Dies ist ein Beispiel für die Demonstration eines Textbausteins.
Das Einbinden von Textbausteinen erfolgt vorab, das heißt erst wenn alle Textbausteine eingefügt sind, werden alle anderen BBcodetags aufgelöst. Die Einzelheiten werden
hier
beschrieben.
snippet
Einbindung eines Textbausteins mit variablem Anteil
Innerhalb von [code] ... [/code] wird der BBcode nicht aufgelöst. Der enthaltene Text wird in einer Monospaceschrift dargestellt. Dient zur Darstellung von Quelltexten.
quote
Zitat
[quote]Dies ist ein Zitat[/quote]
Dies ist ein Zitat
Durch [quote] ... [/quote] wird der enthaltene Text als Zitat ausgewiesen. Die Darstellung, die sich vom übrigen Text abhebt, wird durch das Layout bestimmt.