BBCode (von engl. Bulletin Board Code) ist eine an HTML angelehnte, jedoch vereinfachte Auszeichnungssprache, die bevorzugt für die Erstellung von Beiträgen in Webforen (engl. Bulletin Boards) eingesetzt wird. BBCode ist nicht offiziell reglementiert, stellt aber wegen seiner hohen Verbreitung einen Quasi-Standard sowie eine Best Current Practice dar.

BBCode wurde erstmals 1998 in der Webforensoftware Ultimate Bulletin Board (UBB) Version 3 eingeführt und wird dementsprechend manchmal auch als UBB Code bezeichnet.

Beschreibung

Viele Textauszeichnungen funktionieren in BBCode analog zu HTML, beispielsweise [b]fett[/b], [i]kursiv[/i] und [u]unterstrichen[/u]. Zudem, sofern nicht direkt über HTML möglich, erlaubt BBCode auch komplexe Elemente wie zum Beispiel Listen, die folgendermaßen definiert werden:
[list] [*]Eintrag 1 [*]Eintrag 2[/list].

Oftmals ist BBCode über eine einfach zu bedienende Oberfläche ober- oder unterhalb des Eingabeformulars – ähnlich gängigen Text-Editoren – verfügbar. Dies erfolgt dann in Verbindung mit JavaScript oder serverseitigen Programmiersprachen, wie zum Beispiel PHP oder Perl. Gerne gibt es dann auch Pop-ups, in denen der auszuzeichnende Text, die Listenelemente usw. eingegeben werden kann. Natürlich kann man die Elemente auch von Hand eintragen.

Der Einsatz von BBCode ermöglicht es Benutzern, Texte ähnlich wie mit HTML auszeichnen, ohne dass das Eingeben von HTML erlaubt sein muss. Sicherheitsbedenkliche Elemente wie beispielsweise JavaScript oder das Layout der Webseite störende Tags können damit generell ausgeschlossen werden. Das Herausfiltern von gefährlichen HTML-Tags (bei gleichzeitigem Erlauben von ungefährlichen) kann sich nämlich leicht als fehlerträchtig oder unzureichend erweisen.

Aufbau und Umfang

Im Gegensatz zu anderen Auszeichnungssprachen ist BBCode nicht offiziell reglementiert, unterscheidet sich also von Implementierung zu Implementierung. Der grundlegende Aufbau und Umfang ist jedoch großteils gleich und bildet einen De-facto-Standard. Größere und auf ein Thema spezialisierte Foren erweitern den Standardsatz von BBCodes oft durch einige eigene Codes.

Element Auszeichnung in BBCode Äquivalent in XHTML
Auszeichnungselement [elementname]Inhalt[/elementname] <elementname>Inhalt</elementname>(Anm.)
einfache Schriftformatierung
[b]fett[/b]
[i]kursiv[/i]
[u]unterstrichen[/u]
[s]durchgestrichen[/s]
[center]zentriert[/center]
<b>fett</b> oder <strong>fett</strong>
<i>kursiv</i> oder <em>kursiv</em>
<span style="text-decoration:underline;">unterstrichen</span>
<span style="text-decoration:line-through;">durchgestrichen</span>,
in HTML5 auch: <del>durchgestrichen</del>
<p style="text-align:center;">zentriert</p>
erweiterte Schriftformatierung
[font=schriftart]Text[/font]
[color=farbe]farbiger Text[/color]
[size=schriftgröße]Text[/size]
<span style="font-family:schriftart;">Text</span>
<span style="color:farbe;">farbiger Text</span>
<span style="font-size:schriftgröße;">Text</span>
Gliederung
... lorem ipsum
(Leerzeile)
dolor ...
<p>... lorem ipsum</p>
<p>dolor ...</p>
Aufzählungsliste ohne Nummerierung
[list]
[*]Punkt
[*]Punkt
[/list]
<ul>
<li>Punkt</li>
<li>Punkt</li>
</ul>
Aufzählungsliste mit Nummerierung in arabischen Ziffern
[list=1]
[*]Punkt
[*]Punkt
[/list]
<ol>
<li>Punkt</li>
<li>Punkt</li>
</ol>
Aufzählungsliste mit Nummerierung in (kleinen) römischen Ziffern
[list=i]
[*]Punkt
[*]Punkt
[/list]
<ol type="i">
<li>Punkt</li>
<li>Punkt</li>
</ol>
Aufzählungsliste mit Nummerierung in (kleinen) Buchstaben
[list=a]
[*]Punkt
[*]Punkt
[/list]
<ol type="a">
<li>Punkt</li>
<li>Punkt</li>
</ol>
Verweise
[url=http://example.com]Linktext[/url]
[url]http://example.com[/url]
<a href="http://example.com">Linktext</a>
<a href="http://example.com">http://example.com</a>
Bilder
[img]example.com/bild.jpg[/img]
<img src="http://example.com/bild.jpg" alt="bild.jpg" />
Smileys
:-) oder :)
<img src="/smileys/happy.png" alt="Smiley" />
Quelltext
[code]
Code jeglicher Art
[/code]
<pre>
Code jeglicher Art
</pre>

Die echte HTML-Syntax ist üblicherweise fortgeschrittener als hier dargestellt.

Zitate (nur als Blockzitat)
[quote]Zitat[/quote]
[quote=Autor]Zitat[/quote]
<blockquote>Zitat</blockquote>
<blockquote><div class="postedby">Zitat von Autor</div><p>Zitat</p></blockquote>

Das Parsing von BBCode zu HTML ist hier vor allem bei Nennung des Autors abgesehen von <blockquote> sehr uneinheitlich. Innerhalb des Blockquote finden sich üblicherweise noch weitere Elemente.

(Anm.) 
In der Tabelle eventuell zu sehende Zeilenumbrüche innerhalb der HTML-Elemente sind der individuellen Fensterbreite geschuldet. Im Quelltext sind sie nicht enthalten.

Parsing

Es gibt mehrere Möglichkeiten wie mit BBCode ausgezeichnetem Text umgegangen werden kann. Da Anwendungen wie Webbrowser oder Office-Software keine eigenständige Erweiterung mit sich bringen, um den in BBCode formatierten Text korrekt darstellen zu können, wird der Originaltext zuerst in korrektes HTML gewandelt. Es wäre auch denkbar für Webbrowser eine Erweiterung zu entwickeln, die mit BBCode formatierten Text darstellen kann.

Um BBCode wieder in HTML zu überführen wird ein Parser benötigt, der BBCode Tags erkennt und diese dann mit dem HTML Pendant ersetzt. Für die Programmiersprachen JavaScript, PHP und .NET existieren bereits fertige Implementierungen, die diese Aufgabe übernehmen.

Einzelnachweise

  1. scriptkeeper.com: What is UBB Code?
  2. BBCode implementations. bbcode.org, abgerufen am 12. Januar 2022 (englisch).
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.