Wikipedysta:ToSter/wpsk user.js


Wikipedysta:ToSter/wpsk user.js w encyklopedii

Z Wikipedii, wolnej encyklopedii < Wikipedysta:ToSter Przejdź do nawigacji Przejdź do wyszukiwania

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ą.
/* * Rozszerzenie WP:SK, skryptu autorstwa Nuxa (pl:User:Nux) * http://pl.wikipedia.org/wiki/WP:SK * Autor: ToSter (pl:User:ToSter) * Licencja: GNU General Public License v2 * http://opensource.org/licenses/gpl-license.php * <pre> */ ( function() { function attachToSk() { //console.log( "Attaching to WP:SK" ); wp_sk.myver = '3.18'; wp_sk.extension += "+[[WP:SK/ToS|ToS]]"; wp_sk.escapeTemplate = function( str ) { str = str.replace( /\|(\s*[^\|=\n]*) - ([^\|=\n]*)=/gi, "|$1 <%%%SDASH%%%> $2=" ); str = str.replace( /\|(\s*altlink\s*=[^\|=\n]*) - ([^\|=\}\n]*)/gi, "|$1 <%%%SDASH%%%> $2" ); str = str.replace( /([=\|]\s*[^\|\[\n]*)\.(jpe?g|png|gif|tiff?|svg|webm|ogg)/gi, function( a, fname, ext ) { fname = fname.replace( /[ _]-[ _]/g, ' <%%%SDASH%%%> ' ); fname = fname.replace( /[ _]–[ _]/g, ' <%%%NDASH%%%> ' ); fname = fname.replace( /[ _]—[ _]/g, ' <%%%MDASH%%%> ' ); fname = fname.replace( /\./g, '<%%%DOT%%%>' ); fname = fname.replace( /(\d)r/g, "$1<%%%R%%%>" ); return fname + '.' + ext; } ); return str; }; wp_sk.cleanLinksAndTemplates = function( str ) { // półpauzy // na początek escape w linkach i szablonach for ( i = 0; i <= 3; i++ ) { str = str.replace( /\[\[([^\|\]]+?) - ([^\|]+?)([\|\]])/g, '[[$1 <%%%SDASH%%%> $2$3' ); str = str.replace( /\[\[([^\|\]]+?) – ([^\|]+?)([\|\]])/g, '[[$1 <%%%NDASH%%%> $2$3' ); str = str.replace( /\[\[([^\|\]]+?)×([^\|]+?)([\|\]])/g, '[[$1<%%%CROSS%%%>$2$3' ); str = str.replace( /\[\[([^\|\]]+?)\.([^\|]+?)([\|\]])/g, '[[$1<%%%DOT%%%>$2$3' ); str = str.replace( /\[\[([^\|\]]+?\d)r([^\|]+?)([\|\]])/g, '[[$1<%%%R%%%>$2$3' ); str = str.replace( /\{\{((s\|)?[^\|\}]+?) - ([^\|]+?)([\|\}])/g, '{{$1 <%%%SDASH%%%> $3$4' ); str = str.replace( /\{\{((s\|)?[^\|\}]+?) – ([^\|]+?)([\|\}])/g, '{{$1 <%%%NDASH%%%> $3$4' ); str = str.replace( /\{\{((s\|)?[^\|\}]+?)\.([^\|]+?)([\|\}])/g, '{{$1<%%%DOT%%%>$3$4' ); str = str.replace( /\{\{((s\|)?[^\|\}]+?)×([^\|]+?)([\|\}])/g, '{{$1<%%%CROSS%%%>$3$4' ); str = str.replace( /\{\{((s\|)?[^\|\}]+?\d)r([^\|]+?)([\|\}])/g, '{{$1<%%%R%%%>$3$4' ); str = str.replace( /\{\{(main|mainsec|zobacz też|osobny artykuł|główny artykuł|kategoria główna|zobacz kategorię)\|([^\}]+?) - ([^\}]+?)/gi, '{{$1|$2 <%%%SDASH%%%> $3' ); str = str.replace( /\{\{[Dd]uża grafika\|([^\|\}]+?) - ([^\|]+?)([\|\}])/g, '{{Duża grafika|$1 <%%%SDASH%%%> $2$3' ); str = str.replace( /\{\{[Dd]uża grafika\|([^\|\}]+?) – ([^\|]+?)([\|\}])/g, '{{Duża grafika|$1 <%%%NDASH%%%> $2$3' ); str = str.replace( /\{\{[Dd]uża grafika\|([^\|\}]+?)\.([^\|]+?)([\|\}])/g, '{{Duża grafika|$1<%%%DOT%%%>$2$3' ); str = str.replace( /\{\{[Dd]uża grafika\|([^\|\}]+?\d)r([^\|]+?)([\|\}])/g, '{{Duża grafika|$1<%%%R%%%>$2$3' ); str = str.replace( /\{\{[Ww]ikisłownik\|([^\|\}]+?) - ([^\|]+?)([\|\}])/g, '{{Wikisłownik|$1 <%%%SDASH%%%> $2$3' ); str = str.replace( /<ref name\s*=\s*"([^"]+?) - ([^"]+?)"/g, '<ref name="$1 <%%%SDASH%%%> $2"' ); str = str.replace( /\[\[([^\]]+?) x ([^\]]+?)\]\]/g, '[[$1 <%%%X%%%> $2]]' ); } // + escape w galeriach str = str.replace( /<gallery([\s\S]+?)<\/gallery>/gi, function( a, zaw ) { for ( i = 0; i < 5; i++ ) { zaw = zaw.replace( /(\s*[^\|\n]*) - ([^\|\n]*)\.(jpe?g|png|gif|tiff?|svg|webm|ogg)/gi, "$1 <%%%SDASH%%%> $2.$3" ); zaw = zaw.replace( /(\s*[^\|\n]*) – ([^\|\n]*)\.(jpe?g|png|gif|tiff?|svg|webm|ogg)/gi, "$1 <%%%NDASH%%%> $2.$3" ); zaw = zaw.replace( /(\s*[^\|\n]*) — ([^\|\n]*)\.(jpe?g|png|gif|tiff?|svg|webm|ogg)/gi, "$1 <%%%MDASH%%%> $2.$3" ); zaw = zaw.replace( /(\s*[^\|\n]*)\.([^\|\n]*)\.(jpe?g|png|gif|tiff?|svg|webm|ogg)/gi, "$1<%%%DOT%%%>$2.$3" ); zaw = zaw.replace( /(\s*[^\|\n]*\d)r([^\|\n]*)\.(jpe?g|png|gif|tiff?|svg|webm|ogg|JPE?G|PNG|GIF|TIFF?|SVG|WEBM|OGG)/g, "$1<%%%R%%%>$2.$3" ); zaw = zaw.replace( /(\s*[^\[\|\n]*)\.(jpe?g|png|gif|tiff?|svg|webm|ogg)/gi, function( a, filename, ext ) { filename = filename.replace( /_/g, ' ' ); filename = filename.substr( 0, 1 ).toUpperCase() + filename.substr( 1, filename.length ); return filename + '.' + ext; } ); } return "<gallery" + zaw + "</gallery>"; } ); // + escape i poprawki w {{Galeria}} str = str.replace( /\{\{Galeria(\s*\|[\s\S]+?)\}\}/gi, function( a, zaw ) { zaw = zaw.replace( /(File|Image|Plik|Grafika):/gi, "Plik:" ); for ( i = 0; i < 5; i++ ) { zaw = zaw.replace( /:(\s*[^\|\n]*) - ([^\|\n]*)\.(jpe?g|png|gif|tiff?|svg|webm|ogg)/gi, ":$1 <%%%SDASH%%%> $2.$3" ); zaw = zaw.replace( /:(\s*[^\|\n]*) – ([^\|\n]*)\.(jpe?g|png|gif|tiff?|svg|webm|ogg)/gi, ":$1 <%%%NDASH%%%> $2.$3" ); zaw = zaw.replace( /:(\s*[^\|\n]*) — ([^\|\n]*)\.(jpe?g|png|gif|tiff?|svg|webm|ogg)/gi, ":$1 <%%%MDASH%%%> $2.$3" ); zaw = zaw.replace( /:(\s*[^\|\n]*)\.([^\|\n]*)\.(jpe?g|png|gif|tiff?|svg|webm|ogg)/gi, ":$1<%%%DOT%%%>$2.$3" ); zaw = zaw.replace( /:(\s*[^\|\n]*\d)r([^\|\n]*)\.(jpe?g|png|gif|tiff?|svg|webm|ogg|JPE?G|PNG|GIF|TIFF?|SVG|WEBM|OGG)/g, ":$1<%%%R%%%>$2.$3" ); zaw = zaw.replace( /:(\s*[^\[\|\n]*)\.(jpe?g|png|gif|tiff?|svg|webm|ogg)/gi, function( a, filename, ext ) { filename = filename.replace( /_/g, ' ' ); filename = filename.substr( 0, 1 ).toUpperCase() + filename.substr( 1, filename.length ); return ':' + filename + '.' + ext; } ); } return "{{Galeria" + zaw + "}}"; } ); return str; }; wp_sk.unescapeString = function( str ) { str = str.replace( /<%%%SDASH%%%>/g, '-' ); str = str.replace( /<%%%NDASH%%%>/g, '–' ); str = str.replace( /<%%%MDASH%%%>/g, '—' ); str = str.replace( /<%%%CROSS%%%>/g, '×' ); str = str.replace( /<%%%X%%%>/g, 'x' ); str = str.replace( /<%%%DOT%%%>/g, '.' ); return str; }; wp_sk.friendlierTemplate = function( a, nazwa, zaw ) { if ( zaw.indexOf( '=' ) == -1 && zaw.indexOf( '|' ) == -1 ) { return a; } // -dane teleadresowe w infoboksach zaw = zaw.replace( /(\s*)(\|\s*(email|mail|e-mail|mail_um|mail_ug|tel_ug|fax_ug|telefon|tel_um|fax_um)\s*=[\s\S]*?)+([\|\}])/g, '$1$4' ); // escape zaw = wp_sk.escapeTemplate( zaw ); zaw = zaw.replace( /\|(\s*[^\[\|\n]*)=(\s*[^\[\|\n]*)\.(jpe?g|png|gif|tiff?|svg|webm|ogg)/gi, function( a, param, filename, ext ) { spaces = ''; if ( (filename.indexOf( '://' ) == -1) && (filename.indexOf( '%3a%2f%2f' ) == -1 ) ) { filename = filename.replace( /_/g, ' ' ); while ( filename.charAt( 0 ) == ' ' ) { filename = filename.substr( 1, filename.length ); spaces += ' '; } filename = filename.substr( 0, 1 ).toUpperCase() + filename.substr( 1, filename.length ); } return '|' + param + '=' + spaces + filename + '.' + ext; } ); return '{{' + nazwa + zaw + '}}'; }; wp_sk.cleaner_new = function( str ) { str = wp_sk.cleanerWikiVaria_old( str ); // escape + podstawowe poprawki w linkach i szablonach str = wp_sk.cleanLinksAndTemplates( str ); // brakująca kropka str = str.replace( /([IVX]+) *w([\),])/g, '$1 w.$2' ); // ort. str = str.replace( /(północny|południowy|środkowy) *[–-] *(wschód|zachód)/g, '$1 $2' ); str = str.replace( /(północnego|południowego|środkowego) *[ –-] *(wschodu|zachodu)/g, '$1 $2' ); str = str.replace( /(północnym|południowym|środkowym) *[ –-] *(wschodzie|zachodzie)/g, '$1 $2' ); str = str.replace( /(północno|południowo|środkowo) *[ –-] *(wschodni|zachodni)/g, '$1-$2' ); // + escape w szablonach, przy okazji sprzątnięcie podkreśleń w nazwach plików i usunięcie zbędnych parametrów str = str.replace( /\{\{([^|}]+)((?:[^{}]|[^{}][{}][^{}]|\{\{(?:[^{}]|[^{}][{}][^{}]|\{\{[^{}]+\}\})+\}\})+)\}\}/g, wp_sk.friendlierTemplate ); str = str.replace( /(\s)-(\s)/g, '$1–$2' ); str = str.replace( /&ndash;/g, '–' ); str = str.replace( /&mdash;/g, '—' ); // str = str.replace(/ — /g, ' – '); // spacje w listach str = str.replace( /(\n[#\*:]+)([^ \t\n*#:\{])/g, '$1 $2' ); str = str.replace( /(\n[#\*:]+)\{\{/g, '$1 {{' ); // -zbędne spacje przed div str = str.replace( /\n\s*<(\/)?div/g, '\n<$1div' ); // skale map str = str.replace( /(\D1): ?(\d) ?(\d{3}\D)/g, '$1:$2$3' ); str = str.replace( /(\D1): ?(\d{2,3}) ?(\d{3}\D)/g, '$1:$2&nbsp;$3' ); // liczby do 9999 bez spacji str = str.replace( /(\s\d)( |&nbsp;)(\d{3}(\s|&nbsp;)(\D))/g, '$1$3' ); // optymistyczna heurystyka: // kropka na nbsp dla liczb pięciocyfrowych str = str.replace( /(\d{2})\.(\d{3})( |&nbsp;)?(m|cm|mm|ha|os\.|osób|km|°C|°F)(\W)/g, '$1&nbsp;$2&nbsp;$4$5' ); // ludzie niepodzielni - ciach kropkę str = str.replace( /(\d+)\.(\d+)( |&nbsp;)?(mieszk\.|mieszkańców|os\.|osób)(\W)/g, '$1$2&nbsp;$4$5' ); // spacja przed rokiem str = str.replace( /((\s([12])?\d{3})r\.)/g, '$2 r.' ); str = str.replace( /<%%%R%%%>/g, 'r' ); // encje, unicode od Malarza str = str.replace( /&bull;/g, '•' ); str = str.replace( /\&\#8211;/g, '–' ); str = str.replace( /\&\#8216;/g, '‘' ); str = str.replace( /\&\#8217;/g, '’' ); str = str.replace( /\&\#8221;/g, '”' ); // int./ort. str = str.replace( /([ \(])m[\. ]+in\.? /g, '$1m.in. ' ); str = str.replace( / np: /g, ' np. ' ); // dwie kropki na końcu zdania str = str.replace( /\.\]\]\./g, '.]]' ); // uproszczenie linku do n.p.m. str = str.replace( /\[\[(n\.p\.m\.\|)?m n\.p\.m\.\]\]/gi, 'm [[n.p.m.]]' ); str = str.replace( /\[\[metr\|m\]\] \[\[n\.p\.m\.\]\]/gi, 'm [[n.p.m.]]' ); // strzałki dla opisów szlaków str = str.replace( /↑ ?(\d)/g, '↑&nbsp;$1' ); str = str.replace( /↓ ?(\d)/g, '↓&nbsp;$1' ); str = str.replace( /_infobox/g, ' infobox' ); str = str.replace( /\| wydawca=Wydaw\. Naukowe PWN/g, '| wydawca= Wydawnictwo Naukowe PWN' ); // -puste parametry cytuj str = str.replace( /((\s*)\|\s*(imię\d|nazwisko\d|inni|autor link\d|autor\d)\s*=\s*)+([\|\}])/g, '$2$4' ); // 1 x 2 -> odpowiedni krzyżyk + nbsp str = str.replace( /([0-9,\.]+) [x×] ([0-9,\.]+) /g, '$1&nbsp;×&nbsp;$2&nbsp;' ); str = str.replace( /\{\{nowrap start\}\}(\s*)([0-9,\.]+) [x×] ([0-9,\.]+) /g, '{{nowrap start}}$1$2 × $3 ' ); // przypisy dużą literą str = str.replace( / ?\{\{[pP]rzypisy/g, '{{Przypisy' ); // kropka w języku do linka str = str.replace( /\[\[język ([a-ząćęłńóśźż]{2,5})([a-ząćęłńóśźż]+)\|\1\]\]\. ?/gi, '[[język $1$2|$1.]] ' ); str = str.replace( /\{\{Seealso/gi, '{{Zobacz też' ); // drobiazgi przy refach str = str.replace( /<\/ref>([\.,;])([a-zA-ZąćęłńóśźżĄĆĘŁŃÓŚŹŻ])/g, '</ref>$1 $2' ); // sprzątanie wiosek str = str.replace( /Dane z \[\[30 czerwca\]\] \[\[2004\]\]\{\{ŹródłoPL\|2\}\}:/g, 'Dane z 30 czerwca 2004{{ŹródłoPL|2}}:' ); str = str.replace( /\{\| border="1" cellpadding="4" cellspacing="0" style="margin: 0 0 1em 1em; background: #f9f9f9; border: 1px #aaaaaa solid; border-collapse: collapse; text-align:right;"/g, '{| class="wikitable"' ); // wikizacja html str = str.replace( /<i>([\s\S]+?)<\/i>/gi, "''$1''" ); str = str.replace( /<(b|strong)>([\s\S]+?)<\/\1>/gi, "'''$2'''" ); str = str.replace( /<(h1|h2)>([\s\S]+?)<\/\1>/gi, "== $2 ==" ); str = str.replace( /<h3>([\s\S]+?)<\/h3>/gi, "=== $1 ===" ); str = str.replace( /<h4>([\s\S]+?)<\/h4>/gi, "==== $1 ====" ); str = str.replace( /<h5>([\s\S]+?)<\/h5>/gi, "===== $1 =====" ); // listy str = str.replace( /<([uo]l)>([\s\S]+?)<\/\1>/gi, function( a, ltype, zaw ) { var substBeg = ( ltype.toLowerCase().charAt( 0 ) == 'u' ) ? '*' : '#'; zaw = zaw.replace( /<li>/gi, '\n<li>' ); zaw = zaw.replace( /\n\n/gi, '\n' ); zaw = zaw.replace( /<\/li>/gi, '' ); zaw = zaw.replace( /<li>/gi, substBeg + ' ' ); return zaw; } ); // tabelki str = str.replace( /<table([\s\S]+?)>/gi, '{|$1' ); str = str.replace( /<\/table>/gi, '|}' ); str = str.replace( /<\/td>\n+\s*<td>/gi, '\n| ' ); str = str.replace( /<\/th>\n+\s*<th>/gi, '\n! ' ); str = str.replace( /<\/td>\n+\s*<td ([\s\S]+?)>/gi, '\n| $1 | ' ); str = str.replace( /<\/th>\n+\s*<th ([\s\S]+?)>/gi, '\n! $1 | ' ); str = str.replace( /<\/td>\s*<td>/gi, ' || ' ); str = str.replace( /<\/th>\s*<th>/gi, ' !! ' ); str = str.replace( /<\/td>\s*<td ([\s\S]+?)>/gi, ' || $1 | ' ); str = str.replace( /<\/th>\s*<th ([\s\S]+?)>/gi, ' !! $1 | ' ); str = str.replace( /(<\/t[dh]>)?\s*<\/tr>/gi, '' ); str = str.replace( /\s*<tr([\s\S]*?)>\s*/gi, '\n|- $1\n' ); str = str.replace( /\n\s*<td>/gi, '\n| ' ); str = str.replace( /\n\s*<th>/gi, '\n! ' ); str = str.replace( /\n\s*<td ([\s\S]+?)>/gi, '\n| $1 | ' ); str = str.replace( /\n\s*<th ([\s\S]+?)>/gi, '\n! $1 | ' ); str = str.replace( /<\/td>/gi, '' ); // -> Plik: wszędzie, np. w parametrach infoboksów - rezygnacja, bo wycofujemy to z szablonów a generuje błędy // str = str.replace( /(= *|\[\[)(Grafika|File|Image):/gi, '$1Plik:' ); // -spacje przy px str = str.replace( /\|(\d{2,4}) px\|/g, '|$1px|' ); // centre -> center str = str.replace( /\|centre/g, '|center' ); // |thumb|]] -> |thumb]] str = str.replace( /\|(center|thumb|left)\|\]\]/g, '|$1]]' ); // thumb na początek, -right, od Matma Rexa str = str.replace( /\[\[(?:Plik):([^\|\]]+)\|((?:\[\[.+?\]\]|[^\]])+)\]\]/g, function( a, name, opts ) { o = opts.split( '|' ); if ( o.indexOf( 'thumb' ) >= 0 ) { z = o.indexOf( 'right' ); if ( z >= 0 ) o.splice( z, 1 ); if ( o.indexOf( 'thumb' ) !== 0 ) { o.splice( o.indexOf( 'thumb' ), 1 ); o.unshift( 'thumb' ); } } res = '|' + o.join( '|' ); res = res.replace( /\|\|/g, '|' ); res = res.replace( /\|$/g, '' ); return '[[Plik:' + name + res + ']]'; } ); // odescapujemy str = wp_sk.unescapeString( str ); return str; }; wp_sk.cleanerWikiVaria_old = wp_sk.cleanerWikiVaria; wp_sk.cleanerWikiVaria = wp_sk.cleaner_new; } 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 ); } } )(); //</pre> 
Na podstawie artykułu: "Wikipedysta:ToSter/wpsk user.js" pochodzącego z Wikipedii
OryginałEdytujHistoria i autorzy