It occurs to Us that just how horrible the #markup situation for #Matrix is isn't very common or accessible knowledge, so here's a summary from a nerd who loves tinkering with markup.

For background, unlike the common asmuption, Matrix doesn't actually work with #MarkDown (#CommonMark), but defines a narrow set of HTML tags and attributes to be supported and it's the client's job to convert markdown to HTML before sending. And, before We say anything bad about it, We absolutely love the idea, if it were executed properly, it would completely blow every other chat platform out of the water with how powerful the markup is while remaining just as accessible to the average user.

Of course, this is #mtarix we're talking about, so what actually happens is that
1. "Implement any of these tags at your convenience. We do not care how many or which." ( https://spec.matrix.org/latest/client-server-api/#mroommessage-msgtypes )and
2. even if you follow the """strongly advised""" set to a tee, there's still so much behavior left undefined that even when things are "supported", there is no guarantee that anything but the most basic of markup will result in messages that look anything alike.

Client-Server API

The client-server API allows clients to send messages, control rooms and synchronise conversation history. It is designed to support both lightweight clients which store no state and lazy-load data from the server as required, as well as heavyweight clients which maintain a full local persistent copy of server state.

Matrix Specification

Oh you want to spoiler an embedded image? Sorry, half the clients render that on top of spoilers for some reason. Except for #Fractal and #ElementX, which just don't render any spoiler nor embedded images.

You want to suppress a preview? Sure, put it in a blockquote, half the clients will know to suppress it. This behavior is not defined anywhere.

What's that, you want to quote something that entails cursive text? That works, :D!
…Except on #FluffyChat and #Cinny, which will just make everything in a blockquote cursive.
…Except <code> segments. Sometimes.

The <details> element? Why don't you just go die in a ditch instead? Here's rainbow text.