Page MenuHomePhabricator

Improve ParserOutput::setLanguageLinks() / ::addLanguageLink()
Open, Needs TriagePublic

Description

From core perspective, ParserOutput::setLanguageLinks() should accept an array of LinkTargets. What happens now is that Parser has a LinkTarget, formats it to prefixed text, then Skin/Api (basically all usages of it) parses it again into Title, or even worse implements its own custom parsing, like LinksUpdate.

Currently accepts an array of the form:

		$languageLinks[$languageCode] = $languageCode . ':' . $siteLink->getPageName();

(see https://gerrit.wikimedia.org/g/mediawiki/extensions/ArticlePlaceholder/+/18e4f52cc53b0ad6d9954c58c36df9f97f3c97ad/includes/AboutTopicRenderer.php#293)

Should probably have an API like:

public function addLanguageLink(string $langCode, LinkTarget page);

Note that core does not seem to use ::setLanguageLinks() at all any more. Perhaps this entire method should be deprecated and removed instead?

The ::addLanguageLink() method, on the other hand, is significantly used. It should also take a LinkTarget argument.

Note also that includes/deferred/LinksUpdate/LangLinksTable.php in mediawiki-core also has its own ideas about the ParserOuput format for language links.

Event Timeline

cscott renamed this task from Improve ParserOutput::setLanguageLinks() to Improve ParserOutput::setLanguageLinks() / ::addLanguageLink().Nov 18 2021, 9:10 PM
cscott updated the task description. (Show Details)
cscott updated the task description. (Show Details)

Change 888058 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/services/parsoid@master] Add comments about maintaining language link metadata

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

Change 888058 merged by jenkins-bot:

[mediawiki/services/parsoid@master] Add comments about maintaining language link metadata

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

Change 901245 had a related patch set uploaded (by Arlolra; author: Arlolra):

[mediawiki/vendor@master] Bump parsoid to 0.18.0-a2

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

Change 901245 merged by jenkins-bot:

[mediawiki/vendor@master] Bump parsoid to 0.18.0-a2

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

Change 971275 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/core@master] Deprecate ParserOutput::setLanguageLinks()

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

Change 971275 merged by jenkins-bot:

[mediawiki/core@master] Deprecate ParserOutput::setLanguageLinks()

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