Platforms that use Markdown-like syntax for formatting text but aren't actually compatible with Markdown. Gaze with me into the maw of madness:
_foo_ | *foo* | **foo** | |
|---|---|---|---|
| Markdown | italic | italic | bold |
| Google Chat | italic | bold | **unstyled** |
| Facebook Messenger | italic | bold | *bold & unstyled* |
| Slack | italic | bold | bold |
| Backloggd | underline | italic | bold |
These aren't even consistent enough that I can reliably remember "okay I should always use this one particular syntax for italics and that at least will always work". Nothing will always work. Life is suffering. At least Cohost is an island of standards-compliance in an ocean of nightmares.
my original philosophy behind this as someone pushing 40 was that my canonical ASCII renderings of bold, italic, and underline are *bold*, /italic/, and _underline_, which doesn't agree with any other site on the internet, so we might as well at least obey CommonMark
Or rather, it is following a completely different lineage that predates Markdown. Google Chat is copying, among other things, MSN Messenger1 and that is 5 years older than Markdown is. Markdown allowing _italic_ or *italic* feels like it is probably specifically appeasing chat apps using _italic_ even if it favours *italic*.
Underline and italic often traditionally had the same syntactic meaning. In Copy-editing you signal that something should be italicized by underlining it and apparently some publishers still use underline to mean italic pre-typesetting.
John Gruber chose wrong and now we all have to suffer for it2
-
I'm assuming they took it from ICQ or AIM. And that one of those two got if from an earlier predecessor. I just know MSN did it because I was trying to work out where I picked up that convention just last week.
-
There is a decent argument to make that in text where underscores may reasonably appear within words (e.g., variables, usernames), having underscore italicize causes too many problem.
See -- markdown isn't for chat app or even medium-Posting, really. It's for document (and documentation) writing, and it's sort of rough for Posting Ergonomics that aren't the Longpost, and great for Longer Form Stuff -- need to do a table? just make an ascii one, it will format it. Etc.
In terms of underscores and asterisks being interchangeable, it's perhaps a little nonsensical to have * and _ do the same thing, unless you also have underline. There were a few specs that included underline as 3 underscores or asterisks, in the 2010s, I think reddit being the leading one of them.
Then, it becomes clear -- What if you need to have bold, underline, and italics? How do you make that easy to edit for the post-writer? Not having to count characters, and instantly recognizable on a skim of the 'source code'?
You simply would do:
_**___This___**_ or *__***This***__*.
You could of course do
_____*this**_____
but it's way less readable.
This is also why you need to put two spaces after every linebreak on cohost -- Sometimes you want to split lines in the source, but have them be a combined line in the final post. These are concessions made for ease of re-use and editing and multiple people using the file, not reading/writing themselves.
Is that good? No. Is that bad? Not really. It's just the way things are, and maybe the context helps someone, or at least makes it easy to understand why things are the way they are, and through that, how to work around it.
Mostly CoHost just needs an IDE. No no, hear me out:
Wait why are you leaving.