您好,这更像是一个关于如何操作的问题……
除了我们的论坛,我们还有一个维基(MediaWiki),我们在多个主题中会发布指向该维基的链接。
现在,我们刚刚完成了一次从 SMF 的迁移,之前的链接是以 BBCode 格式生成的,例如:
[wiki]Idrissa Doumbia[/wiki]
会自动转换为:
https://www.forumscp.com/wiki/index.php?title=Idrissa Doumbia
我的问题是,在 Discourse 中这些链接丢失了,也就是说,我们在主题中看到的只是 BBCode 标签,而没有生成链接。因此,我想知道最佳的策略是什么,以便让这些链接重新生效。是使用 Linkify 组件(我还没仔细确认该组件是否正是为此目的设计的)?还是通过 Rails 替换文本(对于这些特殊字符,是否可以在保留 wiki 标签之间字符串的同时创建链接)?还有其他建议吗?
您可以使用 Auto-Linkify Words 主题组件,并配合以下(未经测试)的设置:
/\[wiki\]([^[]+)\[\/wiki\]/,https://www.forumscp.com/wiki/index.php?title=$1
谢谢。它运行得非常顺利,链接已按预期生成。唯一的问题是链接标题显示为 [wiki]something-here[/wiki],而不是将其转换为文本 something-here。
这个问题可以解决,我有一个版本的 linkify 可以转换文本。你下周能联系我吗?我会看看能做些什么。
如果这是链接化主题的唯一用途,您可以直接修改代码。
具体来说,在 /head_tag.html 的第 63 行:
link.innerHTML = text;
将其改为:
link.innerHTML = captured.length == 1 ? captured[0] : text;
我尚未测试此修改,您能试试吗?如果需要更多指导,请告诉我。