Pedantically speaking, I think this the behaviour is acceptable. There’s not enough information by itself to distinguish between relative or a hostname.
A link contains link text (the visible text), a link destination (the URI that is the link destination)
example.com
is not a valid URI by itself, even though if you type example.com by itself it’ll get turned into a link. That’s convention not specification though, since pineapple.belongson.pizza is also a valid hostname (well, it was until I let the domain expire) but doesn’t get auto-linked.
You can use:
- rooted URI
[rooted](/t/384591)
rooted - relative URI (with or without ./)
these are valid markdown, but our parser forbids it
[relative](../../386082)
relative
[relative](./386082)
relative
[relative](386082)
relative - absolute URI
[absolute](https://www.example.com/foo.html)
absolute - schemeless URI (similar to relative, but explicitly relative to only the scheme)
[schemeless](//www.example.com/foo.html)
schemeless
Arguably, this is the correct behaviour. Without any sort of anchoring at the front, it’s a path relative to the current location, same as [link](./example.com)
.