Escaped markdown should not be interpreted as shortcuts (like `@` and `#`)
### Description gitlab-flavoured markdown keeps adding new shortcuts to create terse, and easy to parse (for humans) textual representation with lots of cross-references. cool. unfortunately this also means, that an ever growing number of special characters cannot be used for "normal" text anymore. this is especially true, for special characters that have a *real-world usage* that looks similar to the text-representation in GFM. it also doesn't really help, that sometimes a reference will expand to a link (if the referenced item exists), and sometimes it stays "as is". at the time of writing *six* (6!) characters (`@#!$~%`) are overloaded with special meaning (related to gitlab references), making them unusable for other things. ###### examples: - `#1` using a hash `#` followed by a number is often used to reference enumerations (in gitlab context this could mean enumerations within a given issue, rather than neighboring *issues*) - `~5` the tilde `~` is a common abbreviation for `approximately` - `$10` prefixing a number with currency symbol is often used to denote amounts of money. ### Proposal it would be nice, if cross-references could be escaped easily. e.g. i currently don't have a way to use "gitlab-ce#1" without making it either a link to `issue#1` (and creating a back-reference there) or marking it as `code` (which has a distinct look and meaning). even better than adding special characters to avoid creating gitlab references, would be have been a generic meta-escape character that starts a gitlab cross-reference. e.g. using `#!5` (rather than `!5`) to reference MRs. i don't see any obvious collision (currently `#[^0-9]` seems to be forbidden anyhow), but feel free to come up with something better. ### Compatibility obviously there might be compatibility issues with *removing* special meaning from a given character. but then, i guess you could keep the old behaviour for a while, documenting only the new behaviour (so it gets adopted), and allow the admin to convert all gitlab-references to the *new scheme* ### References github at least shares the PR and issue namespace, so you can use `#` to refer to either of them.
issue