Last modified: 2011-04-14 15:12:25 UTC
On the sample page, you find three block which I expected to be identical (like the 3rd) but two of them are not.
There's no need to use <nowiki> inside <pre>, <pre> is already nowiki-fied, as such I've removed them from your example page to simply the demo since there is no difference betweeen them in output. The bug is related to where the line-break is. Rephrazing summary.
This is partially a tidy issue (well actually without tidy its even more borked... Anyways, try it in [[special:expandtemplates]] to see what i mean). Mediawiki interprets ;Foo: Bar To mean a definition list where the term Foo is defined by Bar. MediaWiki expects all the content of the definition when using ; : lists to be on the same line, so after the first line break in the pre, MediaWiki considers that to be the end of the <dd> tag (Thus in your example, resulting in a <dd> tag that looks like <dd><pre></dd>, which is striped by tidy). The browser (or tidy) see's the closed </dd> but no closing </pre> , so assumes the closing tag for pre was missed, and closes it. So MediaWiki would either have to see that a pre started inside the <dd> and wait for the </pre> before closing the <dd>, or it could just stop the <dd> as soon as it sees a <pre>. However doing that would break the usecase of doing ;Foo:<pre>bar</pre> which does work fine. Minimal test case is: ;Foo:<pre> bar</pre> Compared to: ;Foo: <pre> bar</pre> Or (probably closer to your expected behaviour) ;Foo:<pre>bar</pre>