One thing I've never been enthusiastic about has been Markdown's auto-renumbering support. I have never seen someone really being happy with the implementation and lots of people frustrated as they try to embed numbered items and get them renumbered.
1. First
1. Second
Yields:
First
Second
Usually came up on Reddit when someone wants to quote a single item in a numbered list from some external text, quotes only that, and it gets renumbered...and they don't know how to backslash-escape the period to avoid the thing:
1\. First
1\. Second
Yields:
First
Second
It looks like kbin also does the auto-renumbering. Dunno about lemmy. Kind of the one element of Markdown that I'd be happy to see die. I don't mind having a syntax for auto-numbered lists -- I just don't think that using an actual number as prefix to indicate that that should happen is a reasonable way to go about it.
Markdown is pretty 'dumb' in that it simply uses regular expressions to detect markdown tags/structures and then translates them into corresponding html elements. So when it sees subsequent lines each starting with a '{number}{dot}{space}' it determines that it's supposed to be a numbered list, so it translates that to an html ordered list. The numbers in an ordered list are not there if you look at a page source, they're only being rendered by your browser starting with '1' by default.
With all that being said, HTML5 supports overriding default values in an ordered list, so with additional logic in the markdown parser having numbers out of order could be done.
For anyone interested, here's the Lemmy markdown configuration. As you can see, Lemmy's website UI supports the full commonmark spec (tutorial / official spec), plus a bunch of extensions. I don't think anyone's fully documented these yet, so I'll try doing so below. Apologies in advance to mobile users, this is probably gonna get ugly (see included image links for how it should look):
URL autolinking (plaintext URLs automatically turn into links)
Lemmy autolinking:
NOTE: No link will be inserted if the viewer is browsing an instance where the resource is not yet known/blocked
Bottom part: [^notename]: Note text→(see bottom of post) (image)
Important: the bottom part must be at the very end of the post, otherwise both halves of the footnote will break!
Ruby Text: {example base text|example ruby text}→{example base text|example ruby text} (image)
"Ruby" is an html-ism for special pronunciation aids which frequently appear within young person's media where the language includes non-phonetic characters (e.g.: Chinese characters)
Japanese Furigana example: {凄|すご}い!→{凄|すご}い!(image)
Spoilers:
::: spoiler visible part example
hidden part example
:::
Your hyperlink to the Official Spec doesn't work for me on Vger. It launches my web browser without a URL and hiding down on the link doesn't reveal its destination.
That reminds me of the threads/comments about the spoiler tagging in Lemmy being broken in many apps, hopefully that'll be worked out sooner than later.
This is a spoiler
Magneto kills Dumbledore in Mordor
Just tested and it doesn't seem to work in neither Connect, Voyager/wefwef, Liftoff nor even in Jerboa... Only worked in the Lemmy PWA.
I don't believe spoilers are part of the official markdown specification. Even if markdown parsers supported it, I'd assume it would be ||this is a message||
The only two things formatting makdown consistently, for now, are Jerboa and the web interfaces.
I've been posting a lot of poetry using some markdown witchery to format, only to realize that some interfaces show all of the markdown even inside the post itself. Jerboa will show it in the summary tile before you click in, but it does format.
Kbin's implementation differs from Reddit's in at least one way that I've run into: Reddit permitted a link to be italicized using asterisks inside the link. Like:
I read a [book called *Arabian Nights*](https://en.wikipedia.org/wiki/One_Thousand_and_One_Nights).
Valid in Reddit Markdown, but in kbin's Markdown -- dunno what lemmy does -- that's not permitted, and gives this: