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:::

  • darklightxiOPM
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    10 months ago

    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.

    • darklightxiOPM
      link
      fedilink
      arrow-up
      1
      ·
      10 months ago

      Testing reply from inbox replies page using swipe gesture

    • darklightxiOPM
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      10 months ago

      Testing reply when navigating to post from inbox replies page

      Edit: testing editing comment from account page again and again

  • darklightxiOPM
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    10 months ago
    ::: spoiler test
    test
    :::                  -
    

    ::: spoiler
    test :::

    hello