MediaWiki:Gadget-WikidataLabel.js

Från Wikipedia

OBS: Efter du har publicerat sidan kan du behöva tömma din webbläsares cache för att se ändringarna.

  • Firefox / Safari: Håll ned Skift och klicka på Uppdatera sidan eller tryck Ctrl-F5 eller Ctrl-R (⌘-R på Mac)
  • Google Chrome: Tryck Ctrl-Skift-R (⌘-Skift-R på Mac)
  • Internet Explorer / Edge: Håll ned Ctrl och klicka på Uppdatera eller tryck Ctrl-F5
  • Opera: Tryck Ctrl-F5.
$( function() {
	'use strict';
	var iwapi = new mw.ForeignApi( 'https://www.wikidata.org/w/api.php' );
	var v = mw.config.get();
	var heading = $( '#firstHeading' );
	if ( $( '#section_0' ).length ) {
		heading = $( '#section_0' );
	}
	var pageName = heading[ 0 ].childNodes[ 0 ].textContent;
	if ( v.wgWikibaseItemId ) {
		iwapi.get( {
			action: 'wbgetentities',
			ids: v.wgWikibaseItemId,
			props: 'labels',
			languages: v.wgContentLanguage,
			formatversion: 2
		} ).done( function( data ) {
			var entitiesobj = data.entities;
			var entityobj;
			var labelsobj;
			var labelobj;
			var label;
			var newPageTitle;
			if ( entitiesobj ) {
				entityobj = entitiesobj[ v.wgWikibaseItemId ];
				if ( entityobj ) {
					labelsobj = entityobj.labels;
					if ( labelsobj ) {
						labelobj = labelsobj[ v.wgContentLanguage ];
						if ( labelobj ) {
							label = labelobj.value;
							if ( label ) {
								newPageTitle = pageName.charAt( 0 ).toLowerCase() + pageName.substring( 1 );
								if ( newPageTitle.indexOf( label ) === 0 ) {
									document.title = document.title.replace( pageName, newPageTitle );
									heading[ 0 ].childNodes[ 0 ].textContent = newPageTitle;
								} else if ( pageName.indexOf( label ) === 0 ) {
									mw.hook( 'wikidatalabeleligibleforlowercase' ).fire();
								}
							}
						}
					}
				}
			}
		} );
	}
} );