Sync up core repo with Parsoid

This now aligns with Parsoid commit 9fac646fe95054a8b68765b381d987b46c4eebca

Bug: T382963
Change-Id: Iec78163a320210e411845017619e99bf1af7c9ec
This commit is contained in:
Arlo Breault 2025-06-03 17:30:47 -04:00
parent a43f368b65
commit e49931aca1
4 changed files with 57 additions and 43 deletions

View file

@ -78,13 +78,18 @@ Interwiki link with fragment (T4130)
iwl
!! metadata
iwl=meatball:SoftSecurity
iwl=meatball:Soft
!! wikitext
[[MeatBall:SoftSecurity#foo]]
[[meatball:Soft#Bar]]
!! html/php
<p><a href="http://www.usemod.com/cgi-bin/mb.pl?SoftSecurity#foo" class="extiw" title="meatball:SoftSecurity">MeatBall:SoftSecurity#foo</a>
</p><p><a href="http://www.usemod.com/cgi-bin/mb.pl?Soft#Bar" class="extiw" title="meatball:Soft">meatball:Soft#Bar</a>
</p>
!! html/parsoid
<p><a rel="mw:WikiLink/Interwiki" href="http://www.usemod.com/cgi-bin/mb.pl?SoftSecurity#foo" title="meatball:SoftSecurity" class="extiw">MeatBall:SoftSecurity#foo</a></p>
<p><a rel="mw:WikiLink/Interwiki" href="http://www.usemod.com/cgi-bin/mb.pl?Soft#Bar" title="meatball:Soft" class="extiw">meatball:Soft#Bar</a></p>
!! end
## The non-local interwiki case here continues to be legacy escaped because of the

View file

@ -1084,7 +1084,7 @@ Nested: -{zh-hans:Hi -{zh-cn:China;zh-sg:Singapore;}-;zh-hant:Hello -{zh-tw:Taiw
<p>Nested: Hello Hong Kong!
</p>
!! html/parsoid
<p>Nested: <span typeof="mw:LanguageVariant" data-parsoid='{"tSp":[7]}' data-mw-variant='{"twoway":[{"l":"zh-hans","t":"Hi &lt;span typeof=\"mw:LanguageVariant\" data-mw-variant=&apos;{\"twoway\":[{\"l\":\"zh-cn\",\"t\":\"China\"},{\"l\":\"zh-sg\",\"t\":\"Singapore\"}]}&apos; data-parsoid=&apos;{\"fl\":[],\"tSp\":[7],\"dsr\":[21,53,2,2]}&apos;>&lt;/span>"},{"l":"zh-hant","t":"Hello &lt;span typeof=\"mw:LanguageVariant\" data-mw-variant=&apos;{\"twoway\":[{\"l\":\"zh-tw\",\"t\":\"Taiwan\"},{\"l\":\"zh-hk\",\"t\":\"H&amp;lt;span typeof=\\\"mw:LanguageVariant\\\" data-mw-variant=&amp;apos;{\\\"disabled\\\":{\\\"t\\\":\\\"ong\\\"}}&amp;apos; data-parsoid=&amp;apos;{\\\"fl\\\":[],\\\"dsr\\\":[90,97,2,2]}&amp;apos;>&amp;lt;/span> K&amp;lt;span typeof=\\\"mw:LanguageVariant\\\" data-mw-variant=&amp;apos;{\\\"disabled\\\":{\\\"t\\\":\\\"\\\"}}&amp;apos; data-parsoid=&amp;apos;{\\\"fl\\\":[],\\\"dsr\\\":[99,103,2,2]}&amp;apos;>&amp;lt;/span>ong\"}]}&apos; data-parsoid=&apos;{\"fl\":[],\"tSp\":[7],\"dsr\":[68,109,2,2]}&apos;>&lt;/span>"}]}'></span>!</p>
<p>Nested: <span typeof="mw:LanguageVariant" data-mw-variant='{"twoway":[{"l":"zh-hans","t":"Hi &lt;span typeof=\"mw:LanguageVariant\" data-mw-variant=&apos;{\"twoway\":[{\"l\":\"zh-cn\",\"t\":\"China\"},{\"l\":\"zh-sg\",\"t\":\"Singapore\"}]}&apos; data-parsoid=&apos;{\"fl\":[],\"src\":\"-{zh-cn:China;zh-sg:Singapore;}-\",\"tSp\":[7],\"dsr\":[21,53,2,2]}&apos;>&lt;/span>"},{"l":"zh-hant","t":"Hello &lt;span typeof=\"mw:LanguageVariant\" data-mw-variant=&apos;{\"twoway\":[{\"l\":\"zh-tw\",\"t\":\"Taiwan\"},{\"l\":\"zh-hk\",\"t\":\"H&amp;lt;span typeof=\\\"mw:LanguageVariant\\\" data-mw-variant=&amp;apos;{\\\"disabled\\\":{\\\"t\\\":\\\"ong\\\"}}&amp;apos; data-parsoid=&amp;apos;{\\\"fl\\\":[],\\\"src\\\":\\\"-{ong}-\\\",\\\"dsr\\\":[90,97,2,2]}&amp;apos;>&amp;lt;/span> K&amp;lt;span typeof=\\\"mw:LanguageVariant\\\" data-mw-variant=&amp;apos;{\\\"disabled\\\":{\\\"t\\\":\\\"\\\"}}&amp;apos; data-parsoid=&amp;apos;{\\\"fl\\\":[],\\\"src\\\":\\\"-{}-\\\",\\\"dsr\\\":[99,103,2,2]}&amp;apos;>&amp;lt;/span>ong\"}]}&apos; data-parsoid=&apos;{\"fl\":[],\"src\":\"-{zh-tw:Taiwan;zh-hk:H-{ong}- K-{}-ong;}-\",\"tSp\":[7],\"dsr\":[68,109,2,2]}&apos;>&lt;/span>"}]}' data-parsoid='{"fl":[],"src":"-{zh-hans:Hi -{zh-cn:China;zh-sg:Singapore;}-;zh-hant:Hello -{zh-tw:Taiwan;zh-hk:H-{ong}- K-{}-ong;}-;}-","tSp":[7]}'></span>!</p>
!! end
!! test
@ -1097,7 +1097,7 @@ language=zh htmlVariantLanguage=zh-Hans-CN
<p><span title="X">A</span>
</p>
!! html/parsoid
<p><span typeof="mw:LanguageVariant" data-mw-variant='{"filter":{"l":["zh","zh-hans","zh-hant"],"t":"&lt;span title=\"\" about=\"#mwt1\" typeof=\"mw:ExpandedAttrs\" data-parsoid=&#39;{\"stx\":\"html\",\"a\":{\"title\":\"\"},\"sa\":{\"title\":\"-{X}-\"},\"dsr\":[21,49,20,7]}&#39; data-mw=&#39;{\"attribs\":[[{\"txt\":\"title\"},{\"html\":\"&amp;lt;span typeof=\\\"mw:LanguageVariant\\\" data-mw-variant=&amp;apos;{\\\"disabled\\\":{\\\"t\\\":\\\"X\\\"}}&amp;apos; data-parsoid=&amp;apos;{\\\"fl\\\":[],\\\"dsr\\\":[34,39,2,2]}&amp;apos;>&amp;lt;/span>\"}]]}&#39;>A&lt;/span>"}}'></span></p>
<p><span typeof="mw:LanguageVariant" data-mw-variant='{"filter":{"l":["zh","zh-hans","zh-hant"],"t":"&lt;span title=\"\" about=\"#mwt1\" typeof=\"mw:ExpandedAttrs\" data-parsoid=&apos;{\"stx\":\"html\",\"a\":{\"title\":\"\"},\"sa\":{\"title\":\"-{X}-\"},\"dsr\":[21,49,20,7]}&apos; data-mw=&apos;{\"attribs\":[[{\"txt\":\"title\"},{\"html\":\"&amp;lt;span typeof=\\\"mw:LanguageVariant\\\" data-mw-variant=&amp;apos;{\\\"disabled\\\":{\\\"t\\\":\\\"X\\\"}}&amp;apos; data-parsoid=&amp;apos;{\\\"fl\\\":[],\\\"src\\\":\\\"-{X}-\\\",\\\"dsr\\\":[34,39,2,2]}&amp;apos;>&amp;lt;/span>\"}]]}&apos;>A&lt;/span>"}}' data-parsoid='{"fl":["zh","zh-hans","zh-hant"],"src":"-{zh;zh-hans;zh-hant|&lt;span title=\"-{X}-\">A&lt;/span>}-"}'></span></p>
!! end
!! test
@ -1110,7 +1110,7 @@ language=zh htmlVariantLanguage=zh-Hans-CN
<p><span title="X">A</span>
</p>
!! html/parsoid
<p><span typeof="mw:LanguageVariant" data-mw-variant='{"disabled":{"t":"&lt;span title=\"\" about=\"#mwt1\" typeof=\"mw:ExpandedAttrs\" data-parsoid=&#39;{\"stx\":\"html\",\"a\":{\"title\":\"\"},\"sa\":{\"title\":\"-{X}-\"},\"dsr\":[2,30,20,7]}&#39; data-mw=&#39;{\"attribs\":[[{\"txt\":\"title\"},{\"html\":\"&amp;lt;span typeof=\\\"mw:LanguageVariant\\\" data-mw-variant=&amp;apos;{\\\"disabled\\\":{\\\"t\\\":\\\"X\\\"}}&amp;apos; data-parsoid=&amp;apos;{\\\"fl\\\":[],\\\"dsr\\\":[15,20,2,2]}&amp;apos;>&amp;lt;/span>\"}]]}&#39;>A&lt;/span>"}}'></span></p>
<p><span typeof="mw:LanguageVariant" data-mw-variant='{"disabled":{"t":"&lt;span title=\"\" about=\"#mwt1\" typeof=\"mw:ExpandedAttrs\" data-parsoid=&apos;{\"stx\":\"html\",\"a\":{\"title\":\"\"},\"sa\":{\"title\":\"-{X}-\"},\"dsr\":[2,30,20,7]}&apos; data-mw=&apos;{\"attribs\":[[{\"txt\":\"title\"},{\"html\":\"&amp;lt;span typeof=\\\"mw:LanguageVariant\\\" data-mw-variant=&amp;apos;{\\\"disabled\\\":{\\\"t\\\":\\\"X\\\"}}&amp;apos; data-parsoid=&amp;apos;{\\\"fl\\\":[],\\\"src\\\":\\\"-{X}-\\\",\\\"dsr\\\":[15,20,2,2]}&amp;apos;>&amp;lt;/span>\"}]]}&apos;>A&lt;/span>"}}' data-parsoid='{"fl":[],"src":"-{&lt;span title=\"-{X}-\">A&lt;/span>}-"}'></span></p>
!! end
# Parsoid and PHP disagree on how to parse this example: Parsoid

View file

@ -4522,6 +4522,29 @@ language=eo
<figure class="mw-halign-left" typeof="mw:File" data-parsoid='{"optList":[{"ck":"left","ak":"maldekstra"},{"ck":"width","ak":"100ra"},{"ck":"caption","ak":"caption"}]}'><a href="./Dosiero:Foobar.jpg" class="mw-file-description" title="caption"><img alt="caption" resource="./Dosiero:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/100px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="11" width="100" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/150px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg 2x" class="mw-file-element" data-parsoid='{"a":{"resource":"./Dosiero:Foobar.jpg","height":"11","width":"100"},"sa":{"resource":"Dosiero:Foobar.jpg"}}'/></a><figcaption>caption</figcaption></figure>
!! end
!! test
Localized gallery widths
!! config
wgParserEnableLegacyMediaDOM=false
!! options
language=eo
!! wikitext
<gallery widths="100ra">
Dosiero:Foobar.jpg|caption
</gallery>
!! html/php
<ul class="gallery mw-gallery-traditional">
<li class="gallerybox" style="width: 135px">
<div class="thumb" style="width: 130px; height: 150px;"><span typeof="mw:File"><a href="/wiki/Dosiero:Foobar.jpg" class="mw-file-description" title="caption"><img alt="caption" src="http://example.com/images/thumb/3/3a/Foobar.jpg/100px-Foobar.jpg" decoding="async" width="100" height="11" class="mw-file-element" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/150px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg 2x" /></a></span></div>
<div class="gallerytext">caption</div>
</li>
</ul>
!! html/parsoid
<ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" about="#mwt2" data-mw='{"name":"gallery","attrs":{"widths":"100ra"},"body":{}}'>
<li class="gallerybox" style="width: 135px;"><div class="thumb" style="width: 130px; height: 150px;"><span typeof="mw:File"><a href="./Dosiero:Foobar.jpg" class="mw-file-description" title="caption"><img alt="caption" resource="./Dosiero:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/100px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="11" width="100" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/150px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg 2x" class="mw-file-element"/></a></span></div><div class="gallerytext">caption</div></li>
</ul>
!! end
!! test
Broken media gets category
!! options

View file

@ -2797,6 +2797,32 @@ subpage
<p><a rel="mw:WikiLink" href="./User:Test/123#a" class="mw-selflink-fragment" data-parsoid='{"stx":"piped","a":{"href":"./User:Test/123#a"},"sa":{"href":"#a"}}'>b</a></p>
!! end
!! test
Purely hash wikilink on file page
!! options
title=[[File:Foobar.jpg]]
!! wikitext
[[#a|b]]
!! html/php
<p><a href="#a">b</a>
</p>
!! html/parsoid
<p><a rel="mw:WikiLink" href="./File:Foobar.jpg#a" class="mw-selflink-fragment" data-parsoid='{"stx":"piped","a":{"href":"./File:Foobar.jpg#a"},"sa":{"href":"#a"}}'>b</a></p>
!! end
!! test
Purely hash wikilink on category page
!! options
title=[[Category:Foobar]]
!! wikitext
[[#a|b]]
!! html/php
<p><a href="#a">b</a>
</p>
!! html/parsoid
<p><a rel="mw:WikiLink" href="./Category:Foobar#a" class="mw-selflink-fragment" data-parsoid='{"stx":"piped","a":{"href":"./Category:Foobar#a"},"sa":{"href":"#a"}}'>b</a></p>
!! end
!! test
Serialization of purely hash wikilink
!! options
@ -5330,46 +5356,6 @@ b}}
</span><p about="#mwt3">b</p>
!! end
!! test
Parsoid: Merge double tds (T52603)
!! wikitext
{|
|{{1x|{{!}} foo}}
|}
!! html/php
<table>
<tbody><tr>
<td>foo
</td></tr></tbody></table>
!! html/parsoid
<table><tbody>
<tr><td about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":["|",{"template":{"target":{"wt":"1x","href":"./Template:1x"},"params":{"1":{"wt":"{{!}} foo"}},"i":0}}]}'> foo</td></tr>
</tbody></table>
!! end
!! test
Parsoid: Merge double tds in nested transclusion content (T52603)
!! wikitext
{{1x|<div>}}
{|
|{{1x|{{!}} foo}}
|}
{{1x|</div>}}
!! html/php
<div>
<table>
<tbody><tr>
<td>foo
</td></tr></tbody></table>
</div>
!! html/parsoid
<div about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"1x","href":"./Template:1x"},"params":{"1":{"wt":"<div>"}},"i":0}},"\n{|\n|",{"template":{"target":{"wt":"1x","href":"./Template:1x"},"params":{"1":{"wt":"{{!}} foo"}},"i":1}},"\n|}\n",{"template":{"target":{"wt":"1x","href":"./Template:1x"},"params":{"1":{"wt":"</div>"}},"i":2}}]}'>
<table><tbody>
<tr><td data-mw='{"parts":["|"]}'> foo</td></tr>
</tbody></table>
</div>
!! end
!! article
Template:Temp?
!! text