Page MenuHomePhabricator

Extlink followed by a template parsed incorrectly (visualdiff on ukwikivoyage page)
Closed, DuplicatePublic

Description

See below. when a template is involved, instead of the <sup>[..]</sup> being rendered as HTML, the whole fragment is treated as part of the extlink and non-html pieces are stripped to make the URL valid. Something seems broken in ExtLinkHandler. This showed up on this ukwikivoyage page.

$  echo 'http://deshovie-aviabileti.pp.ua/<sup>&#91;foo&#93;</sup>' | php bin/parse.php --domain uk.wikivoyage.org
<p data-parsoid='{"dsr":[0,57,0,0]}'><a rel="mw:ExtLink nofollow" href="http://deshovie-aviabileti.pp.ua/" class="external free" data-parsoid='{"stx":"url","dsr":[0,33,0,0]}'>http://deshovie-aviabileti.pp.ua/</a><sup data-parsoid='{"stx":"html","dsr":[33,57,5,6]}'><span typeof="mw:Entity" data-parsoid='{"src":"&amp;#91;","srcContent":"[","dsr":[38,43,null,null]}'>[</span>foo<span typeof="mw:Entity" data-parsoid='{"src":"&amp;#93;","srcContent":"]","dsr":[46,51,null,null]}'>]</span></sup></p>

$ echo 'http://deshovie-aviabileti.pp.ua/{{Dead link|date=жовтня 2023 |bot=InternetArchiveBot |fix-attempted=yes }}' | php bin/parse.php --domain uk.wikivoyage.org
<p data-parsoid='{"dsr":[0,113,0,0]}'><a typeof="mw:ExpandedAttrs" about="#mwt2" rel="mw:ExtLink nofollow" href="http://deshovie-aviabileti.pp.ua/%5Bнедійсне+посилання%5D" class="external free" data-parsoid='{"stx":"url","a":{"href":"http://deshovie-aviabileti.pp.ua/%5Bнедійсне+посилання%5D"},"sa":{"href":"http://deshovie-aviabileti.pp.ua/{{Dead link|date=жовтня 2023 |bot=InternetArchiveBot |fix-attempted=yes }}"},"dsr":[0,113,0,0]}' data-mw='{"attribs":[[{"txt":"href"},{"html":"http://deshovie-aviabileti.pp.ua/&lt;sup class=\"error-deadlink noprint\" about=\"#mwt1\" typeof=\"mw:Transclusion\" data-parsoid=&apos;{\"stx\":\"html\",\"dsr\":[33,113,null,null],\"pi\":[[{\"k\":\"date\",\"named\":true,\"spc\":[\"\",\"\",\"\",\" \"]},{\"k\":\"bot\",\"named\":true,\"spc\":[\"\",\"\",\"\",\" \"]},{\"k\":\"fix-attempted\",\"named\":true,\"spc\":[\"\",\"\",\"\",\" \"]}]]}&apos; data-mw=&apos;{\"parts\":[{\"template\":{\"target\":{\"wt\":\"Dead link\",\"href\":\"./Шаблон:Dead_link\"},\"params\":{\"date\":{\"wt\":\"жовтня 2023\"},\"bot\":{\"wt\":\"InternetArchiveBot\"},\"fix-attempted\":{\"wt\":\"yes\"}},\"i\":0}}]}&apos;>&lt;span typeof=\"mw:Entity\" data-parsoid=&apos;{\"src\":\"&amp;amp;#91;\",\"srcContent\":\"[\"}&apos;>[&lt;/span>недійсне посилання&lt;span typeof=\"mw:Entity\" data-parsoid=&apos;{\"src\":\"&amp;amp;#93;\",\"srcContent\":\"]\"}&apos;>]&lt;/span>&lt;/sup>&lt;link rel=\"mw:PageProp/Category\" href=\"./Категорія:Статті_з_недійсними_посиланнями\" about=\"#mwt1\" data-parsoid=&apos;{\"stx\":\"simple\",\"a\":{\"href\":\"./Категорія:Статті_з_недійсними_посиланнями\"},\"sa\":{\"href\":\"Категорія:Статті з недійсними посиланнями\"}}&apos;/>"}]]}'>http://deshovie-aviabileti.pp.ua/%5Bнедійсне+посилання%5D</a></p>