BBCode

BBCode
Development status Active
Operating system Cross-platform
Type message board

BBCode or Bulletin Board Code is a lightweight markup language used to format posts in many message boards. The available tags are usually indicated by square brackets ([ ]) surrounding a keyword, and they are parsed by the message board system before being translated into a markup language that web browsers understand—usually HTML or XHTML.

BBCode was first introduced in 1998 by the messageboard software Ultimate Bulletin Board (UBB). This is why BBCode is sometimes referred to as UBBCode.

Purpose

BBCode was devised to provide a safer, easier and more limited way of allowing users to format their messages. Previously, many message boards allowed the users to include HTML formatting, a side effect of which was that malformed HTML could disrupt the page's layout, or HTML could be used to run JavaScript leading to XSS attacks. Some implementations of BBCode have suffered problems related to the way they translate the BBCode into HTML, which could negate the security that was intended to be given by BBCode. An alternative is a properly written HTML filter (many of which are freely available).

Although the basic tags of BBCode are similar in most internet forum software, there is currently no standards document for BBCode and there are consequently many incompatible variants. Some variants are case-sensitive while others are not. Some variants have tags which highlight the formatting of HTML, ASP, PHP, SQL and other markup languages and programming languages.

BBCode tags

The following are the most common BBCode tags available to most modern message boards, and are displayed here with their HTML equivalents. However, the effect of these tags can be changed substantially, and the effect may not be identical on all sites using BBCode.

BBCode example HTML Effect
[b]bolded text[/b] <b>bolded text</b>, <strong>bolded text</strong> or <span style="font-weight: bold;">bolded text</span> bolded text
[i]italicized text[/i] <i>italicized text</i>, <em>italicized text</em> or <span style="font-style: italic;">italicized text</span> italicized text
[u]underlined text[/u] <u>underlined text</u>, <ins>underlined text</ins> or <span style="text-decoration: underline;">underlined text</span> underlined text
[s]strikethrough text[/s] <s>strikethrough text</s>, <del>strikethrough text</del> or <span style="text-decoration: line-through;">strikethrough text</span> strikethrough text
[url]http://example.org[/url] <a href="http://example.org">http://example.org</a> http://example.org
[url=http://example.com]Example[/url] <a href="http://example.com">Example</a> Example
[img]http://upload.wikimedia.org/wikipedia/commons/thumb/7/7c/Go-home.svg/100px-Go-home.svg.png[/img] <img src="http://upload.wikimedia.org/wikipedia/commons/thumb/7/7c/Go-home.svg/100px-Go-home.svg.png" alt="" />
[quote]quoted text[/quote] <blockquote><p>quoted text</p></blockquote>
(usually implemented in more advanced ways)
To quote:

quoted text

[code]monospaced text[/code] <pre>monospaced text</pre> monospaced text
[size=15]Large Text[/size]
(The unit of measurement varies with each BBCode variant and could represent pixels, points, or relative HTML sizes.)
<span style="font-size:15px">Large Text</span> or <font size="(+,-)x">Different text-size</font> (you can set + or - and x is a number representing pixels Large Text
[color=red]Red Text[/color]
or

[color=#FF0000]Red Text[/color]
or
[color=FF0000]Red Text[/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.)

<span style="color:#FF0000;">Red Text</span>, <font color="#FF0000">Red Text</font> Red Text
:)

[:-)]
this would be another way to use the [img]url_img[/img] and must be pre-configured for the forum administrator

(And other emoticons, depending on the variant)

<img src="Face-smile.svg" alt=":-)">

(Specific image and size vary)

[list] [*]Entry 1 [*]Entry 2 [/list] <ul><li>Entry 1</li><li>Entry 2</li></ul>
  • Entry 1
  • Entry 2
[table] [tr] [td]table data[/td] [/tr] [/table]

(Rarely used)

<table><tr><td>table data</td></tr></table>
table data

Some forums may allow use the tag [background]. It is used similarly to the [img] tag and should be used with an image filename to display as the post background.

Many message boards include a FAQ with information on how to use their own variants of BBCode. In addition, some bulletin board systems allow administrators to define their own custom BBCodes. This is usually done by asking them to specify the BBCode markup (utilizing variables/wildcards to indicate the user-customizable parts of the code) and then indicating the XHTML replacement which will be substituted for the BBCode.

Web 2.0 progression of BBCode sees the uncommon occurrence of new tags such as [youtube], [facebook], and [skype] tags.