Wikipedysta:Malarz pl/wp sk.js

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

Uwaga: aby zobaczyć zmiany po zapisaniu, może zajść potrzeba wyczyszczenia pamięci podręcznej przeglądarki.

  • Firefox / Safari: Przytrzymaj Shift podczas klikania Odśwież bieżącą stronę, lub naciśnij klawisze Ctrl+F5 lub Ctrl+R (⌘-R na komputerze Mac)
  • Google Chrome: Naciśnij Ctrl-Shift-R (⌘-Shift-R na komputerze Mac)
  • Internet Explorer: Przytrzymaj Ctrl, jednocześnie klikając Odśwież, lub naciśnij klawisze Ctrl+F5
  • Opera: Przejdź do Menu → Ustawienia (Opera → Preferencje w Mac), a następnie Prywatność i bezpieczeństwo → Wyczyść dane przeglądania → Opróżnij pamięć podręczną.
( function() {
	function attachToSk() {
		//console.log( "Attaching to WP:SK" );
		// własne [[WP:SK]]
		wp_sk.pre_malarz_cleaner = wp_sk.cleaner;
		wp_sk.extension += "+[[WP:SK/mSK|mSK]]";

		wp_sk.cleaner = function( str ) {
			//czyścimy ISBN'y dla [[Specjalna:Książki]]
			str = str.replace( /ISBN-1(0|3):* */g, 'ISBN ' );

			//dekodowanie niektórych sekwencji specjalnych HTML
			str = str.replace( /ä/g, 'ä' );
			str = str.replace( /ö/g, 'ö' );
			str = str.replace( /ü/g, 'ü' );
			str = str.replace( /Ä/g, 'Ä' );
			str = str.replace( /Ö/g, 'Ö' );
			str = str.replace( /Ü/g, 'Ü' );
			str = str.replace( /ß/g, 'ß' );

			str = str.replace( /Å/g, 'Å' );
			str = str.replace( /å/g, 'å' );

			str = str.replace( /æ/g, 'æ' );
			str = str.replace( /ç/g, 'ç' );
			str = str.replace( /ñ/g, 'ñ' );
			str = str.replace( /â/g, 'â' );
			str = str.replace( /á/g, 'á' );
			str = str.replace( /à/g, 'à' );
			str = str.replace( /Æ/g, 'Æ' );
			str = str.replace( /Ç/g, 'Ç' );
			str = str.replace( /Ñ/g, 'Ñ' );
			str = str.replace( /Â/g, 'Â' );
			str = str.replace( /Á/g, 'Á' );
			str = str.replace( /À/g, 'À' );

			str = str.replace( /…/g, '…' );
			str = str.replace( /"/g, '"' );
			str = str.replace( /−/g, '−' );
			str = str.replace( /‾/g, '‾' );
			str = str.replace( /¢/g, '¢' );
			str = str.replace( /£/g, '£' );
			str = str.replace( /€/g, '€' );
			str = str.replace( /§/g, '§' );
			str = str.replace( /†/g, '†' );

			str = str.replace( /‘/g, '‘' );
			str = str.replace( /’/g, '’' );
			str = str.replace( /·/g, '·' );
			str = str.replace( /•/g, '•' );
			str = str.replace( /×/g, '×' );
			str = str.replace( /©/g, '©' );
			str = str.replace( /®/g, '®' );
			str = str.replace( /™/g, '™' );
			str = str.replace( /¿/g, '¿' );
			str = str.replace( /¡/g, '¡' );

			str = str.replace( /↓/g, '↓' );
			str = str.replace( /↑/g, '↑' );
			str = str.replace( /↵/g, '↵' );
			str = str.replace( /→/g, '→' );
			str = str.replace( /←/g, '←' );
			str = str.replace( /↔/g, '↔' );
			str = str.replace( /⇓/g, '⇓' );
			str = str.replace( /⇑/g, '⇑' );
			str = str.replace( /⇒/g, '⇒' );
			str = str.replace( /⇐/g, '⇐' );
			str = str.replace( /⇔/g, '⇔' );

			str = str.replace( /—/g, '—' );
			str = str.replace( /–/g, '–' );

			str = str.replace( /∈/g, '∈' );
			str = str.replace( /∉/g, '∉' );
			str = str.replace( /∅/g, '∅' );
			str = str.replace( /⊂/g, '⊂' );
			str = str.replace( /⊆/g, '⊆' );
			str = str.replace( /⊄/g, '⊄' );

			str = str.replace( /Λ/g, 'Λ' );
			str = str.replace( /¬/g, '¬' );
			str = str.replace( /∼/g, '∼' );

			str = str.replace( /α/g, 'α' );
			str = str.replace( /β/g, 'β' );
			str = str.replace( /γ/g, 'γ' );
			str = str.replace( /δ/g, 'δ' );
			str = str.replace( /ε/g, 'ε' );
			str = str.replace( /ζ/g, 'ζ' );
			str = str.replace( /η/g, 'η' );
			str = str.replace( /θ/g, 'θ' );
			str = str.replace( /ι/g, 'ι' );
			str = str.replace( /κ/g, 'κ' );
			str = str.replace( /λ/g, 'λ' );
			str = str.replace( /μ/g, 'μ' );
			str = str.replace( /ν/g, 'ν' );
			str = str.replace( /ξ/g, 'ξ' );
			str = str.replace( /ο/g, 'ο' );
			str = str.replace( /π/g, 'π' );
			str = str.replace( /ρ/g, 'ρ' );
			str = str.replace( /σ/g, 'σ' );
			str = str.replace( /τ/g, 'τ' );
			str = str.replace( /υ/g, 'υ' );
			str = str.replace( /φ/g, 'φ' );
			str = str.replace( /χ/g, 'χ' );
			str = str.replace( /ψ/g, 'ψ' );
			str = str.replace( /ω/g, 'ω' );

			str = str.replace( /Α/g, 'Α' );
			str = str.replace( /Β/g, 'Β' );
			str = str.replace( /Γ/g, 'Γ' );
			str = str.replace( /Δ/g, 'Δ' );
			str = str.replace( /Ε/g, 'Ε' );
			str = str.replace( /Ζ/g, 'Ζ' );
			str = str.replace( /Η/g, 'Η' );
			str = str.replace( /Θ/g, 'Θ' );
			str = str.replace( /Ι/g, 'Ι' );
			str = str.replace( /Κ/g, 'Κ' );
			str = str.replace( /Λ/g, 'Λ' );
			str = str.replace( /Μ/g, 'Μ' );
			str = str.replace( /Ν/g, 'Ν' );
			str = str.replace( /Ξ/g, 'Ξ' );
			str = str.replace( /Ο/g, 'Ο' );
			str = str.replace( /Π/g, 'Π' );
			str = str.replace( /Ρ/g, 'Ρ' );
			str = str.replace( /Σ/g, 'Σ' );
			str = str.replace( /Τ/g, 'Τ' );
			str = str.replace( /Υ/g, 'Υ' );
			str = str.replace( /Φ/g, 'Φ' );
			str = str.replace( /Χ/g, 'Χ' );
			str = str.replace( /Ψ/g, 'Ψ' );
			str = str.replace( /Ω/g, 'Ω' );

			// + wolne linie przed nagłówkami
			str = str.replace( /\n=/g, '\n\n=' );

			// dekodowanie nazw szablonów
			str = str.replace( /\{\{([^\|\}]*)(\||\}\})/g, wp_sk.mm_rTempldecode );

			// usuwam spacje na końcach linii
			str = str.replace( /[ \t]*\n/g, '\n' );

			// unifikacja nagłówka
			str = str.replace( /([^ \n\t\}])[ \n\t]*\n'''? *Bibliografia:* *'''?[ \n\t]*/gi, '$1\n\n== Bibliografia ==\n' );
			str = str.replace( /([^ \n\t\}])[ \n\t]*\n(=+) *Bibliografia:* *=+[ \n\t]*/gi, '$1\n\n$2 Bibliografia $2\n' );
			str = str.replace( /([^ \n\t\}])[ \n\t]*\n'''? *Referencje:* *'''?[ \n\t]*/gi, '$1\n\n== Przypisy ==\n' );
			str = str.replace( /([^ \n\t\}])[ \n\t]*\n(=+) *Referencje:* *=+[ \n\t]*/gi, '$1\n\n$2 Przypisy $2\n' );
			str = str.replace( /([^ \n\t\}])[ \n\t]*\n'''? *Piśmiennictwo:* *'''?[ \n\t]*/gi, '$1\n\n== Przypisy ==\n' );
			str = str.replace( /([^ \n\t\}])[ \n\t]*\n(=+) *Piśmiennictwo:* *=+[ \n\t]*/gi, '$1\n\n$2 Przypisy $2\n' );

			// niepotrzebna kropka kropka z liczebników w datach
			str = str.replace( /([0-9])\. *(stycznia|lutego|marca|kwietnia|maja|czerwca|lipca|sierpnia|września|października|listopada|grudnia)/g, '$1 $2' )
			// ale u [[hr: w listopadzie potrzebna
			str = str.replace( /\[\[ *hr *: *([0-9]{1,2}) listopada/g, '[[hr:$1. listopada' )

			// oryginalny cleaner
			str = wp_sk.pre_malarz_cleaner( str );

			// usuwam entery, spacje i tabulatory po infoboksie
			str = str.replace( /\{\{([^|}]+[ _]infobo[^|}]+)((?:[^{}]|[^{}][{}][^{}]|\{\{(?:[^{}]|[^{}][{}][^{}]|\{\{[^{}]+\}\})+\}\})+)}\}[\n\t ]*/g, '{{$1$2}}\n' );

			// usuwam entery na początku artykułu
			str = str.replace( /^\n*/, '' );

			// usuwam BR'y na końcach list i akapitów
			str = str.replace( /( *<\/?br ?\/?>)* *\n(\*|\#|\n|\:)/ig, '\n$2' );

			// usuwam spacje przy BR'ach
			str = str.replace( / *<\/?br ?\/?> */ig, '<br />' );

			// czyszczę przypisy z cytuj cośtam
			str = str.replace(/== *\n\s*\n*\{\{[Cc]ytuj/g, '==\n\* \{\{Cytuj');
			str = str.replace(/\n?(\{\{([Cc]ytuj[^|}]+)((?:[^{}]|[^{}][{}][^{}]|\{\{(?:[^{}]|[^{}][{}][^{}]|\{\{[^{}]+\}\})+\}\})+)\}\})/g, wp_sk.mm_rFriendlyCytuj);
			str = str.replace(/\n+<\/ref>/g, '</ref>');

			return str;
		};
		wp_sk.mm_rTempldecode = function( a, name, end ) {
			try {
				name = decodeURIComponent( name )
				a = '{{' + name + end;
			} catch ( err ) {}

			return a.replace( /_/g, ' ' );
		};
		wp_sk.mm_rFriendlyCytuj = function( a ) {
			return a.replace( /\s+/g, ' ' );
		};
	}

	if ( typeof( wp_sk ) !== 'undefined' ) {
		//console.log( "WP:SK is present" );
		attachToSk();
	} else {
		//console.log( "WP:SK is not present" );
		var timer;
		var attemptsLeft = 600;
		timer = window.setInterval( function() {
			if ( typeof( wp_sk ) !== 'undefined' ) {
				attachToSk();
				window.clearInterval( timer );
				return;
			}
			attemptsLeft--;
			if ( attemptsLeft < 0 ) {
				//console.log( "WP:SK is not present, giving up" );
				window.clearInterval( timer );
			}
		}, 100 );
	}
} )();