Usuário:Chairhandlers/script-cordalinha.js

Origem: Wikipédia, a enciclopédia livre.

Nota: Depois de publicar, poderá ter de contornar a cache do seu navegador para ver as alterações.

  • Firefox / Safari: Pressione Shift enquanto clica Recarregar, ou pressione Ctrl-F5 ou Ctrl-R (⌘-R no Mac)
  • Google Chrome: Pressione Ctrl-Shift-R (⌘-Shift-R no Mac)
  • Internet Explorer / Edge: Pressione Ctrl enquanto clica Recarregar, ou pressione Ctrl-F5
  • Opera: Pressione Ctrl-F5.
$(function($) {
	setTimeout(function() {
		$.when( mw.loader.using( ['mediawiki.util']), $.ready ).then(function() {
			var portletlink = mw.util.addPortletLink('p-tv', '#', 'Cores de linha');
			$(portletlink).click( function(e) {
				e.preventDefault();
				// Padronizar parâmetros e determinar se precisamos acessar a página de edição
				var loc = window.location.href; var wpTextbox1 = document.getElementById('wpTextbox1'); var i;
				if (loc.indexOf('action=edit') < 0 && loc.indexOf('action=submit') < 0) {
					alert("Vá para a página de edição para usar este script.");
				} else {
					// Reunir as cores do texto da área de texto
					var colours = [];
					var s = wpTextbox1.value.split("\n");
					for (i = 0; i < s.length; i++) {
						if (s[i].indexOf('CorLinha') > 0) {
							// Regex CorLinha
							var reg = /\|\s*CorLinha[\s\=\#]*([^\s]*)/g;
							var t = reg.exec(s[i]);
							if (!t) continue;
							// Adicionar a cor às cores salvas se ainda não estiver adicionada
							var fontColor = t[1];
							if (colours.indexOf(fontColor) >= 0) continue;
							colours[colours.length] = fontColor;
						}
					}
					
					for (i = 0; i < colours.length; i++) {
						// Reunir a cor e ajustar individualmente para a conformidade AAA
						var thiscolour = colours[i];
						var newcolour = colourCompliance(thiscolour,false);
						
						// Atualizar se a cor original foi alterada para ser compatível
						if (thiscolour != newcolour) {
							// Códigos de 3 dígitos (por exemplo, #FF3344 = #F34)
							var _3code;
							if (thiscolour[0] == thiscolour[1] && thiscolour[2] == thiscolour[3] && thiscolour[4] == thiscolour[5])
								_3code = thiscolour[0]+thiscolour[2]+thiscolour[4]+'|';
							else _3code = '';
							
							// Substituir cores
							var reg2 = new RegExp('\\b'+_3code+thiscolour+'\\b','gi');
							wpTextbox1.value = wpTextbox1.value.replace(reg2,newcolour);
						}
					}
					
					// Feito
					document.getElementById('wpSummary').value += "Contrastes de cores ajustados com [[Usuário:Chairhandlers/script-cordalinha.js|script]] de acordo com [[Wikipédia:Acessibilidade#Estilos e opções de marcações|WP:ACESSÍVEL]].";
				}
			});
		});
	},300);
});