Flow was supplying an empty string as a parameter to a message, due to a
bug 59198. What surprised me is the rendered HTML turned into a
preformatted (typewriter-style) block. This happens because the
'flow-topic-participants' message goes through parse(), and in wikitext a
leading blank formats the text as a <pre> tag. You can see this using
eval.php:
> echo wfMessage( 'flow-topic-participants', 2, 2, '', 'second person'
)->parse();
(note the empty string for first participant); this prints
<pre>and second person
</pre>
1) Is there a way to turn off this over-aggressive parsing? It's unwanted
for an i18n string you know should just be a span.
2) Is there an idiom to guard against this unintended <pre> tag generation,
without making the message[1] even more complicated? E.g. we could put some
zero-width Unicode character at the start.
Thanks as always in advance,
[1]
'flow-topic-participants' => '{{PLURAL:$1|$3 started this
topic|{{GENDER:$3|$3}}, {{GENDER:$4|$4}}, {{GENDER:$5|$5}} and $2
{{PLURAL:$2|other|others}}|0=No participation yet|2={{GENDER:$3|$3}} and
{{GENDER:$4|$4}}|3={{GENDER:$3|$3}}, {{GENDER:$4|$4}} and {{GENDER:$5|$5}}}}
--
=S Page WMF Features engineer