Page MenuHomePhabricator

VisualEditor: URLs followed immediately by {{templates}} are improperly displayed and cannot be edited
Closed, ResolvedPublic

Description

Something like http://example.com{{deadlink}} cannot be properly edited in VisualEditor. It should be processed as two pieces: one external link that is followed immediately by one template. Instead, it is presented as the text "http://example.com[]", linked to http://example.com[].

Event Timeline

bzimport raised the priority of this task from to Medium.Nov 22 2014, 3:13 AM
bzimport set Reference to bz65362.

Caused by mw:ExpandedAttrs from Parsoid.

Input:

http://example.com{{deadlink}}

Output:

<a data-mw="…" typeof="mw:ExpandedAttrs" about="#mwt2" rel="mw:ExtLink" href="http://example.com" data-parsoid="…">http://example.com</a>

Supposedly the reason for this is that http://example.com{{echo|/index.php}} would produce a link to http://example.com/index.php , rather than a link followed by text. But it depends on what the template outputs; if the output starts with a space or a newline this won't happen. Maybe Parsoid is being a bit too trigger-happy with mw:ExpandedAttrs in the second case?

nshahquinn-wmf renamed this task from VisualEditor: URLs followed immediately by {{templates}} are un-editable alienated content, because they're mw:ExpandedAttrs to VisualEditor: URLs followed immediately by {{templates}} are improperly displayed and cannot be edited.Jul 24 2015, 8:55 PM
nshahquinn-wmf updated the task description. (Show Details)
nshahquinn-wmf set Security to None.

URLs followed by templates are still broken. However, they now seem to be broken differently: they display as regular links with broken syntax, rather than as alienated nodes.

Change #1143955 had a related patch set uploaded (by Bartosz Dziewoński; author: Bartosz Dziewoński):

[mediawiki/extensions/VisualEditor@master] Alienate external links with template-generated attributes

https://gerrit.wikimedia.org/r/1143955

URLs followed by templates are still broken. However, they now seem to be broken differently: they display as regular links with broken syntax, rather than as alienated nodes.

Until/Unless the Parsoid output is changed, alienated nodes seem to be more correct in this case, so I'm going to restore that behavior. (Yes, I know this comment was 10 years ago.)

Wikitext:

aa http://example.com{{deadlink}} aa

aa http://example.com{{1x|/index.php}} aa

Old parser vs Parsoid rendering:

image.png (1,255×110 px, 10 KB)

In visual editor, before:

image.png (450×216 px, 11 KB)

In visual editor, after:

image.png (528×115 px, 8 KB)

Change #1143955 merged by jenkins-bot:

[mediawiki/extensions/VisualEditor@master] Alienate external links with template-generated attributes

https://gerrit.wikimedia.org/r/1143955

matmarex claimed this task.

After this change, the links are marked as uneditable, and do not cause corruption when touched. For making them appear right and be editable, see the subtask.