Zum Inhalt springen

BBCode

aus Wikipedia, der freien Enzyklopädie

Vorlage:Hinweisbaustein 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.<ref>scriptkeeper.com: What is UBB Code?</ref> Mittlerweile ist er so etabliert und verbreitet, dass in den Programmiersprachen JavaScript, PHP und .NET frei nutzbare Implementierungen eines Parsers von BBCode zu HTML existieren.<ref>{{#if:|{{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}| |}}}}{{#if:|{{{autor}}}: }}{{#if:|{{#if:BBCode implementations|[{{#invoke:Vorlage:Internetquelle|archivURL|1={{#invoke:URLutil|getNormalized|1={{{archiv-url}}}}}}} {{#invoke:Vorlage:Internetquelle|TitelFormat|titel=BBCode implementations}}]{{#if:| ({{{format}}})}}{{#if:| {{{titelerg}}}{{#invoke:Vorlage:Internetquelle|Endpunkt|titel={{{titelerg}}}}}}}}}|{{#if:https://www.bbcode.org/implementations.php%7C{{#if:{{#invoke:TemplUtl%7Cfaculty%7C}}%7C{{#invoke:Vorlage:Internetquelle%7CTitelFormat%7Ctitel={{#invoke:WLink%7CgetEscapedTitle%7C1=BBCode implementations}}}}|[{{#invoke:URLutil|getNormalized|1=https://www.bbcode.org/implementations.php}} {{#invoke:Vorlage:Internetquelle|TitelFormat|titel={{#invoke:WLink|getEscapedTitle|1=BBCode implementations}}}}]}}{{#if:| ({{{format}}}{{#if:bbcode.org{{#if: 2022-01-12 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}}}}

          | )
          | {{#if:{{#ifeq:en|de||{{#if:en|1}}}}| ; 
              | )}}}}}}{{#if:| {{{titelerg}}}{{#invoke:Vorlage:Internetquelle|Endpunkt|titel={{{titelerg}}}}}}}}}}}{{#if:https://www.bbcode.org/implementations.php%7C{{#if:{{#invoke:URLutil%7CisResourceURL%7C1=https://www.bbcode.org/implementations.php}}%7C%7C}}}}{{#if:BBCode implementations|{{#if:{{#invoke:WLink|isValidLinktext|1=BBCode implementations|lines=0}}||}}}}{{#if: | In: {{#invoke:Vorlage:Internetquelle|TitelFormat|titel={{{werk}}}}}}}{{#if: bbcode.org| bbcode.org{{#if: |,|{{#if: 2022-01-12 | {{#if:{{#invoke:TemplUtl|faculty|}}|;|,}}}}}}}}{{#if: | {{#if:{{#invoke:DateTime|format|{{{datum}}}|noerror=1}}
            |{{#invoke:DateTime|format|{{{datum}}}|T._Monat JJJJ}}
            |{{#invoke:TemplUtl|failure|1=Fehler bei Vorlage:Internetquelle, datum={{{datum}}}|class=Zitationswartung}} }}{{#if: |,|{{#if: 2022-01-12 | {{#if:{{#invoke:TemplUtl|faculty|}}|;|,}}}}}}}}{{#if: | S. {{{seiten}}}{{#if: |,|{{#if: 2022-01-12 | {{#if:{{#invoke:TemplUtl|faculty|}}|;|,}}}}}}}}{{#if: {{#invoke:TemplUtl|faculty|}}| {{#if:bbcode.org|{{#if:|archiviert|ehemals}}|{{#if:|Archiviert|Ehemals}}}} {{#if:|vom|im}} Vorlage:Referrer{{#if:{{#invoke:TemplUtl|faculty|}}| (nicht mehr online verfügbar)}}{{#if: | am {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}|{{{archiv-datum}}}{{#if:129579||(?)}}}}}}{{#if: 2022-01-12|;}}}}{{#if: 2022-01-12| {{#if:bbcode.org{{#invoke:TemplUtl|faculty|}}|abgerufen|Abgerufen}} {{#switch: {{#invoke:Str|len| {{#invoke:DateTime|format| 2022-01-12 |ISO|noerror=1}} }}
       |4=im Jahr
       |7=im
       |10=am
       |#default={{#invoke:TemplUtl|failure|1=Fehler bei Vorlage:Internetquelle, abruf=2022-01-12|class=Zitationswartung}} }} {{#invoke:DateTime|format|2022-01-12|T._Monat JJJJ}}
    | {{#invoke:TemplUtl|failure|1=Vorlage:Internetquelle | abruf=2026-MM-TT ist Pflichtparameter}} }}{{#if:{{#ifeq:en|de||{{#if:en|1}}}}|{{#if:bbcode.org{{#if: 2022-01-12 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}}}}
       |  (
       | {{#if: | |  (}}
       }}{{#ifeq:{{#if:en|en|de}}|de||
          {{#invoke:Multilingual|format|en|slang=!|split=[%s,]+|shift=m|separator=, }}}}{{#if: |{{#ifeq:{{#if:en|en|de}}|de||, }}{{{kommentar}}}}})}}{{#if: {{#if: 2022-01-12 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}} }}en|{{#if: |: {{
 #if: 
 | {{
     #ifeq: {{#if:{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|de}} | de
     | Vorlage:Str trim
     | {{#invoke:Vorlage:lang|flat}}
     }}
 | {{#ifeq: {{#if:{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|de}} | de
     | „Vorlage:Str trim“
     | {{#invoke:Text|quote
         |1={{#if: 
              | {{#invoke:Vorlage:lang|flat}}
              | {{#invoke:Vorlage:lang|flat}} }}
         |2={{#if: {{#invoke:TemplUtl|faculty|}}|de-CH|de}}
         |3=1}} }}

}}{{#if:

   |  (<templatestyles src="Person/styles.css" />{{#if:  | :  }}{{#if:  | , deutsch: „“ }})
   | {{#if: 
       |  ({{#if:  | , deutsch: „“ }})
       | {{#if:  |  (deutsch: „“) }}
 }}

}}{{#if: {{{zitat}}}

   | {{#if: 
       | {{#if: {{{zitat}}}
           | Vorlage:": Text= und 1= gleichzeitig, bzw. Pipe zu viel }} }}
   | Vorlage:": Text= fehlt }}{{#if:  | {{#if: {{#invoke:Text|unstrip|{{{ref}}}}}
             | Vorlage:": Ungültiger Wert: ref=
             | {{{ref}}} }}

}}|.{{#if:{{#invoke:TemplUtl|faculty|}}|{{#if:||{{#ifeq: | JaKeinHinweis |{{#switch:

   |0|=Vorlage:Toter Link/Core{{#if: https://www.bbcode.org/implementations.php
       | {{#if:  | [1] }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. Suche im Internet Archive ){{#if: 
           | {{#if: deadurlausgeblendet | | Vorlage:Toter Link/archivebot }}
         }}
       |   (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}.)
     }}{{#switch: 
         |no|0|=
         |#default={{#if:  ||  }}
    }}{{#invoke:TemplatePar|check
         |opt      = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
    }}{{#if: https://www.bbcode.org/implementations.php
      | {{#if:{{#invoke:URLutil|isWebURL|https://www.bbcode.org/implementations.php}}
          || {{#if:  ||  }} 
        }}
      | {{#if: 
           | {{#if:  ||  }}
           | {{#if:  ||  }}
        }}
    }}{{#if: 
       | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
         }}
    }}{{#switch: deadurl
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=https://www.bbcode.org/implementations.php Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. (Suche im Internet Archive. )  {{#if: 
            | {{#if: deadurlausgeblendet | | Vorlage:Toter Link/archivebot }}
         }}Vorlage:Toter Link/Core{{#switch: 
          |no|0|=
          |#default= {{#if:  ||  }}
        }}{{#invoke:TemplatePar|check
         |all      = inline= url=
         |opt      = datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
       }}{{#if: https://www.bbcode.org/implementations.php
       | {{#if:{{#invoke:URLutil|isWebURL|https://www.bbcode.org/implementations.php}}
          || {{#if:  ||  }} 
        }}
    }}{{#if: 
         | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
           }}
    }}{{#switch: deadurl
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}[https://www.bbcode.org/implementations.php }}|{{#switch: 
   |0|=Vorlage:Toter Link/Core{{#if: https://www.bbcode.org/implementations.php
       | {{#if:  | [2] }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. Suche im Internet Archive ){{#if: 
           | {{#if:  | | Vorlage:Toter Link/archivebot }}
         }}
       |   (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}.)
     }}{{#switch: 
         |no|0|=
         |#default={{#if:  ||  }}
    }}{{#invoke:TemplatePar|check
         |opt      = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
    }}{{#if: https://www.bbcode.org/implementations.php
      | {{#if:{{#invoke:URLutil|isWebURL|https://www.bbcode.org/implementations.php}}
          || {{#if:  ||  }} 
        }}
      | {{#if: 
           | {{#if:  ||  }}
           | {{#if:  ||  }}
        }}
    }}{{#if: 
       | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
         }}
    }}{{#switch: 
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=https://www.bbcode.org/implementations.php Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. (Suche im Internet Archive. )  {{#if: 
            | {{#if:  | | Vorlage:Toter Link/archivebot }}
         }}Vorlage:Toter Link/Core{{#switch: 
          |no|0|=
          |#default= {{#if:  ||  }}
        }}{{#invoke:TemplatePar|check
         |all      = inline= url=
         |opt      = datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
       }}{{#if: https://www.bbcode.org/implementations.php
       | {{#if:{{#invoke:URLutil|isWebURL|https://www.bbcode.org/implementations.php}}
          || {{#if:  ||  }} 
        }}
    }}{{#if: 
         | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
           }}
    }}{{#switch: 
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}[https://www.bbcode.org/implementations.php }} }}}}}}}}}}{{#if:|
        {{#invoke:Vorlage:Internetquelle|archivBot|stamp={{{archiv-bot}}}|text={{#if:|Vorlage:Webarchiv/archiv-bot}}

}}}}{{#invoke:TemplatePar|check |all= url= titel= |opt= autor= hrsg= format= sprache= titelerg= werk= seiten= datum= abruf= zugriff= abruf-verborgen= archiv-url= archiv-datum= archiv-bot= kommentar= zitat= AT= CH= offline= |cat= {{#ifeq: 0 | 0 | Wikipedia:Vorlagenfehler/Vorlage:Internetquelle}} |template= Vorlage:Internetquelle |format=0 |preview=1 }}</ref>

Beschreibung

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

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 auszuzeichnen, 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] 0 | span | sup}} class="fussnoten-marke" data-annotationpair-m="{{#invoke:URLutil|anchorencode|1=(Anm.)|2=1}}">{{#invoke:TemplUtl|nowiki1|(Anm.)}}</{{#ifeq: | 0 | span | sup}}>{{#switch:0|10|11=|#default={{#invoke:TemplatePar|match 1=1=+ 2=SUP=n 3=gruppe=* template=Vorlage:FN cat=Wikipedia:Vorlagenfehler/Fußnoten

}}{{#switch: ERROR

{{#switch: Vorlage:Str match |[|] = ERROR |(Direkteingabe der Klammern)}} {{#switch: Vorlage:Str match |91|93 = ERROR |(HTML-Entität dezimal)}} {{#switch: Vorlage:Str match |5b|5d = ERROR |(HTML-Entität hexadezimal)}} {{#switch: Vorlage:Str match |lbrack|rbrack = ERROR |(benannte HTML-Entität)}}

=Vorlage:FN, Fehler in Parameter 1: Keine eckigen Klammern verwenden, das führt sonst zu Verwechslungen mit dem offiziellen MediaWiki-Belegsystem. }}}}

einfache Schriftformatierung

<syntaxhighlight lang="bbcode"> [b]fett[/b] [i]kursiv[/i] [u]unterstrichen[/u] [s]durchgestrichen[/s] [center]zentriert[/center] </syntaxhighlight>

<syntaxhighlight lang="html"> fett oder fett kursiv oder kursiv unterstrichen durchgestrichen, in HTML5 auch: durchgestrichen

zentriert

</syntaxhighlight>

erweiterte Schriftformatierung

<syntaxhighlight lang="bbcode"> [font=schriftart]Text[/font] [color=farbe]farbiger Text[/color] [size=schriftgröße]Text[/size] </syntaxhighlight>

<syntaxhighlight lang="html"> Text farbiger Text Text </syntaxhighlight>

Gliederung

<syntaxhighlight lang="text"> ... lorem ipsum (Leerzeile) dolor ... </syntaxhighlight>

<syntaxhighlight lang="html">

... lorem ipsum

dolor ...

</syntaxhighlight>

Aufzählungsliste ohne Nummerierung

<syntaxhighlight lang="bbcode"> [list] [*]Punkt [*]Punkt [/list] </syntaxhighlight>

<syntaxhighlight lang="html">

  • Punkt
  • Punkt

</syntaxhighlight>

Aufzählungsliste mit Nummerierung in arabischen Ziffern

<syntaxhighlight lang="bbcode"> [list=1] [*]Punkt [*]Punkt [/list] </syntaxhighlight>

<syntaxhighlight lang="html">

  1. Punkt
  2. Punkt

</syntaxhighlight>

Aufzählungsliste mit Nummerierung in (kleinen) römischen Ziffern

<syntaxhighlight lang="bbcode"> [list=i] [*]Punkt [*]Punkt [/list] </syntaxhighlight>

<syntaxhighlight lang="html">

  1. Punkt
  2. Punkt

</syntaxhighlight>

Aufzählungsliste mit Nummerierung in (kleinen) Buchstaben

<syntaxhighlight lang="bbcode"> [list=a] [*]Punkt [*]Punkt [/list] </syntaxhighlight>

<syntaxhighlight lang="html">

  1. Punkt
  2. Punkt

</syntaxhighlight>

Verweise

<syntaxhighlight lang="bbcode"> [url=http://example.com]Linktext[/url] [url]http://example.com[/url] </syntaxhighlight>

<syntaxhighlight lang="html"> <a href="http://example.com">Linktext</a> <a href="http://example.com">http://example.com</a> </syntaxhighlight>

Bilder

<syntaxhighlight lang="bbcode"> [img]example.com/bild.jpg[/img] </syntaxhighlight>

<syntaxhighlight lang="html"> <img src="http://example.com/bild.jpg" alt="bild.jpg" /> </syntaxhighlight>

Smileys

<syntaxhighlight lang="text">

-) oder :)

</syntaxhighlight>

<syntaxhighlight lang="html"> <img src="/smileys/happy.png" alt="Smiley" /> </syntaxhighlight>

Quelltext

<syntaxhighlight lang="bbcode"> [code] Code jeglicher Art [/code] </syntaxhighlight>

<syntaxhighlight lang="html">

Code jeglicher Art

</syntaxhighlight> Die echte HTML-Syntax ist üblicherweise fortgeschrittener als hier dargestellt.

Zitate (nur als Blockzitat)

<syntaxhighlight lang="bbcode"> [quote]Zitat[/quote] [quote=Autor]Zitat[/quote] </syntaxhighlight>

<syntaxhighlight lang="html">

Zitat

Zitat von Autor

Zitat

</syntaxhighlight>

Das Parsing von BBCode zu HTML ist hier vor allem bei Nennung des Autors abgesehen von <syntaxhighlight lang="html" inline>

</syntaxhighlight> sehr uneinheitlich. Innerhalb des Blockquote finden sich üblicherweise noch weitere Elemente.

<templatestyles src="FN/styles.css" />{{#if: ||

}}<{{#if: |span|div}} class="fussnoten-inhalt references {{#if: ||{{#if: {{#invoke:TemplUtl|faculty|}}|fussnoten-floatfix}} }}">{{#invoke:TemplUtl|nowiki1|(Anm.) }}{{#if: | | }}{{#ifeq: In der Tabelle eventuell zu sehende Zeilenumbrüche innerhalb der HTML-Elemente sind der individuellen Fensterbreite geschuldet. Im Quelltext sind sie nicht enthalten.|-||<{{#if: |span|div}} class="reference-text">In der Tabelle eventuell zu sehende Zeilenumbrüche innerhalb der HTML-Elemente sind der individuellen Fensterbreite geschuldet. Im Quelltext sind sie nicht enthalten.</{{#if: |span|div}}>}}</{{#if: |span|div></div}}>{{#switch:0|10|11=|#default={{#invoke:TemplatePar|match

|1=1=+ |2=2=+ |3=3=* |4=gruppe=/^[^=%[%]%!]*$/ |5=floatfix=boolean |template=Vorlage:FNZ |cat=Wikipedia:Vorlagenfehler/Fußnoten }}{{#switch: ERROR |{{#switch: Vorlage:Str match |[|] = ERROR |(Direkteingabe der Klammern)}} |{{#switch: Vorlage:Str match |91|93 = ERROR |(HTML-Entität dezimal)}} |{{#switch: Vorlage:Str match |5b|5d = ERROR |(HTML-Entität hexadezimal)}} |{{#switch: Vorlage:Str match |lbrack|rbrack = ERROR |(benannte HTML-Entität)}} =Vorlage:FNZ, Fehler in Parameter 1: Keine eckigen Klammern verwenden, das führt sonst zu Verwechslungen mit dem offiziellen MediaWiki-Belegsystem. }}}}

Weblinks

Einzelnachweise

<references />