Page MenuHomePhabricator

Resolve {{reflist}} incompatibility vs. synthetic list-defined refs
Closed, DuplicatePublic

Description

We've made some large changes which make VE subref usage dependent on "redundant, synthetic, list-defined" main refs in the document model. These come from Parsoid or are added when using the "add subref" dialog.

These synthetic refs are currently not passed through when the reference list is generated with the {{reflist}} template. This task is to demonstrate a solution (proof-of-concept patch) for the incompatibility.

Possible approaches:

  • Look into whether InternalItemNode can carry the information. This is primarily about keeping a "name" entry in the InternalNodeGroup which continues to point to the footnote body even if the footnote is deleted.
  • When {{reflist}} is present, could Parsoid attach a synthetic LDR to the template-generated reflist?
  • When {{reflist}} is present, could Parsoid create a second reflist which is invisible but carries data?

Other open questions:

  • How do custom groups behave?

Example problematic document:

<ref name="main" details="p. 123">{{Book here}}</ref>

{{reflist}}
  • Save wikitext to an article.
  • Open in VE. The main ref will already be unknown.

Event Timeline

awight renamed this task from Reverify {{reflist}} compatibility regarding synthetic list-defined refs to Resolve {{reflist}} incompatibility vs. synthetic list-defined refs.Aug 26 2025, 8:57 AM
awight updated the task description. (Show Details)

Note that we still need to check {{reflist}} compatibility with the updated solution, this task will probably still apply after a minor rewrite.