Nota: Después de publicar, quizás necesite actualizar la caché de su navegador para ver los cambios.

  • Firefox/Safari: Mantenga presionada la tecla Shift mientras pulsa el botón Actualizar, o presiona Ctrl+F5 o Ctrl+R (⌘+R en Mac)
  • Google Chrome: presione Ctrl+Shift+R (⌘+Shift+R en Mac)
  • Edge: mantenga presionada Ctrl mientras pulsa Actualizar, o presione Ctrl+F5
//=========================================================================== // Basado en http://de.wikipedia.org/wiki/MediaWiki:Gadget-bkl-check.js // obra del usuario APPER // traído y adaptado a es.wikipedia por Poco a poco // Actualizado por Superzerocool, basado en https://de.wikipedia.org/w/index.php?oldid=145531452 // importado y adaptado a Wikiviajes por MercurioMT y actualizado por Zerabat //===========================================================================   window.bklCheck = { 	cat : { 		'Categoría:Wikiviajes:Desambiguación' : { 			className   : 'bkl-link bkl-link-inner', //bkl-link-inner kept for b/c reasons 			titleAppend : ' (desambiguación)', 			htmlAppend  : '<sup class="bkl-link">Desam</sup>'}, 		'Categoría:Wikiviajes:Sin relevancia aparente' : { 			className   : 'bkl-link bkl-link-inner', 			titleAppend : ' (Sin relevancia aparente)', 			htmlAppend  : '<sup class="bkl-link">SRA</sup>'} 	},  	queryParamsView      : { 		action: 'query', 		prop: 'categories', 		pageids: mw.config.get('wgArticleId'), 		generator: 'links', 		redirects: '', 		gpllimit: 'max', 		gplnamespace: 0, 		cllimit: 'max', 		indexpageids: '', 		requestid: mw.config.get('wgCurRevisionId') // Break client caching, when page has been edited 	}, 	queryParamsPreview   : { 		action: 'query', 		prop: 'categories', 		cllimit: 'max', 		redirects: '', 		indexpageids: '' 	}, 	titles            : {}, 	count             : 0, 	previewQueryCount : 0,  	execute : function () { 		if ( window.bklCheckOnlyCheckMainNS && mw.config.get('wgNamespaceNumber') !== 0 ) return;                mw.util.addCSS( '.bkl-link {background-color:#FFFF00;}' ); 		var api = new mw.Api(); 		// Use &clcategories to reduce needed queries 		var cats = []; 		for ( var name in bklCheck.cat ) if ( bklCheck.cat[name].className ) 			cats.push( name ); 		bklCheck.queryParamsView.clcategories = cats.join( '|' ); 		bklCheck.queryParamsPreview.clcategories = cats.join( '|' ); 		var action = mw.config.get('wgAction'); 		if ( action === 'submit' )	bklCheck.doPreviewQueries( api ); 		else if ( action === 'view' || action === 'historysubmit' || action === 'purge' ) 			bklCheck.doQuery( api, bklCheck.viewResultArrived, bklCheck.queryParamsView ); 		else { // "Show preview on first edit" enabled? 			var prev = document.getElementById( 'wikiPreview' ); 			if ( prev && prev.firstChild ) bklCheck.doQuery( api, bklCheck.viewResultArrived, bklCheck.queryParamsView ); 		} 	},  	storeTitles : function ( res ) { 		if ( !res || !res.query || !res.query.pageids ) return; 		var q = res.query; 		var redirects = {}; 		for ( var i = 0; q.redirects && i < q.redirects.length; i++ ) { 			var r = q.redirects[i]; 			if ( !redirects[r.to] ) redirects[r.to] = []; 			redirects[r.to].push( r.from ); 		} 		for ( i = 0; i < q.pageids.length; i++ ) { 			var page = q.pages[q.pageids[i]]; 			if ( page.missing === '' || page.ns !== 0 || !page.categories ) continue; 			for ( var j = 0; j < page.categories.length; j++ ) { 				var cat = bklCheck.cat[page.categories[j].title]; 				if ( !cat ) continue; 				bklCheck.count++; 				bklCheck.titles[page.title] = cat; 				if ( !redirects[page.title] ) break; 				for ( var k = 0; k < redirects[page.title].length; k++ ) 					bklCheck.titles[redirects[page.title][k]] = cat; 				break; 			} 		} 	},  	markLinks : function () { 		if ( !bklCheck.count ) return; 		var links = bklCheck.getLinks( 'wikiPreview' ) || bklCheck.getLinks( 'bodyContent' ) 				|| bklCheck.getLinks( 'mw_contentholder' ) || bklCheck.getLinks( 'article' ); 		if ( !links ) return; 		for ( var i = 0; i < links.length; i++ ) { 			if ( links[i].className === 'image' || links[i].className.indexOf('external') !== -1 ) continue; // Don't mess with images or external links! 			var title = links[i].title || ( links[i].childNodes[0] && links[i].childNodes[0].nodeValue ); 			if ( title ) title = title.charAt(0).toUpperCase() + title.slice(1); // make first character uppercase 			var cat = bklCheck.titles[title]; 			if ( !cat ) continue; 			links[i].innerHTML = '<span class="' + cat.className + '" title="' + 				mw.html.escape(title + cat.titleAppend) + '">' + links[i].innerHTML + cat.htmlAppend + '</span>'; 		} 	},  	viewResultArrived : function ( api, res ) { 		bklCheck.storeTitles( res ); 		if ( res && res['continue'] ) { 			bklCheck.doQuery( api, bklCheck.viewResultArrived, bklCheck.queryParamsView, res['continue'] ); 		} else bklCheck.markLinks(); 	},  	PreviewQuery : function ( api, titles ) { 		bklCheck.previewQueryCount++; 		//We have to keep the titles in memory in case we get a query-continue 		bklCheck.queryParamsPreview.titles = titles.join( '|' ); 		this.doQuery( api, bklCheck.resultArrived, bklCheck.queryParamsPreview ); 	},  	doPreviewQueries : function ( api ) { 		var links = bklCheck.getLinks( 'wikiPreview' ); 		if ( !links ) return; 		var titles=[]; var m; 		var unique = {}; 		var siteRegex = new RegExp( mw.RegExp.escape( mw.config.get( 'wgServer' ) ) + mw.RegExp.escape( mw.config.get( 'wgArticlePath' ).replace( /\$1/, '' ) ) + '([^#]*)' ); 		//We only care for main ns pages, so we can filter out the most common cases to save some requests 		var namespaceRegex = /^((Usuario|Wikiviajes|Archivo|MediaWiki|Plantilla|Ayuda|Categoría|Portal)(_Discusión)?|Special|Discusión):/i; 		for ( var i = 0; i < links.length; i++ ) { 			if ( !( m = links[i].href.match( siteRegex ) ) 				|| m[1].match( namespaceRegex ) || unique[m[1]] ) continue; 			unique[m[1]] = true; // Avoid requesting same title multiple times 			titles.push( decodeURIComponent( m[1].replace( /_/g, '%20' ) ) ); // Avoid normalization of titles 			if ( titles.length < 50 ) continue; 			bklCheck.PreviewQuery( api, titles ); 			titles=[]; 		} 		if ( titles.length ) bklCheck.PreviewQuery( api, titles ); 	},  	getLinks : function ( id ) { 		var el = document.getElementById( id ); 		return el && el.getElementsByTagName( 'a' ); 	} };  bklCheck.doQuery = function ( api, callback, queryParams, continueParams ) { 	api.get( 		$.extend( {}, queryParams, continueParams || { 'continue': '' } ) 	).then( function( data ) { 		callback( api, data ); 	} ).fail( function( code, data ) { 		var extraText; 		if ( code === 'http' && data ) { 			extraText = ( data.xhr && data.xhr.status ? '[' + data.xhr.status + ']' : '' ) 			+ ( data.textStatus ? '' + data.textStatus + ( data.exception ? ': ' : '' ) : '' ) 			+ ( data.exception ? '' + data.exception : '' ); 		} else { 			extraText = code + ( data && data.error && data.error.info ? ': ' + data.error.info : '' ); 		} 		mw.notify( 			'Detector de desambiguación: Error en la recuperación de datos de la API' + 			' (' + extraText + ')', 			{ tag: 'bklCheck-error' } 		); 	} ); };  bklCheck.resultArrived = function ( api, res ) { 	bklCheck.storeTitles( res ); 	if ( res && res['continue'] ) { 		this.doQuery( api, bklCheck.resultArrived, bklCheck.queryParamsPreview, res['continue'] ); 	} else bklCheck.previewQueryCount--; 	if ( !bklCheck.previewQueryCount ) bklCheck.markLinks(); };  if ( mw.config.get( 'wgNamespaceNumber' ) >= 0 ) $( bklCheck.execute );