我又在思考这个问题了。
插件可以为源文档的 URL 添加一个自定义主题字段。 (我想,如果主文档需要隐藏,还需要提供远程用户名和 API 密钥字段,但这部分可以稍后处理。或者,它们可以放在用户自定义字段中。生成密钥的人需要确保 API 密钥只有读取权限)。
创建主题时,你可以输入类似“remote: https://meta.discourse.org/t/synchronising-crossposting-topics-across-different-discourse-sites/263269”的内容,主题创建后,Discourse 会拉取远程主题的原始文本,将其插入到 raw 中作为编辑,并使用远程 URL 实例化 topic_custom_field,可能还在顶部添加“复制自 url”。
这样,你就将远程主题复制到了本地,并有了记录。
之后可以有一个“检查源”按钮,它会拉取远程主题,并将远程主题的 updated_at 甚至 raw 保存到其他自定义字段中(也可以通过一个后台任务定期执行此操作,节省用户界面操作)。然后,你可以有一个更新按钮,将现有 raw 替换为远程主题,并作为一次编辑。
如果主站点是公开的,那么这部分就非常容易了。为私有站点添加 API 密钥以进行拉取会使事情复杂化,管理多个站点的一组 API 密钥会使事情更加复杂。如果需要替换原始源,你可以使用 remap rake 任务来完成,或者在需要时添加编辑自定义字段(包含远程 URL)的功能。
这部分是免费的,因为这个解决方案允许二级站点从主站点拉取数据。
是的。并且可以有一个链接回源站点,这样人们就可以去源站点查看这些评论,或者甚至通过 Embed comments from Discourse in your single page app 来嵌入它们。
如果你有任何预算,请随时与我联系。