PSA: How to link users & communities so it doesn't break for other instances
Hi all!
So, I'm assuming everyone has seen links like https://beehaw.org/c/news and clicked through to find it doesn't work right because it's a different site (I'm assuming a different instance here).
Well, I just stumbled across an interesting feature: if you enter a link in the following format, it works for everyone regardless of instance of origin:
The only problem is that if your instance doesn't know about that community yet, it'll just 404, you still have to search for it first because visiting the link doesn't make your instance fetch the community yet.
This should still be the default behavior when it autofills a community link though, I hope they make this change 👍
Seeing the rampant confusion this causes when trying to subscribe to remote communities makes me wonder if the full community list could be shipped on initial federation, and community creation/change events could be eagerly shipped network-wide.
I get that in federated/peer-based systems you need to be choosy about eagerly propagating messages network-wide, but the list of extant communities seems like it would be fairly small even on a big server. Like hundreds would be common, and tens of thousands of communities on a big server could still compress down to a message-size of a few KB. Having the /communities/ search and all-communities page do something useful from the moment of federation seems like it would reduce a lot of confusion.
Maybe you could bring it up with the Kbin devs? I'm sure it wouldn't be too crazily difficult to have it work similarly over there. Just need to swap /c/ out for a /m/. Probably similar needed over here to translate /m/ to /c/ too.
The one that gets advertised in the sidebar is [email protected]. I'd love to see a canonical format established that has a superset of the useful behaviors of the non-canonical representations.
Edit: Most of those don't get hotlinked automatically. Does a bang-prefixed link do anything useful (no it doesn't)? And you pointed out c-prefixed does get hotlinked and work.
Edit2: As commenters below note, the behavior varies between web-ui and jerboa. 🤮
But how do I universally link a post or comment? The comment ids are different across instances! This comment by @[email protected] for example has a canonical URL (colored pentagram icon):
comment - [comment](/comment/[email protected]) - 404 comment - [comment](/comment/18453) - wrong comment for me
comment - [comment](/comment/240478) - works for me but not you comment - [comment](https://lemmy.world/comment/18453) - works but cannot reply since not logged in
I have nothing to add, I've just been summoned. It's confusing, though. I'm not sure anything works consistently in a way that anyone wants across apps and web-ui right now. If people decide on a best-practice, I'd like to read about it in docs or a sticky post. The official docs that show post/comment syntax are silent on referencing communities and mentioning users. This could be an opportunity for a first PR to improve them if someone figures out the best practice.
This is a great feature! I wish this could work in the url field too, as I tried that, but it doesn't take that much time to open the body of a post, so it's not really a major issue to worry about though
Ahaa! effect. Yes of course, as URL handling within the browser will inset your domain automatically. (edit for clarity: web browsers assume a link with a missing domain to go to the same domain/IP as the page the link is on, that's W3C standard -- therefore facepalm).
So, there is a bug in that link-builder popup which comes up as i start to type a [email protected] link, right? It should not create links to the domains directly.
edit: Unfortunately, links to federated posts and comments are still broken because posts synced to other instances get a different ID than the original. Same as with users, there is no unique post ID throughout the federation (no common namespace). Systemic error but probably simple to fix.
Going trough my old comments now. Shouldn't be that much.