The following syntaxes work as expected (they create one spoiler tag).
The general rule here is that we allow 0-3 whitespaces before the starting colon, 3 or more colons, any number of optional whitespaces, and the “spoiler” keyword with any non-whitespace character after it.
Normal
::: spoiler spoiler
Hello!
:::
spoiler
Hello!
No whitespace
:::spoiler spoiler with no whitespace
Hello!
:::
spoiler with no whitespace
Hello!
Leading whitespace
::: spoiler title
Hello!
:::
title
Hello!
Any number of whitespaces between : and “spoiler”
::: spoiler title
Hello!
:::
title
Hello!
Any number of whitespaces between “spoiler” and the first non-whitespace character
::: spoiler title
Hello!
:::
title
Hello!
Three or more colons
:::::::::::::::::::::::: spoiler title
Hello!
::::::::::::::::::::::::
title
Hello!
Here’s where we run into some weird edge cases:
If there is an ending :::
, Lemmy will consume the first instance of :::
only if :::
is on a new line with no other text (and up to 3 white spaces)
::: spoiler a
text (no whitespaces before :::)
:::
a
text (no whitespaces before :::)
::: spoiler a
text (1 whitespaces before :::)
:::
a
text (1 whitespaces before :::)
::: spoiler a
text (2 whitespaces before :::)
:::
a
text (2 whitespaces before :::)
::: spoiler a
text (3 whitespaces before :::)
:::
a
text (3 whitespaces before :::)
::: spoiler a
text (4 whitespaces before :::)
:::
a
text (4 whitespaces before :::) :::
Lemmy doesn’t need an :::
ending in order to display the spoiler. If :::
is not present, it will assume the spoiler continues until the end:
::: spoiler a
::: spoiler a
text
Lemmy will create nested spoilers if it cannot find :::
before another ::: spoiler
:
::: spoiler a
text
::: spoiler b
more text
a
text
b
more text
The following examples will show the :::
within the spoiler, and will make the spoilers nested
::: spoiler a
text (4 whitespaces before :::)
:::
a
text (4 whitespaces before :::) :::
::: spoiler a
text:::
a
text:::
::: spoiler a
text :::
a
text :::
::: spoiler a
text
a:::
a
text a:::
Testhello
Testhello
Testing a really long piece of text with some superscript present on the next linehere
Testing a really long piece of text with some subscript present on the next linehere
This is a textsuperscript and this is a textsubscript
This is text with a subscripthello followed by another text which contains a superscripthello in the same paragraph.
Testing reply to post again
Testing reply
Testing reply from inbox replies page using swipe gesture
Testing reply when navigating to post from inbox replies page
Edit: testing editing comment from account page again and again
Testing reply from post FAB action
Testing reply to comment from long press action
Testing reply from long press again
Testing reply from long press
Testing reply from long pressssss
Testing reply to post from fab
Testing reply to post
Test edit
Testing reply to post from action edit
Testing reply to comment from long press edit
::: spoiler test test ::: -
::: spoiler
test :::hello