Page MenuHomePhabricator

Parsoid misunderstands {{!}} as | and breaks table cell
Open, MediumPublic

Description

Steps to reproduce

  1. Insert this line in a table:
|-
|Anzeige auf Gebiet eingrenzen, per N{{!}}W{{!}}S{{!}}O-Koordinaten||Limit results to a specific area per N{{!}}W{{!}}S{{!}}E coordinates||Omezit výsledky na určitou oblast, podle zadaných S-Z-J-V souřadnic

Expected behavior
The {{!}} should be interpreted as a character |, not as wikitext marker.

Current behavior
Everything before the first "{{!}}" (including {{!}}) is cut off ("Anzeige auf Gebiet eingrenzen, per N" and "Limit results to a specific area per N"). The resulting table looks like:

W{{!}}S{{!}}O-KoordinatenW{{!}}S{{!}}E coordinatesOmezit výsledky na určitou oblast, podle zadaných S-Z-J-V souřadnic

(second and others {{!}} are handled correctly, only Phabricator can't show them)

Event Timeline

ssastry triaged this task as Medium priority.Mar 18 2020, 11:42 PM
ssastry subscribed.

Parsoid handles the {{!}} parser function in the tokenizer and interprets it as a pipe character early before table cells are built whereas presumably this parser function is expanded later in the pipeline in the core parser. This one is a bit tricky and will need a bit of thought. One workaround for now would be to use <nowiki>...</nowiki> around the N|W|S| snippets everywhere on that line.

Dvorapa raised the priority of this task from Medium to Needs Triage.Mar 18 2020, 11:44 PM
Dvorapa triaged this task as Medium priority.
Dvorapa updated the task description. (Show Details)

Actually, I am not sure this is right. This time around (compared to Mar 2020 when I seem to have hastily reponded), I actually tested this. See https://www.mediawiki.org/w/index.php?title=User:SSastry_(WMF)/Sandbox&oldid=4525962 ...

@Dvorapa can you confirm? Can you provide a test case?