Paste markup and press Html turns UBB or UBB to Html. Both directions run in the tab, the converter covers the tags forums really carry, and tags it does not know are left in place instead of being deleted.
Runs locally in your browserPaste markup and press Html turns UBB or UBB to Html. Both directions run in the tab: the page rewrites the text itself, nothing is uploaded and no request carries it anywhere.
The converter handles the tags forum software really carries — formatting, links, images, quotes, lists, headings and code blocks — and leaves tags it does not know in place instead of deleting them, so you can see what still needs a hand.
<b>, <strong>, <i>, <em>, <u>, <s>, <strike>, <del>, <sub>, <sup>, <code>, <pre> and <blockquote> become their UBB equivalents, <br> becomes a line break, <hr> becomes [hr], and <p>, <div>, table rows and <h1>–<h6> end a line. A heading keeps its words on their own line but not its level, because forum code has no agreed heading tag.
<ul> becomes [list], <ol> becomes [list=1], <li> becomes [*], table cells are separated by a tab, <img> becomes [img]…[/img] (an image carrying smile="3" becomes [s:3]) and <a href="…">label</a> becomes [url=…]label[/url]. Event handler attributes such as onclick are dropped on the way.
[b], [i], [u], [strike] and [s], [sub], [sup], [code] and [code=php], [quote] and [quote=name], [blockquote], [hr], [h1]–[h6], [align=…], [size=…], [color=…], [font=…] and [backcolor=…] are translated, [list] and [list=1] or [list=a] become lists with [*] as the item marker, and [url], [url=…], [img] and [email] become links and images.
HTML you type inside UBB is escaped, so x <b>y</b> comes back as x <b>y</b> instead of as markup, and [code] blocks keep their line breaks inside <pre><code>. The name in [quote=name] is not carried over: <blockquote> has no place to keep it.
HTML entities are decoded once: &, <, >, ", ' and become their characters, while &lt; stays < instead of turning into a tag. Tags the HTML side does not know disappear but their text stays, so a <span> wrapper is invisible in the output while its words are not.
Tags the UBB side does not know — [table], [spoiler], smiley codes such as [s:3] — are passed through exactly as typed, so you can finish them by hand.
Both directions are pure text work inside the page: no upload, no request, and nothing is kept after a reload. A 100 KB document converts in about 0.2 s in Chrome.
This is a markup converter, not an HTML sanitiser: it drops onclick-style attributes and escapes markup on the UBB side, but sanitise untrusted HTML before rendering it on a page.