Spoiler text doesn't work with numbered lists - Intended behavior? Workaround?

The spoiler markdown is sometimes cough messed up. Today's edition: Spoiler doesn't work with numbered lists.

>! 1. Foo
2. Bar
3. Baz

renders like

! 1. Foo 2. Bar 3. Baz

>! 1. Foo
>! 2. Bar
>! 3. Baz

but that also turns into

1. Foo 2. Bar 3. Baz

Sheesh, it's ugly! I could also insert two spaces in the second version and get "bar" and "baz" in new lines, but that's still not proper or enough indentation.

Can this be fixed please? Are there any good and un-ugly workarounds? (preferably using markdown)

• To expand on this, they don't currently parse any other block elements inside them. This includes headers, blockquotes, code blocks, and horizontal rules in addition to the lists. – animuson Sep 17 '15 at 17:28
• Also please consider the possibility that you're hiding too much. – Josh Caswell Sep 17 '15 at 17:31
• And sometimes mathjax breaks too if i recall correctly. – Martin - マーチン Sep 17 '15 at 17:33
• @Josh we need it to hide a chemistry homework answer; recommended formatting is spoiler, but it's not necessary. – Margarine Sep 17 '15 at 18:39
• Awww, maaan…I was four paragraphs into a lengthy question about this very matter. – Blacklight Shining Sep 19 '15 at 1:53
• @JoshCaswell What if the post is just one long list of answers, with brief explanations for each answer on the same line? – Blacklight Shining Sep 19 '15 at 1:55
• Why are you hiding the text from the question, @BlacklightShining?! – Josh Caswell Sep 19 '15 at 3:54
• @JoshCaswell …I didn't think of that. Now that you mention it, though, I can't figure out how to spoiler just the answer on each line. – Blacklight Shining Sep 19 '15 at 5:07

Spoilers don't work at the Markdown level. You cannot use any block-level Markdown constructs with it.

How it works is that there's a postprocessor that looks for <blockquote> tags where each line starts with !. Such <blockquote>s get a spoiler class added. That's it.

And because of the !-at-start-of-each-line check, you cannot possibly have other block-level Markdown constructs within, such as code blocks, lists, etc. You can use manual HTML, though:

1. Test item 1
2. Test item 2

Well, unless the list itself is spoiler, you can hide each item on its own:

1. >!Foo
1. >!Bar
1. >!Baz


Which turns into:

1. Foo

2. Bar

3. Baz