Testing spoilers (editing)

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 spoiler Hello! :::


No whitespace

:::spoiler spoiler with no whitespace
Hello!
:::

:::spoiler spoiler with no whitespace Hello! :::


Leading whitespace

   ::: spoiler title
Hello!
:::

::: spoiler title Hello! :::


Any number of whitespaces between : and "spoiler"

:::              spoiler title
Hello!
:::

::: spoiler title Hello! :::


Any number of whitespaces between "spoiler" and the first non-whitespace character

::: spoiler                 title
Hello!
:::

::: spoiler title Hello! :::


Three or more colons

::::::::::::::::::::::::              spoiler title
Hello!
::::::::::::::::::::::::

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

::: spoiler a text (no whitespaces before :::) :::


::: spoiler a
text (1 whitespaces before :::)
 :::

::: spoiler a text (1 whitespaces before :::) :::


::: spoiler a
text (2 whitespaces before :::)
  :::

::: spoiler a text (2 whitespaces before :::) :::


::: spoiler a
text (3 whitespaces before :::)
   :::

::: spoiler a text (3 whitespaces before :::) :::


::: spoiler a
text (4 whitespaces before :::)
    :::

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

::: spoiler a text ::: spoiler b more text :::



The following examples will show the ::: within the spoiler, and will make the spoilers nested

::: spoiler a
text (4 whitespaces before :::)
    :::

::: spoiler a text (4 whitespaces before :::) :::


::: spoiler a
text:::

::: spoiler a text:::


::: spoiler a
text :::

::: spoiler a text :::


::: spoiler a
text
a:::

::: spoiler a text a:::

1 points · 0 comments · view on lemmy.world

0 Comments

No comments yet.