Was sind BB-Codes?

Was sind BB-Codes?

Der Begriff BB-Code ist vielleicht nicht jedem bekannt, dennoch wird dieser aber täglich in Foren verwendet. BB-Code (Abkürzung für Bulletin Board Code) ist eine HTML ähnliche Sprache, welche  Textformatierungen und verschiedenste Integrationen in Forenbeiträgen erlaubt. BBCode ist im Gegensatz zu HTML nicht reglementiert. Dennoch hat sich ein Quasi-Standard durchgesetzt, da alle Foren dieselben BB-Codes als Basis verwenden. Darüber hinaus kann es dann schon je nach Software unterschiedliche BB-Codes geben.

Warum BB-Code und nicht HTML?

Warum hat man nicht einfach HTML genommen, sondern eine eigene, vereinfachte Version einer Auszeichnungssprache entwickelt?

Der Vorteil einer eigenen Auszeichnungssprache liegt darin, daß man diese separat verwalten und somit Teile freigeben oder auch sperren kann. Ohne BB-Code müsste man entweder nur Text erlauben, was das ganze natürlich langweilig und eintönig machen würde (keine Bilder, keine Formatierungen wie Fett, zentiert usw.) oder man müsste HTML gestatten.

Da die Webseite im Browser als HTML aufgebaut angezeigt wird, ist es nicht sinnvoll HTML als Eingabesprache den Usern zu gestatten. Wenn man HTML generell erlauben würde ist es aus mehreren Gründen gefährlich:

  • Es könnte zum beispielsweise Javascript eingebunden werden, ein iFrame oder sonstiger Fremd- oder Schadcode.
  • User, die dem Forum schaden möchten wird es relativ leicht gemacht den Betrieb zu stören oder noch schlimmeres anzustellen
  • User, die sich mit HTML schlecht auskennen werden mit großer Wahrscheinlichkeit fehlerhafte oder falsche Tags eingeben, vergessen Tags zu schließen und könnten so auch ungewollt Einfluss auf das gesamte Layout der Webseite nehmen und dieses zerstören oder auch Funktionen unbrauchbar machen.

Natürlich könnte man über die Software auch hergehen und gefährliche HTML Codes herausfiltern und ungefährlichen Code durchlassen. Aber die Gefahr, dass man was übersieht bleibt immer akut. Und wenn man nun ohnehin schon extra filtern muss ist es nur ein kleiner und eigentlich logischer Schritt zu einem eigenen Parser, welcher BB-Code interpretiert und somit sicherer ist. Ein weiterer Grund, warum sich schlußendlich BBCode durchgesetzt hat ist der Vorteil, daß man die in HTML für Normaluser eher schwierigere Syntax sehr vereinfachen kann.

BB-Code setzt somit beim Benutzer kein Fachwissen voraus und eine eventuelle falsche Syntax macht nichts aus.

Ein Beispiel für die Einfachheit von BB-Codes wäre der Tag URL.

Einen anklickbaren Link erstellen in BB-Code:

[URL]http://www.linkzurwebseite.de[/URL]

Dasselbe in HTML:

<a href=“http://www.linkzurwebseite.de“>http://www.linkzurwebseite.de</a>

Bekannte BB-Codes

Die bekanntesten und einfachsten BB-Codes ähneln HTML sehr, hier werden nur statt < und >, [ und ] verwendet.

  • [b]fettgeschriebener Text[/b]
  • [i]kursiver Text[/i]
  • [u]unterstrichener Text[/u]

Weitere überall bekannte BB-Codes sind URL (Link anklickbar machen), IMG (Bild einbinden), QUOTE (Zitate) oder auch LIST (Liste erzeugen)

Da BB-Code wie am Beginn bereits erwähnt wurde nicht reglementiert ist, können sich weitere Codes durchaus von Forum zu Forum unterscheiden. Hier eine Liste, welche BB-Codes das vBulletin zur Verfügung stellt.

BB-Code eingeben oder auswählen

Damit BB-Code nicht von Hand eingegeben werden muss haben die allermeisten Foren eine Menüleiste über dem Editor, wo Buttons den ensprechenden BB-Code einfügen. So wird es komfortabel damit zu schreiben. Einfach ein Wort markieren und oben auf B (für BOLD = fett) klicken und schon fügt sich der BB-Code selbst korrekt ein. Bei manchen BB-Codes kommt ein Dialogfenster wo die benötigten Daten abgefragt werden.


Noch komfortabler sind sogenannte WYSIWYG Editoren. Diese stellen den Text nach BB-Code Anwendung gleich korrekt in der End-Formatierung dar.

Diese Funktionalität bieten bislang noch nicht alle Forenanbieter an.

Der Screenshot rechts wurde einem Woltlab Burning Board 3 entnommen, diese Software bietet dies als Standard an.

Der BBCode Parser – so funktioniert BB-Code im Hintergrund

Manche Forensoftware gestattet es dem Administrator auch, BB-Codes zu verändern oder neue BBCodes anzulegen. Im Prinzip ist dies auch nicht schwierig, wenn man weiß wie der Parser arbeitet. Für alle die es etwas näher wissen wollen noch ein Mini-Ausflug:

Der BB-Code wird wie eingegeben in der Datenbank des Forums gespeichert. Wenn der Beitrag aber angezeigt werden soll, muss der BB-Code in HTML übersetzt werden, damit der gewünschte Effekt (beispielsweise eine Formatierung wie Fettdruck oder ein Bild anzeigen) im Browser auch angezeigt wird. Diese Aufgabe übernimmt der sogenannte Parser, welcher serverseitig vor einer Seitenauslieferung läuft. Der Parser durchsucht also den Text nach den BB-Codes und ersetzt diese durch  HTML Codes. Syntaxfehler werden ausgeschlossen, da ein guter Parser nur korrekt geöffnete und geschlossene BB-Code Tags umsetzt. Sonst bleibt der Text halt einfach stehen und nichts weiter passiert.

Der Parser ist einfach gesagt ein BB-Code zu HTML-Code Umwandler.

Es gibt grob gesagt 3 Dinge die ein Parser „wissen“ muss um arbeiten zu können:

  1. Der zu übersetzende Text
  2. Welchen BB-Codes er suchen muss (z.B. [b] und [/b]) und
  3. wie der HTML Code dazu aussieht (z.B. <b> und </b>)

Dann geht der Parser den Text (1) durch, sucht die BB-Code-Tags (2) und ersetzt diese durch die entsprechenden HTML-Tags (3). Möchte man nun einen eigenen BB-Code anlegen, dann legt man neue BB-Code-Tags (2) fest und beschreibt für den Parser das HTML-Gerüst (3) dazu. Thats all ;)

Ich möchte bei diesem Beitrag nicht zu tief in die Programmierung reingehen, sollte es aber euch näher interessieren kann ich darüber noch einen eigenen ausführlichen Beitrag verfassen.

Einfache Parser gibts auch online z.B. http://www.bbcode-to-html.com. Da könnt ihr selbst BB-Code Beispiele eingeben, auf den Convert Button klicken und dann seht ihr den umgewandelten HTML Code.

Einen Kommentar schreiben

:D :-) :( :o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: