Page MenuHomePhabricator

[Task] Remove external site links from langlinks table on client wikis
Open, HighPublic

Description

Currently, site links from the wikibase repository get added to the ParserOutput object when pages on the client wiki are parsed. This makes it impossible to distinguish between locally defined and external links, see T43345: [Task] add info if langlink is stored at repository or local. It also requires re-parsing of the page when external links changed.

This should be improved using the following design:

  • Introduce a wrapper class representing a page's language links, per default loading links from the langlinks table. Skins should use that wrapper class to render the list of language links. The langlink table should never be used directly.
  • WikibaseClient should hook into that wrapper class, merging in links from the repo's sitelinks table
  • To do this, any noexternallanglink usage needs to be stored in the page_props table
  • the LangLinks wrapper class needs to expose a generic flags field, that would also be reported by the API. WikibaseClient would use this field to mark links that come from the repo.
  • The effective list of links for a page can be cached in memcached.

When a language link changes on the repository, the client should handle that change by

  1. Invalidating the cached list of langlinks.
  2. Purge cached version of the page from squids.

The next time the page is requested, the effective list of links will be re-calculated.

See also: T47568: Implement phase 2 change propagation

Details

Reference
bz45534

Event Timeline

bzimport raised the priority of this task from to High.Nov 22 2014, 1:33 AM
bzimport set Reference to bz45534.
bzimport added a subscriber: Unknown Object (MLST).

(In reply to comment #1)

What is noexternallanglink?

{{noexternallanglink}} is a magic word template thing you can use to prevent langlinks from Wikidata from showing up in the sidebar. Links embedded in the page text would be unaffected.

Lydia_Pintscher removed a subscriber: Unknown Object (MLST).
Lydia_Pintscher removed a subscriber: Unknown Object (MLST).
thiemowmde renamed this task from remove external site links from langlinks table on client wikis to [Task] Remove external site links from langlinks table on client wikis.Aug 13 2015, 3:05 PM
thiemowmde updated the task description. (Show Details)
thiemowmde set Security to None.
thiemowmde removed subscribers: Wikidata-bugs, Denny.

How relevant is this these days?

Also T44783: Do not rerender whole client page when only sitelinks are updated is a bit of a game changer here, if we actually decide that we want to do it.

Quite, would help tracking down the remaining non-wikidata entries and addressing/fixing those.