Feature interest survey: "go" permalinks

Looking for a check on if people would find this feature useful:

A special type of permalinks that work from posts and topics inside Discourse, which need a special prefix to make the routing work (here, let’s say /go/). (Current permalink records only work for requests that hit Rails first (new page loads + open in New Tab).)

These permalinks would be editable by moderators (less damage you can do when the URLs are scoped).

Use case: easily written URLs to common community resources, e.g. we could give each #howto topic one or two link words, or create /go/install for the standard install.

Surveying interest because I frequently have big ideas nobody wants :wink:

16 Likes

If we had claps then I could give this feature the love I really feel that it deserves. :wink:

2 Likes

I like the idea of permalinks that work within the site. If we can find a prefix that’s not an english word, even better. We’ve been slowly moving away from that. /groups :arrow_right: /g, /users :arrow_right: /u, etc.

4 Likes

/l/ (for link) makes kind of sense but is pretty bad to write, even if we accept I in the URL as well.

Also, prior art: https://www.golinks.io/

… maybe we could have ‘/o/links’ :joy: … wait, I actually like that…

4 Likes

Why internal links only? How do we explain that discourse.example.org/go/there, unlike every other hyperlink in the world, does not work when people click on it outside that specific Discourse instance? :thinking:

1 Like

External URL is already an option:

Oh wait, you meant why the focus on “permalinks that work from posts and topics inside Discourse”? Because the permalinks already work for full-page loads. The Ember router is the only thing blocking forums from deploying this today with just a #howto topic.

1 Like

I just think it’s confusing to have two sets of “permalinks”, with totally different rules? One set works internal only, one set works… external only? :crazy_face:

4 Likes

“One works external only” is what we have today, I was proposing a category that would work for both. discourse.example.org/o/there should totally work when you click it from outside (unless forum’s login_required), and already works today for outside clicks if you set it up!

The only reason for a special prefix is to play nice with the JS app.

7 Likes

Though I understand why it’s the case, I have always found the “permalinks work only externally” thing really confusing. You got a link and get a 404, but if you reload it works. It would seem like rails could do that check before giving up.

The current state also means that you have to deal with permalinks twice in an importer, once for external links and again to rewrite links in posts.

4 Likes

I think we can make existing server-side permalinks compatible with our Ember.js app.

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

Currently, in the “unknown” route we unconditionally displaying the 404 HTML. Instead, we can get the corresponding permalink of the current path and redirect the page if found.

11 Likes

I think extending permalinks to work internally would be a great project. @riking maybe once you finish up your current work you can try this as your next big thing?

15 Likes