Page MenuHomePhabricator

File links containing double pipes ([[File:Foo.jpg|16px||Bar]] etc) are mangled inside wikitables
Closed, DeclinedPublic

Description

Author: vlakoff

Description:
Since 1.17 update, when using [[File:]] with an empty parameter inside a wikitable, parameters are shifted.

this works (size 16px, alt=<filename>):

[[File:Increase2.svg|16px||link=]]

... but this doesn't work (unresized, alt="16px link="):

{| class="wikitable"
|-
| [[File:Increase2.svg|16px||link=]]
|}

expected result: same as outside a table

other tests:

[[File:Increase2.svg||16px|link=]] : broken
[[File:Increase2.svg|16px|link=|]] : not broken
[[File:Increase2.svg|16px| |link=]] : not broken

Version: 1.18.x
Severity: normal

Details

Reference
bz27693

Event Timeline

bzimport raised the priority of this task from to Medium.Nov 21 2014, 11:33 PM
bzimport set Reference to bz27693.
bzimport added a subscriber: Unknown Object (MLST).

happy.melon.wiki wrote:

Exactly the same behaviour is observed in 1.16.2. This is definitely a problem, a bug with the way the multiple-cells-on-one-row syntax is parsed, but it is not a 1.17 regression.

Note, as a work around, doing:

{| class="wikitable"

-
[[File:Increase2.svg|16px| |link=]]
}

or even:

{| class="wikitable"

-
[[File:Increase2.svg|16px|link=]]
}

Both give the exact same images as [[File:Increase2.svg|16px||link=]]
does outside a table.

This no longer seems to be an issue (on 1.24.0)

No the problem is still there. It seems to treat || as the table cell separator. See also: https://test.wikipedia.org/wiki/Bug_T29693

ssastry subscribed.

I am not sure this needs supporting. This is an edge case, and we already have a linter category for images when you have bogus image options. And, when there is a double pipe in an image link, that is flagged as a bogus option. We are encouraging editors to fix those errors which they have been.

On the other hand, there is for sure a bug in the parser...
So even if this one resulting issue may be ignored, we have here an open gate for other issues.