User:Majr/docTabs.js

$( function { 'use strict';

var page = mw.config.get( 'wgTitle' ), title = page.replace( '/doc', '' );

$( '#p-namespaces li:last' ).after( ' Doc ' +									' Doc talk ' );

if ( page.indexOf( '/doc' ) > -1 ) { $( '#ca-nstab-template' ).removeClass( 'selected' ).find( 'a' ).prop( 'href', function {		return this.href.replace( '/doc', '' );	} ); $( '#ca-talk' ).removeClass( 'selected' ).find( 'a' ).prop( 'href', function {		return this.href.replace( '/doc', '' );	} ); if ( mw.config.get( 'wgNamespaceNumber' ) === 10 ) { $( '#ca-doc' ).addClass( 'selected' ); } else { $( '#ca-doc-talk' ).addClass( 'selected' ); } }

$.get( '/api.php', {	format: 'json',	action: 'query',	prop: 'info',	titles: 'Template:' + title + '|Template talk:' + title + '|Template:' + title + '/doc|Template talk:' + title + '/doc' } ).done( function( resp ) {	var nameToId = {};	nameToId['Template:' + title] = '#ca-nstab-template';	nameToId['Template talk:' + title] = '#ca-talk';	nameToId['Template:' + title + '/doc'] = '#ca-doc';	nameToId['Template talk:' + title + '/doc'] = '#ca-doc-talk';

$.each( resp.query.pages, function {		var id = nameToId[this.title];		if ( this.hasOwnProperty( 'missing' ) ) {			if ( !$( id ).hasClass( 'new' ) ) {				$( id ).addClass( 'new' ).find( 'a' ).prop( 'href', function { return this.href.replace( /gamepedia\.com\/(.+)/, 'gamepedia.com/index.php?title=$1&action=edit&redlink=1' ); } );			}		} else {			$( id ).removeClass( 'new' ).find( 'a' ).prop( 'href', function { return this.href.replace( /index\.php\?title=([^&]+)&action=edit&redlink=1/, '$1' ); } );		}	} ); } ).fail( function( error ) { console.error( error ); } );

} );