I have some text on a page that looks like this:
a{{Delim}}b
If Template:Delim looks like this:
<onlyinclude>,</onlyinclude>
Then I get
a,b
But if Template:Delim looks like this:
<onlyinclude>:</onlyinclude>
Then I get
a
b
The ':' symbol is being interpreted as if it appeared at the beginning of a line, even though it does not.
The '*', '#' and ';' symbols also have this effect -- interpreted as markup rather than punctuation. On the other hand, the '|' symbol does not -- if I put "a{{Delim}}b" inside of a table, it will correctly produce "a|b" in the table cell.
Is this a bug? I've always interpreted "the start of the line" to mean "preceded by a newline" in the fully-expanded source, but maybe text appearing at the start of a template is supposed to get special treatment?
Workaround: add <nowiki/> to the start of Template:Delim.
Version: MediaWiki 1.24.2, PHP 5.5.20; various extensions including Semantic MediaWiki and Gadgets
—Dan