Reference articles on history, science, culture and more
Encyclopedia

BBCode

Lightweight markup language used in message boards

BBCode ("Bulletin Board Code") is a lightweight markup language used to format messages in many Internet forum software. It was first introduced in 1998. The available "tags" of BBCode are usually indicated by square brackets ([ and ]) surrounding a keyword, and is translated into HTML before being sent to the user.

01Tags

Example in HTML/CSS BBCode Output
<b>bolded text</b> or <span style="font-weight: bold;">bolded text</span> [b]bolded text[/b] bolded text
<i>italicized text</i> or <span style="font-style: italic;">italicized text</span> [i]italicized text[/i] italicized text
<u>underlined text</u> or <span style="text-decoration: underline;">underlined text</span> [u]underlined text[/u] underlined text
<s>strikethrough text</s> or <del>strikethrough text</del> or <span style="text-decoration: line-through;">strikethrough text</span> [s]strikethrough text[/s] strikethrough text
<a href="https://en.wikipedia.org">https://en.wikipedia.org</a> <a href="https://en.wikipedia.org">English Wikipedia</a> [url]https://en.wikipedia.org[/url] [url=https://en.wikipedia.org]English Wikipedia[/url] https://en.wikipedia.org English Wikipedia
<img src="https://upload.wikimedia.org/wikipedia/commons/7/70/Example.png" alt="Example image"> [img alt="Example image" ]https://upload.wikimedia.org/wikipedia/commons/7/70/Example.png[/img]
<img src="Smileys/Face-smile.svg" alt=":-)"> :) or [:-)]

This would be another way to use the [img]url_img[/img] and must be pre-configured by the forum administrator.

(This and other emoticons, depending on the variant. Most BBCodes do not enclose emoticons in square brackets, leading to frequent accidental usage.)
(Specific image and size vary.)
<blockquote><p>quoted text</p></blockquote> <blockquote><p>quoted text</p><cite>&mdash; author</cite></blockquote>

(Usually implemented in more advanced ways.)

[quote]quoted text[/quote] [quote="author"]quoted text[/quote]

(including optional author)

quoted text

quoted text

, author

<pre><code>computer code</code></pre> [code]computer code[/code] computer code
<pre>monospaced text</pre> [pre]monospaced text[/pre] monospaced text
<span style="font-size:30px">Large Text</span> or <span style="font-size:85%">Smaller Text</span> [style size="30px"]Large Text[/style] [style size="85"]Smaller Text[/style]

or

[size="30px"]Large Text[/size] [size="85"]Smaller Text[/size]

(The unit of measurement varies with each BBCode variant and could represent pixels, points, or relative HTML sizes.)

Large Text Smaller Text
<span style="color:fuchsia;">Text in fuchsia</span> or <span style="color:#FF00FF;">Text in fuchsia</span> [style color="fuchsia"]Text in fuchsia[/style] or [style color=#FF00FF]Text in fuchsia[/style] or [color=#FF00FF]Text in fuchsia[/color]

(Both HTML color names and hexadecimal color values are generally supported, although on some boards, you must omit the # from selecting a hexadecimal color.)

Text in fuchsia
<ul> <li>Entry A</li> <li>Entry B</li> </ul> <ol> <li>Entry 1</li> <li>Entry 2</li> </ol> [list] [*]Entry A [*]Entry B [/list] [list=1] [*]Entry 1 [*]Entry 2 [/list]

Some message boards do not need the square brackets around the markers.

(Many variants for li and /li, list types, unordered and ordered, with different bullets or counter formats, etc.)

  • Entry A
  • Entry B
  1. Entry 1
  2. Entry 2
<table> <tr> <th>column header 1</th> <th>column header 2</th> </tr> <tr> <td>table cell 1</td> <td>table cell 2</td> </tr> </table> [table] [tr] [th]column header 1[/th] [th]column header 2[/th] [/tr] [tr] [td]table cell 1[/td] [td]table cell 2[/td] [/tr] [/table]

(Some variants for thead, rules, etc.)

column header 1column header 2
table cell 1table cell 2
Source:

02Implementation

BBCode is typically implemented by applying a series of regular expression string-replace operations upon the input. Because regular expressions are limited in analyzing the structure of text input, this has the artifact that any non-hierarchical BBCode input will be transformed into invalid non-hierarchical HTML without error.

Applying traditional parsing techniques is made difficult by ambiguities in the markup, such as in [quote=[b]text[/b][/quote], where the input can either be interpreted as "text" quoted from someone called [b, or the bolded text "text" surrounded by [quote= and [/quote], i.e. [quote=text[/quote].

Watch videos about BBCodeExplainers and documentaries on YouTube (opens in a new tab)

Sources and credits

This article is adapted from the Wikipedia article BBCode, written by its contributors and licensed under CC BY-SA 4.0. Fathomly has changed the layout, removed citation markers, navigation and maintenance notices, and adjusted punctuation. This adapted version is shared under the same license. For references, see the original article.

Fathomly is not affiliated with or endorsed by the Wikimedia Foundation. Spotted a problem? Tell us.