It seems that the web UI treats spoilers without a space after ::: the same as the regular ones, while Thunder ignores those as spoilers. It looks like the closing spoiler marker may be entered without whitespace but it consumes extra text after the spoiler, and overall acts weird
I can create an issue if that's needed, or this post may be referenced in an existing issue to be used as a test
:::spoiler no whitespace
Content
:::
::: spoiler whitespace present
Content
:::
:::spoiler one-liner no whitespace
Content:::
::: spoiler one-liner whitespace present
Content:::
Extra text in the end
::: spoiler one-liner whitespace present
Content
:::
Second extra text
Thanks for the feedback! It would be awesome if you could create a new GitHub issue on this so that it makes it easier to keep track of.
Just as you mentioned, there doesn't seem to be a definition for what correctly defines a spoiler tag in Lemmy, so it's a bit difficult to get all the edge cases right! I kept the parsing to be limited to what Lemmy UI produces when you press the spoiler tag (which adds a space after :::). This is also non-standard markdown which makes it particularly more difficult to implement 😅
For reference, this is what Lemmy UI generates as a template:
I've filed an issue. I tried to be clear and concise but not sure if I did a good job at that.
All in all, it seems like there needs to be a post with all the possible combinations of weird stuff (e.g. using tabs as whitespace, not having closing ::: etc) and some interaction with lemmy-ui dev to understand if that cases are treated correctly by them and what is an intended way
To be fair, the last three spoilers become parts of each other in the web UI, so maybe it's ok that those act weird in Thunder, too
::: spoiler one-liner without newline
Content:::
Text A
::: spoiler one-liner without `:::`
Content
Text B
::: spoiler one-liner with newline
Content
:::
Text C
Also, I can't seem to find a definition of format, as it looks like a spoiler may go completely without closing ::: but can't check it against the standard