In the ProofreadPage page namespace, the "header" and "body" are joined with a double newline \n\n before being fed to the parser:
$wikitextContent = new WikitextContent( $this->header->getText() . "\n\n" . $this->body->getText() . $this->footer->getText() ); $parserOutput = $wikitextContent->getParserOutput( $title, $revId, $options, $generateHtml );
This is presumably intended to allow this:
Header | Body |
Header text | Body text |
to enter the parser like this:
Header text Body text
and come out as two paragraphs.
However, when the header contains a list item, this is wrong:
Header | Body |
* Item Foo | ** Sub item bar |
which enters the parser like this:
* Item Foo ** Sub item bar
rather than:
* Item Foo ** Sub item bar
This causes mis-rendering for pages like this, which then has no way to keep the header and body part of the same list.
I am unsure if a straight change from \n\n to \n would cause major breakage, as it's very rare, at least at enWS for a header to end with inline content. They normally contain block content, but this is not guaranteed.
An alternative (if ugly) solution is a magic word or similar to suppress one of the \ns in the cases where it causes an issue.