如何在帖子中使用变量/bbcode?

我正在思考在帖子中编写类似内容的最佳方式:

[点击此处保存您的名额](https://mysite.com/$CURRENT_USERNAME)

其中 $CURRENT_USERNAME 会根据当前登录的用户替换为不同的值。

我认为可以通过插件 API 在主题组件中获取当前用户名,但我不确定插入链接的最佳方式。

我想其中一个选项是编写一个插件,添加一个新的 BBCode 命令,类似于 discourse-detailsdiscourse-spoiler-alert。例如:

[dynamic-url description="点击此处保存您的名额" pattern="https://mysite.com/$CURRENT_USERNAME"][/dynamic-url]

或者更通用一些:

[dynamic-tag tagName="iframe" src="https://mysite.com/$CURRENT_USERNAME"][/dynamic-tag]

但我在想是否有更简单的替代方案。

你看过占位符主题组件吗?

它是你所建议方案的一个更简化的版本。否则,你需要接入我们的 Markdown 引擎来处理替换,同时确保该引擎在客户端和服务器端都能访问到你需要替换的信息。这部分比较棘手。

2 个赞

另一种替代方案是编写一个主题组件(比插件更轻量),并使用 wrap:

2 个赞