功能兴趣调查:“go”永久链接

想确认一下大家是否觉得这个功能有用:

一种特殊类型的永久链接,适用于 Discourse 内的帖子和主题,需要特殊的前缀来确保路由正常工作(例如 /go/)。(当前的永久链接记录仅适用于首先到达 Rails 的请求(新页面加载 + 在新标签页中打开)。)

这些永久链接可由版主编辑(由于 URL 范围受限,造成的损害较小)。

使用场景:轻松编写指向常见社区资源的 URL,例如我们可以为每个 howto 主题分配一到两个关键词,或者为标准安装创建 /go/install。

之所以进行这项兴趣调查,是因为我经常有一些没人想要的大想法;)

16 个赞

如果我们有 鼓掌 功能,我就能为这个功能献上它真正应得的喜爱了。:wink:

2 个赞

我喜欢站内可工作的永久链接这一想法。如果能找到一个非英语单词的前缀,那就更好了。我们一直在逐步减少使用这类前缀。/groups :arrow_right: /g/users :arrow_right: /u 等等。

4 个赞

/l/(代表链接)听起来有点道理,但写起来很麻烦,即使我们接受 URL 中使用 I 也是如此。

另外,已有先例:https://www.golinks.io/

……也许我们可以用 /o/links :joy:……等等,我其实挺喜欢这个的……

4 个赞

为什么仅限内部链接?我们该如何解释 discourse.example.org/go/there 这个链接,与世界上其他所有超链接不同,当人们在特定的 Discourse 实例之外点击它时无法工作?:thinking:

1 个赞

外部 URL 已经是一个选项:

哦,等等,您是想问为什么重点在于“在 Discourse 内部帖子和主题中可正常访问的固定链接”吗?因为固定链接在完整页面加载时已经可以正常工作。目前,阻碍论坛部署此功能的唯一因素是 Ember 路由器,只需一个 howto 主题即可解决。

1 个赞

我只是觉得有两套遵循完全不同规则的“永久链接”让人很困惑:一套仅限内部使用,另一套仅限外部使用?:crazy_face:

4 个赞

“仅支持外部访问”是我们目前的方案,而我提议的类别应能同时适用于内外两种场景。discourse.example.org/o/there 在外部点击时理应能够正常工作(除非论坛设置了必须登录),并且如果您已进行相应配置,它实际上今天就已经支持外部点击了!

设置特殊前缀的唯一原因是为了与 JS 应用良好兼容。

7 个赞

虽然我理解为什么会这样,但我一直觉得“永久链接仅对外部有效”这一点非常令人困惑。你拿到一个链接却得到 404 错误,但重新加载后却又能正常访问。看起来 Rails 本可以在放弃之前先进行这样的检查。

当前的状态还意味着你在导入器中需要处理两次永久链接:一次用于外部链接,另一次用于重写帖子中的链接。

4 个赞

我认为我们可以让现有的服务器端永久链接与我们的 Ember.js 应用兼容。

https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/routes/unknown.js.es6#L4-L8

目前,在“unknown”路由中,我们无条件地显示 404 HTML 页面。相反,我们可以获取当前路径对应的永久链接,如果找到则重定向页面。

11 个赞

我认为将固定链接扩展到内部使用会是一个很棒的项目。@riking,也许等你完成手头的工作后,可以把这个作为下一个大目标?

15 个赞