Internal Link Shortcuts

Today I was looking for a way to link to a post in the same topic.

The :link: icon, when clicked, shows post #4, so I tried: using #4 and post#4, only to get frustrated, but discovering that the # character pops up categories to link (which I read about extensively since, in meta.)

Now, I find this quite inconsistent, and would like to propose ways to consistently address internal links that matches the actual URL format, or already used patterns…

Generic Patterns

Using colon as a prefix or separator would be nice, but it already autocompletes to emoticons and that could become messy. But consider: :4, :10:4, and 3:10:4 (with optional colon prefix) to link to post number 4 in the current topic, post number 4 in topic 10, and post number 4 in topic 10 of category 3.

Using / instead might work, but then it should match the URL, e.g., /c/3, /t/10, and /t/10/4.

The “quote reply” to a post uses keyword colon number, e.g., post:4 or topic:123. This can be very useful is there’s a way to show these IDs with every post (e.g., with an element title or tooltip).

In general though, #post_4 would use the actual anchor in the HTML. #4 would be great too, but it conflicts with the (current) category shortcut (BTW, what happens when you have a category name matching a tag name?)

Both solutions though are problematic for i10n since they impose English words.

The shortcut to a post in the current topic should make category and topic implicit.

Since topic IDs are global, .. can be useful, as in .[optional topic ID].[post number], e.g.:

  • ..4 to link to post #4 in current topic
  • .10.4 to link to post #4 in topic 10

Use the URL to the post. You can also edit the URL to make it refer to a specific post number in the topic as needed.

1 Like

But that requires using the mouse instead of the keyboard, doesn’t it?

You can use j and k to navigate through the posts and the URL changes accordingly, so you can ^L^C to copy the URL of the current post.

Except it’s off by one:

https://meta.discourse.org/t/url-off-by-one-when-moving-through-posts-with-keyboard/50925

4 Likes

Is there a way to use relative URLs, e.g. /t/50904 instead of https://meta.discourse.org/t/50904 ?

test for just pasting the whole url: Internal Link Shortcuts

(just trying to wrap my brain around the concept of using the full URL to refer to a link on the same server, which seems to risk staleness in protocol or hostname… in my case I have a behind-the-firewall http: instance of Discourse which we have yet to migrate to TLS, so if we have a bunch of http: internal links, will we have broken links when the URLs change to https: ?)

Standard HTML should work

<a href="/t/internal-link-shortcuts/50904/6">Link</a> should become Link.

Markdown should also work with

[Link](/t/internal-link-shortcuts/50904/6) becomes Link

4 Likes

Unless you think that every user every time will re-write their URLs now for no immediate benefit, you’ll need to do a remap when you change protocols anyway. Sure, you might be willing to do such when composing URLs, but most people won’t. It’s not that big a deal to do a remap of http://yourdomain/ to https://yourdomain.

This is the kind of thing that we computer people worry about that really doesn’t make a difference. It’s really, really, hard, but you should let it go. :wink:

2 Likes

trying it… with /t/50904/6

link to post 6

yay! thanks

4 Likes