Last modified: 2014-03-17 14:39:11 UTC
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 41345. 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
What is noexternallanglink?
(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.