导入的 MyBB 数据库 MyCode 问题

我正在将 MyBB 论坛迁移到 Discourse。
我发现导入的帖子中,许多(但并非全部)包含可见的 MyCode 格式标签。

示例(此外还存在明显的 UTF-8 字符编码问题,这是另一个独立线程讨论的内容):

TTTThao Nguyen

Jul '18

谢谢 Paul,不过根据他们下面的回复,我不确定这是否可行——

[color=#222222][size=medium][size=small][font=Calibri, sans-serif]问题不在于楼梯是否被视为建筑物,我的疑问并非要否定这一点,而是要根据两座建筑之间的连接性质,来判断它们是否属于同一栋建筑。[/font][/size][/size][/color]
[color=#222222][size=medium][size=small][font=Calibri, sans-serif] [/font][/size][/size][/color][color=#222222][size=small][font=Calibri, sans-serif]两座建筑之间没有内部连接或通道,因此不会被认定为同一栋建筑/防火分区。[/font][/size][/color]
[color=#222222][size=medium][size=small][font=Calibri, sans-serif] [/font][/size][/size][/color][color=#222222][size=small][font=Calibri, sans-serif]因此适用 C/AS1 5.1.2 条款。[/font][/size][/color]

所以,“内部通道”是决定性因素……不过我相当确定,我曾见过许多车库等附属建筑与主屋相连,但并无内部通道,却并不需要防火评级。(顺便提一下,这个项目我们确实有一位消防工程师,但他们似乎连他的话也不听!!)也许我也该雇一位好点的消防工程师! :slight_smile: /

无论如何,感谢你建议我在本论坛发帖。非常感谢你的建议和大力支持!

如何解析这些内容,以便在 Discourse 中尽可能显示预期的格式(在 MyBB 中看起来是正常的),而不是显示格式标签?

我猜测问题至少部分在于 Discourse 不支持用户自定义字体、字号和颜色?

[color=#222222][size=medium][size=small][font=Calibri, sans-serif]

或者我认为是硬换行符:

[hr]

我自己对 Discourse 不支持多种字体等问题并无特别不满,但如果能在导入时自动过滤掉无法使用的格式标签,那就更好了。

我安装了 https://github.com/discourse/discourse-bbcode,希望它能有所帮助,但看起来该插件在当前版本的 Discourse 中已无法正常工作。

同样地,当 MyCode 标签引用附件图片(在原始 MyBB 帖子中是内联显示)时,如何使该附件以与文本内联的方式显示,而不是显示标签本身?

您可以查看 vBulletin 导入器,它会执行大量此类标签的替换操作。此外,还有一个 bbcode 插件支持其中许多标签。

对于引用部分,请确保在开始标签前和结束标签后都有换行符。

我在导入一个非常古老(2002 年)的 PhpBB 论坛时也遇到了同样的问题。我往导入器中添加了一些正则表达式,用来移除(或者在某些情况下替换)这些 BBCode 标签。最终效果相当不错。

当我必须将 [quotes] 标签“移动”到单独的一行以便正确显示为 Markdown 格式时,我也遇到了同样的问题。

我在一些个人日志中找到了这段代码,我相信这就是我当时针对该问题所实现的方案:

text.gsub!(/(\[\/?quote.*?\])/mi) { |q| "\n#{q}\n" }

根据我当时的记录,它在 150,000 条消息中的所有引号都生效了,除了……有 57 条引号因未知原因失败。不过这么少的失败数量其实无关紧要,我甚至可以直接手动修复它们。

vBulletin 导入器针对多种引用版本提供了若干替换方案,甚至包括获取帖子编号以实现正确引用的功能。