# 在帖子中替换特殊文本以进行链接化

**URL:** https://meta.discourse.org/t/replacing-special-text-to-linkify-them-on-posts/132217
**Category:** Support
**Created:** [2019年十月30日 09:46 UTC](https://meta.discourse.org/t/replacing-special-text-to-linkify-them-on-posts/132217 "2019-10-30T09:46:52Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![Paracelsus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/paracelsus/32/164912_2.png) [@Paracelsus](https://meta.discourse.org/u/Paracelsus)
#### Post date: [2019年十月30日 09:46 UTC](https://meta.discourse.org/t/replacing-special-text-to-linkify-them-on-posts/132217/1 "2019-10-30T09:46:52Z")

</div>

您好，这更像是一个关于如何操作的问题……

除了我们的论坛，我们还有一个维基（MediaWiki），我们在多个主题中会发布指向该维基的链接。

现在，我们刚刚完成了一次从 SMF 的迁移，之前的链接是以 BBCode 格式生成的，例如：  
`[wiki]Idrissa Doumbia[/wiki]`  
会自动转换为：  
`https://www.forumscp.com/wiki/index.php?title=Idrissa Doumbia`

我的问题是，在 Discourse 中这些链接丢失了，也就是说，我们在主题中看到的只是 BBCode 标签，而没有生成链接。因此，我想知道最佳的策略是什么，以便让这些链接重新生效。是使用 Linkify 组件（我还没仔细确认该组件是否正是为此目的设计的）？还是通过 Rails 替换文本（对于这些特殊字符，是否可以在保留 wiki 标签之间字符串的同时创建链接）？还有其他建议吗？

---

<div class="post-metadata">

### Author: ![hellekin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hellekin/32/51636_2.png) [@hellekin](https://meta.discourse.org/u/hellekin)
#### Post date: [2019年十月30日 10:08 UTC](https://meta.discourse.org/t/replacing-special-text-to-linkify-them-on-posts/132217/2 "2019-10-30T10:08:43Z")

</div>

您可以使用 [Auto-Linkify Words](https://meta.discourse.org/t/linkify-words-in-post/82193) 主题组件，并配合以下（未经测试）的设置：

`/\[wiki\]([^[]+)\[\/wiki\]/,https://www.forumscp.com/wiki/index.php?title=$1`

---

<div class="post-metadata">

### Author: ![Paracelsus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/paracelsus/32/164912_2.png) [@Paracelsus](https://meta.discourse.org/u/Paracelsus)
#### Post date: [2019年十月30日 13:13 UTC](https://meta.discourse.org/t/replacing-special-text-to-linkify-them-on-posts/132217/3 "2019-10-30T13:13:35Z")

</div>

> [@hellekin](#):
>
> 您可以使用 [Auto-Linkify Words](https://meta.discourse.org/t/linkify-words-in-post/82193) 主题组件，并配合以下（未经测试）的设置：
> 
> `/\[wiki\]([^[]+)\[\/wiki\]/,https://www.forumscp.com/wiki/index.php?title=$1`

谢谢。它运行得非常顺利，链接已按预期生成。唯一的问题是链接标题显示为 [wiki]something-here[/wiki]，而不是将其转换为文本 [something-here](http://something-here)。

---

<div class="post-metadata">

### Author: ![danekhollas](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/danekhollas/32/79637_2.png) [@danekhollas](https://meta.discourse.org/u/danekhollas)
#### Post date: [2019年十月30日 13:50 UTC](https://meta.discourse.org/t/replacing-special-text-to-linkify-them-on-posts/132217/4 "2019-10-30T13:50:56Z")

</div>

这个问题可以解决，我有一个版本的 linkify 可以转换文本。你下周能联系我吗？我会看看能做些什么。

---

<div class="post-metadata">

### Author: ![danekhollas](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/danekhollas/32/79637_2.png) [@danekhollas](https://meta.discourse.org/u/danekhollas)
#### Post date: [2019年十月31日 09:53 UTC](https://meta.discourse.org/t/replacing-special-text-to-linkify-them-on-posts/132217/5 "2019-10-31T09:53:48Z")

</div>

如果这是链接化主题的唯一用途，您可以直接修改代码。  
具体来说，在 `/head_tag.html` 的第 63 行：

```
link.innerHTML = text;

```

将其改为：

```
link.innerHTML = captured.length == 1 ? captured[0] : text;

```

我尚未测试此修改，您能试试吗？如果需要更多指导，请告诉我。

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [2023年七月16日 03:20 UTC](https://meta.discourse.org/t/replacing-special-text-to-linkify-them-on-posts/132217/6 "2023-07-16T03:20:13Z")

</div>



---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [2023年七月17日 07:59 UTC](https://meta.discourse.org/t/replacing-special-text-to-linkify-them-on-posts/132217/7 "2023-07-17T07:59:32Z")

</div>


