Page MenuHomePhabricator

Parsoid doesn't handle `<td style<nowiki>=</nowiki>...>` correctly on crhwiki
Closed, ResolvedPublic

Description

As seen on https://crh.wikipedia.org/wiki/Paris?useparsoid=1&variant=crh-cyrl the flag is misaligned:

image.png (306×509 px, 92 KB)
vs
image.png (306×509 px, 80 KB)

Looking more closely at the HTML, we see:

<td style="&quot;vertical-align:" about="#mwt11" typeof="mw:ExpandedAttrs" data-mw="{&quot;attribs&quot;:[[{&quot;txt&quot;:&quot;style&quot;,&quot;html&quot;:&quot;стйле&lt;span typeof=\&quot;mw:Nowiki\&quot; id=\&quot;mwBA\&quot;&gt;=&lt;/span&gt;\&quot;вертиджал-алигн:&quot;},{&quot;html&quot;:&quot;&quot;}]]}">
[...]
<a href="//crh.wikipedia.org/wiki/Fayl:Flag_of_Paris_with_coat_of_arms.svg" class="mw-file-description" title="алт=Байракъ[д]">
<img alt="алт=Байракъ[д]" resource="//crh.wikipedia.org/wiki/Fayl:Flag_of_Paris_with_coat_of_arms.svg" 
[...]

One issue is that the alt property of the a and the img contains the alt= prefix (transliterated into Cyrillic), which it should not; that is not this bug, however, that is T422965: Parsoid LanguageConverter prepends 'alt=' on media.

This task is for the style attribute, which is generated by [[Template:My]], aka https://crh.wikipedia.org/w/index.php?title=%C5%9Eablon%3AMY&veaction=editsource via [[Template:wikidata]] which does {{#invoke:Wikidata|formatProperty|property={{{1|}}}|value={{{2|}}}}}.

Somehow this seems to be generating something like стйле<span typeof=\"mw:Nowiki\" id=\"mwBA\">=</span>\"вертиджал-алигн: here in Parsoid, but which seems like it generates style="vertical-align: middle" in the legacy parser.

The bad markup seems to come from:
https://crh.wikipedia.org/w/index.php?title=%C5%9Eablon%3AInfobox%2Fbayraq_ve_tu%C4%9Fra&veaction=editsource
which has:

<td style<nowiki>=</nowiki>"vertical-align: middle">