BBCode 转 HTML 转换器

BBCode 是论坛时代的轻量标记语言 — [b]bold[/b][url][quote][code]。phpBB、vBulletin、XenForo 和 SMF 论坛都曾使用它,这些平台上仍有数以百万计的旧帖子。这个转换器会解析 BBCode,并输出干净、有效的 HTML,方便粘贴到现代 CMS、静态站点,或不理解论坛标签的 Markdown-to-HTML 流程中。

如何转换 BBCode

  1. 1

    粘贴你的 BBCode

    可以是整篇帖子,也可以是片段。支持嵌套标签。

  2. 2

    解析器对开闭标签进行分词

    匹配的 `[tag]...[/tag]` 对会生成对应的 HTML 元素。

  3. 3

    映射标签属性

    例如 `[color=red]`、`[size=18]` 或 `[url=https://...]` 会变成内联样式或 `href` 属性。

  4. 4

    复制 HTML

    可直接用于博客文章、文档页面或论坛迁移。

支持的标签

BBCode HTML 输出
[b]text[/b] <strong>text</strong>
[i]text[/i] <em>text</em>
[u]text[/u] <u>text</u> or <ins>
[s]text[/s] <del>text</del>
[url]link[/url] <a href="link">link</a>
[url=link]text[/url] <a href="link">text</a>
[img]link[/img] <img src="link">
[quote]q[/quote] <blockquote>q</blockquote>
[code]c[/code] <pre><code>c</code></pre>
[list][*]a[*]b[/list] <ul><li>a</li><li>b</li></ul>
[list=1][*]a[/list] <ol><li>a</li></ol>
[color=red]t[/color] <span style="color:red">t</span>
[size=18]t[/size] <span style="font-size:18px">t</span>
[table]...[/table] <table>...</table>

安全说明

BBCode 的设计相对安全;HTML 则不是。把用户提交的 BBCode 转成 HTML,正是很多论坛在 2005 年引入 XSS 的经典时刻。如果要发布转换后的输出:

  • 对 BBCode 标签内的任何原始文本进行转义。
  • 用白名单限制转换器输出的标签 — 不要把未知标签当作原始 HTML 转发。
  • 校验 [url][img] 中的 URL,阻止 javascript:data: 协议。

这个工具会在转换过程中移除或中和任何类似脚本的 URL。

迁移整个论坛

迁移数千篇帖子时,把转换器作为流水线使用:将帖子导出为 BBCode → 通过此转换器处理 → 导入 HTML。抽查几十篇带有异常嵌套或自定义表情代码的帖子,因为这些可能不在标准标签集中。

BBCode 不能干净映射的内容

  • 自定义论坛表情:D:))— 保持原样并用 CSS 渲染,或单独预处理。
  • 特定插件的标签(如 [spoiler][youtube])— 若已在自定义标签面板中列出则会处理;否则按字面文本输出。
  • 合并或未闭合标签 — 解析器会尝试自动闭合,但格式严重错乱的输入可能丢失格式。

常见问题

有:Steam 社区帖子、vBulletin 和 XenForo 论坛、一些 wiki,以及许多旧版 phpBB 站点仍在使用。它也作为底层标记存在于少数游戏服务器控制面板中。

这个工具不能 — 请使用 HTML 转 BBCode 转换器。反向转换损失更大,因为 HTML 的表达能力远强于 BBCode。

默认情况下,未知标签会作为字面文本保留下来。如果你想保证输出完全干净,可以用严格(strict)模式将它们全部移除。

可以。[quote][list][code] 可以任意深度嵌套。解析器会追踪标签栈并正确闭合。

相关工具