How can Markdown not address hyperlinking?
Say we define our own syntax for referencing a Rust function. It can even rip off ReST, without the rest of ReStructured Text’s horrible syntax. For example, we could use code blocks to dictate which part of a fully-qualified item gets hyperlinked:
The parser would have to look for :rs:, followed by a path name that uniquely qualifies an item.
If you’re searching for this post-markdown-compile, then you can look only for “plaintext” that begins with :rs: and ends with ::, followed immediately (no whitespace) by an inline code block. Then you test against the above rule. If it passes, you insert a link.
This is made possible because, without changes, those markdown strings render as, e.g.,
:rs:option::Option::is_some().
Surely this wouldn’t address every edge case, but it’s a reasonable start and doesn’t blast Markdown into the realm of “completely unrecognizable.” Additionally, the likelihood that the strings I mentioned would turn up in normal usage of Markdown is extremely low.