P.S. When I tried to post, I saw An error occurred: Sorry, new users can only put 2 links in a post.
popup. I don’t know what kind of spam is it able to prevent as one link is enough for most spammers, but now I have to replace some of my nicely-formatted markdown links with text-based footnotes. The process of adding a footnote in the default markdown editor is by itself so glitchy and infuriating to be worth a separate report.
P.S.S. It appears that Markdown-based references are also counted as links. Removing them in favor of Unicode superscript digits. At 40th minute of me trying to write this post.
According to STD 66 / RFC 3986¹ (human-friendly extracted list²), 81 characters may be unescaped in a URL fragment or queue. This list, sorted in ASCII order by the framework “Foundation³” in the Swift programming language: !$&'()*+,-./0123456789:;=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~
The following is a URL containing several of these characters: Example Domain '()*+,-./0123456789:;=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~ As you may see, highlighting is being cut off at a certain point.
While working at my project that uses these 81 characters to encode binary data in fragments (in base64 fashion, but more compact) I checked now up-to-spec highlighting is on several websites. While a similar bug was, inconsistently, present in some other places (like GitHub forum being unable to highlight the last character if it’s a ~
), Discourse has the widest selection of broken symbols. Some characters may or may not break the highlighting depending on some mysterious context, hence I don’t think I would be able to compose a comprehensive list.
¹ Google rfc/rfc3986.txt
² Look for Stack Overflow answer #26119120
³ Look up documentation/foundation/nscharacterset/urlfragmentallowed on Apple > Developer
P.S.S.S. Some standard E-Mail addresses are also not highlighted. I’ll use my second link to link to https://e-mail.wtf for some examples.
Not highlighted, but should be:
orgmail(to John Doe)@example.com
“:(){ :|:& };:”@example.com
magic@[::1]