Wikipedysta:Beno/wp sk.js
(Przekierowano z Wikipedia:SK/Bn)
Uwaga: aby zobaczyć zmiany po opublikowaniu, 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)
- Edge: Przytrzymaj Ctrl, jednocześnie klikając Odśwież, lub naciśnij klawisze Ctrl+F5.
- Opera: Naciśnij klawisze Ctrl+F5.
// <nowiki>
mw.hook('userjs.wp_sk.ready').add(function (wp_sk)
{
// wlasne [[WP:SK]]
var nux_cleaner = wp_sk.cleaner;
wp_sk.extension += "+[[WP:SK/Bn|Bn]]";
wp_sk.cleaner = function (str)
{
str = str.replace(/([ !|])v?align *= *"*centre"*/gi, '$1');
str = str.replace(/(style) *= *(".+?);?(")/gi, '$1=$2;$3');
str = str.replace(/class="hintergrundfarbe\d+"/gi, '');
str = str.replace(/align="none"/gi, '');
str = str.replace(/((?:border-width|margin|padding)(?:-[a-z]+)?:) *(\d)px \2px \2px \2px;/gi, '$1$2px;');
str = str.replace(/border-style: *([a-z]+); *border-width: *([0-9]px); *border-color: *([#a-z])/gi, 'border:$1 $2 $3');
str = str.replace(/(\{{2}(?:Przypisy|Uwagi))\|(\}{2})/gi, '$1$2');
str = str.replace(/\n?\{{2}Przypisy/gi, '\n{{Przypisy');
str = str.replace(/(\n== Przypisy ==)((?:\n.*){1,10})(\n\{{2}Przypisy)[\n ]*(\}{2})/gi, '$1$3$4$2');
str = str.replace(/(\}\})(\{\{Odcinek)/gi, '$1\n$2');
str = str.replace(/([ #'](?:seria|sezon) +\d+:? +\(?\d{4})-(\d{4}\)?)/gi, '$1–$2');
str = str.replace(/(\n *\| *sezon *= *\d+) *(\| *odcinek *= *\d+)/gi, '$1\n$2');
str = str.replace(/<!-- Tytuł wygenerowany przez bota -->/gi, '');
str = str.replace(/<!-- Bot generated title -->/gi, '');
str = str.replace(/(<ref(?: (?:group|name)[^\/>]+)?>)\s+/gi, '$1');
str = str.replace(/\n*==+\s*uwagi\s*==+\n*<references group="?uwaga"?\s*\/>/gi, '\n\n== Uwagi ==\n{{Uwagi}}');
str = str.replace(/((?:\[{2}|\|)UTC-)(\d:\d\d\]{2})/gi, '$10$2');
str = str.replace(/<!-- (POPRAW|SPRAWDŹ) TO MIEJSCE! [^>]*-->/g, '');
str = str.replace(/\u00A0{8}/g, ' ');
str = str.replace(/[\u00A0\u2009]/g, ' ');
//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, 'Ω');
str = str.replace(/𝑐/g, '<math>c<\/math>'); // 01D450
str = str.replace(/𝑙/g, '<math>l<\/math>'); // 01D459
str = str.replace(/𝑚/g, '<math>m<\/math>'); // 01D45A
str = str.replace(/𝑛/g, '<math>n<\/math>'); // 01D45B
str = str.replace(/𝑟/g, '<math>r<\/math>'); // 01D45F
str = str.replace(/𝑠/g, '<math>s<\/math>'); // 01D460
str = str.replace(/𝛼/g, '<math>\\alpha<\/math>'); // 01D6FC
str = str.replace(/𝜑/g, '<math>\\phi<\/math>'); // 01D711
str = str.replace(/𝜃/g, '<math>\\theta<\/math>'); // 01D703
str = str.replace(/Ω/g, 'Ω'); // 2126 OHM SIGN na 03A9 GREEK CAPITAL LETTER OMEGA
str = str.replace(/∆/g, 'Δ'); // 2206 INCREMENT na 0394 GREEK CAPITAL LETTER DELTA
str = str.replace(/∏/g, 'Π'); // 220F N-ARY PRODUCT na 03A0 GREEK CAPITAL LETTER PI
str = str.replace(/∑/g, 'Σ'); // 2211 N-ARY SUMMATION na 03A3 GREEK CAPITAL LETTER SIGMA
str = str.replace(/fi/g, 'fi'); // ligatura fi
str = str.replace(/\n\uFF08/g, '\n('); // FULLWIDTH LEFT PARENTHESIS
str = str.replace(/\uFF08/g, ' ('); // -"-
str = str.replace(/\uFF09/g, ') '); // FULLWIDTH RIGHT PARENTHESIS
// dodaje wolne linie przed naglowkami
str = str.replace(/\n==/g, '\n\n==');
str = str.replace(/(\[{2}[^\n|\]]+\|)/gi, function(a, fil) {
fil = fil.replace(/ +(\|)/g, '$1');
fil = fil.replace(/_/g, ' ');
return fil;});
str = str.replace(/(\[{2})([^\]|]+)([-–])([^\]|]+)(\|\2)[-–](\4)/gi, '$1$2$3$4$5$3$6');
str = str.replace(/(\[{2})([^\]|]+)([^\]|]+)(\|\2) (\3)/g, '$1$2$3$4$5');
str = str.replace(/([^\n ]) (<math)/g, '$1 $2');
str = str.replace(/\s*(<math) +display[ ="]+block[ ="]+(>.+?<\/math>)\s*/g, '\n: $1$2\n\n');
str = str.replace(/(<\/math>)((?: | )*)([,;:])([^,:])/g, '$3$1$2$4');
str = str.replace(/(<\/math>)((?: | )*)(\.{3}|\.)([^.])/g, '$3$1$2$4');
str = str.replace(/(\x3Cmath[^>]*\x3E[\s\S]+?\x3C\/math\x3E)/gi, function(b, fil) {
fil = fil.replace(/(\\(?:overline|underline|widehat)) *\{(\\[a-z]+)\}([-+= \\/<([{])/g, '$1$2$3');
fil = fil.replace(/\\left/g, '\x01');
fil = fil.replace(/\\right/g, '\x02');
fil = fil.replace(/\x01 *\.([^\x01\x02]+)\x02 *\./g, '$1');
fil = fil.replace(/\x02/g, '\\right');
fil = fil.replace(/\x01/g, '\\left');
fil = fil.replace(/(<math[^>]*>\n*)(\\qq?uad)/g, '$1{}$2');
fil = fil.replace(/(<math[^>]*>\n*)(?:[ ~]|\\(?:displaystyle|[ ,;!]))+/g, '$1');
fil = fil.replace(/(<math[^>]*>\n)\n+/g, '$1');
fil = fil.replace(/([^\\]) +(<\/math>)/g, '$1$2');
fil = fil.replace(/([^\\]\\qq?uad)(<\/math>)/g, '$1{}$2');
fil = fil.replace(/([^\\])(?:[ ~]|\\[ ,;!])+([,;:.]*<\/math>)/g, '$1$2 ');
fil = fil.replace(/([^\\])(?:[ ~]|\\(?:displaystyle|[ ,;!]))+([\n,;:.]*<\/math>)/g, '$1$2');
fil = fil.replace(/([^\\])(?:[ ~]|\\(?:displaystyle|[ ,;!]))+([\n,;:.]*<\/math>)/g, '$1$2');
fil = fil.replace(/([^\\]) *([_^]) */g, '$1$2');
fil = fil.replace(/([_^])\{(\\math(?:bb|bf|cal|frak|it|rm|sf|tt) +[\dA-Za-z]|\\[A-Za-z]+ *|[^{}])\}(?![A-Za-z\d])/g, '$1$2');
fil = fil.replace(/([_^])\{(\\math(?:bb|bf|cal|frak|it|rm|sf|tt) +[\dA-Za-z]|\\[A-Za-z]+ *|[^{}])\}(?=[A-Za-z\d])/g, '$1$2 ');
fil = fil.replace(/\\begin *\{matrix\} *\\frac *(\{(?:\{[^{}]*\}|[^{}])*\}|\d) *(\{(?:\{[^{}]*\}|[^{}])*\}|\d) *\\end\{matrix\}/g, '\\tfrac$1$2');
fil = fil.replace(/(\\\\\s*\\\\\s*\\)e(nd[^a-z])/g, '$1\x01$2');
fil = fil.replace(/\\\\(\s*\\end\s*\{)/g, '$1');
fil = fil.replace(/[\s&]*&(\s*\\end\s*\{)/g, '$1');
fil = fil.replace(/\x01/g, 'e');
fil = fil.replace(/\\\\/g, '\x01');
fil = fil.replace(/\\{/g, '\x02');
fil = fil.replace(/\\}/g, '\x03');
fil = fil.replace(/\\ /g, '\x04');
fil = fil.replace(/ *(?:\\,|~|\x04|\\;) *([-+=]|\\[gl]eq?(?:slant)?) *(?:\\,|~|\x04|\\;) */g, ' $1 ');
fil = fil.replace(/\\(?=over[a-z])/g, '\x05');
fil = fil.replace(/\{ *(\{ *((?:\{(?:\{[^{}]+\}|[^{}])+\}|\{[^{}]+\}|[^{}])+?) *\}|((?:\{(?:\{[^{}]+\}|[^{}])+\}|\{[^{}]+\}|[^{}])+?)) *\\over *(\{ *((?:\{(?:\{[^{}]+\}|[^{}])+\}|\{[^{}]+\}|[^{}])+?) *\}|((?:\{(?:\{[^{}]+\}|[^{}])+\}|\{[^{}]+\}|[^{}])+?)) *\}/g, '\\frac\{$2$3\}\{$5$6\}');
fil = fil.replace(/\{ *(\{ *((?:\{(?:\{[^{}]+\}|[^{}])+\}|\{[^{}]+\}|[^{}])+?) *\}|((?:\{(?:\{[^{}]+\}|[^{}])+\}|\{[^{}]+\}|[^{}])+?)) *\\over *(\{ *((?:\{(?:\{[^{}]+\}|[^{}])+\}|\{[^{}]+\}|[^{}])+?) *\}|((?:\{(?:\{[^{}]+\}|[^{}])+\}|\{[^{}]+\}|[^{}])+?)) *\}/g, '\\frac\{$2$3\}\{$5$6\}');
fil = fil.replace(/\{ *(\{ *((?:\{(?:\{[^{}]+\}|[^{}])+\}|\{[^{}]+\}|[^{}])+?) *\}|((?:\{(?:\{[^{}]+\}|[^{}])+\}|\{[^{}]+\}|[^{}])+?)) *\\over *(\{ *((?:\{(?:\{[^{}]+\}|[^{}])+\}|\{[^{}]+\}|[^{}])+?) *\}|((?:\{(?:\{[^{}]+\}|[^{}])+\}|\{[^{}]+\}|[^{}])+?)) *\}/g, '\\frac\{$2$3\}\{$5$6\}');
fil = fil.replace(/\{ *(\{ *((?:\{(?:\{[^{}]+\}|[^{}])+\}|\{[^{}]+\}|[^{}])+?) *\}|((?:\{(?:\{[^{}]+\}|[^{}])+\}|\{[^{}]+\}|[^{}])+?)) *\\over *(\{ *((?:\{(?:\{[^{}]+\}|[^{}])+\}|\{[^{}]+\}|[^{}])+?) *\}|((?:\{(?:\{[^{}]+\}|[^{}])+\}|\{[^{}]+\}|[^{}])+?)) *\}/g, '\\frac\{$2$3\}\{$5$6\}');
fil = fil.replace(/\x05/g, '\\');
fil = fil.replace(/\{ *(\{(?:\{(?:\{[^{}]+\}|[^{}])+\}|\{[^{}]+\}|[^{}])+?\}) *\}/g, '$1');
fil = fil.replace(/(<math[^>]*>) *\{([^{}]+\\choose[^{}]+)\}([ ,.:;]*<\/math>)/g, '$1\x1e$2\x1f$3');
fil = fil.replace(/(<math[^>]*>)\{ *((?:\{(?:\{[^{}]+\}|[^{}])+\}|\{[^{}]+\}|[^{}])+?) *\}([ ,.:;]*<\/math>)/g, '$1$2$3');
fil = fil.replace(/\x1f/g, '}');
fil = fil.replace(/\x1e/g, '{');
fil = fil.replace(/(<math[^>]*>)([^{}]+\\choose[^{}]+)((?:[,.;]|\{:\})<\/math>)/g, '$1{$2}$3');
fil = fil.replace(/(\\sqrt(?:\[.+?\])?) *\{ *(\\t?frac *\{(?:\{(?:\{[^{}]+\}|[^{}])+\}|\{[^{}]+\}|[^{}])+?\} *\{(?:\{(?:\{[^{}]+\}|[^{}])+\}|\{[^{}]+\}|[^{}])+?\}) *\}/g, '$1$2');
fil = fil.replace(/\{ *\\(bf|cal|it|rm) +((?:\{[^{}]*\}|[^{}])+\})/g, '\\math$1{$2');
fil = fil.replace(/\\left *([([]|\x02) *([^\s]) *\\right *([)\]]|\x03)/g, '$1$2$3');
fil = fil.replace(/(\\[Bb]igg?)[lr]([^A-Za-z])/g, '$1$2');
fil = fil.replace(/(\\[,;]|\x04){4}/g, '\\quad ');
fil = fil.replace(/\\quad *\\quad/g, '\\qquad');
fil = fil.replace(/(\d),\\!(\d)/g, '$1{,}$2');
fil = fil.replace(/= - */g, '= -');
fil = fil.replace(/(\\t?frac) *(\{[^{}]{1,20}\}) *(\{[^{}]{1,20}\})/g, '$1$2$3');
fil = fil.replace(/(\\begin *\{array\} *\{[lcr]*?)([lcr])\2+(\})/g, '$1$2$3');
fil = fil.replace(/(\\inf)in([^a-z])/g, '$1ty$2');
fil = fil.replace(/(\\)(?:[hm]box|mathrm|operatorname|text(?:rm)?) *\{ *(arc(?:co[st]|csc|sec|sin|tan)|cosh?|coth?|csc|sec|sinh?|tanh?|arg|deg|det|dim|exp|hom|inf|ker|lg|ln|log|max|min|sgn|sup) *\} *([A-Za-z])/g, '$1$2 $3');
fil = fil.replace(/(\\)(?:[hm]box|mathrm|operatorname|text(?:rm)?) *\{ *(arc(?:co[st]|csc|sec|sin|tan)|cosh?|coth?|csc|sec|sinh?|tanh?|arg|deg|det|dim|exp|hom|inf|ker|lg|ln|log|max|min|sgn|sup) *\} *([^A-Za-z])/g, '$1$2$3');
fil = fil.replace(/\\tan([^a-z])/g, '\\operatorname\{tg\}$1');
fil = fil.replace(/\\cot([^a-z])/g, '\\operatorname\{ctg\}$1');
fil = fil.replace(/\\csc([^a-z])/g, '\\operatorname\{cosec\}$1');
fil = fil.replace(/\\arctan([^a-z])/g, '\\operatorname\{arctg\}$1');
fil = fil.replace(/\\arccot([^a-z])/g, '\\operatorname\{arcctg\}$1');
fil = fil.replace(/\\arccsc([^a-z])/g, '\\operatorname\{arccosec\}$1');
fil = fil.replace(/\\tanh([^a-z])/g, '\\operatorname\{tgh\}$1');
fil = fil.replace(/\\coth([^a-z])/g, '\\operatorname\{ctgh\}$1');
fil = fil.replace(/\\operatorname *\{csch\}([^a-z])/g, '\\operatorname\{cosech\}$1');
fil = fil.replace(/ *\\colon(?=<\/math>)/g, '{:}');
fil = fil.replace(/(\\[gl]e)q?([^A-Za-z])/g, '$1qslant$2');
fil = fil.replace(/\\bold([^A-Za-z])/g, '\\mathbf$1');
fil = fil.replace(/\\rightarrow([^A-Za-z])/g, '\\to$1');
fil = fil.replace(/\\not *\\in/g, '\\notin');
fil = fil.replace(/\\not *=/g, '\\neq ');
fil = fil.replace(/\\Complex([^A-Za-z])/g, '\\mathbb{C}$1');
fil = fil.replace(/\\([CHNQRZ])([^A-Za-z])/g, '\\mathbb{$1}$2');
fil = fil.replace(/\^\\prime/g, '\'');
fil = fil.replace(/(\\[l]?dots)\.([^.])/g, '$1 $2');
fil = fil.replace(/(, *\\)[cl]?(dots)/g, '$1$2');
fil = fil.replace(/(\\)[cl]?(dots)( *)([,;])/g, '$1$2$4$3');
fil = fil.replace(/(\\cdot *\\)c?(dots)/g, '$1l$2');
fil = fil.replace(/(\\)c?(dots *\\cdot[^s])/g, '$1l$2');
fil = fil.replace(/((?:\\(?:cdot|c[au]p|[gl]eqslant|oplus|o?times|uparrow|vee|wedge)|[-+=<>]) *\\)c?dots/g, '$1ldots');
fil = fil.replace(/\x04/g, '\\ ');
fil = fil.replace(/\x03/g, '\\}');
fil = fil.replace(/\x02/g, '\\{');
fil = fil.replace(/\x01/g, '\\\\');
fil = fil.replace(/_/g, 'foosEpulKU');
return fil;});
// dekodowanie nazw szablonow
str = str.replace(/\{\{([^\|\}]*)(\||\}\})/g, wp_sk.mm_rTempldecode);
str = str.replace(/foosEpulKU/g, '_');
str = str.replace(/(\n *\|.+?= ) *(?=\n)/g, '$1foosEpulKX');
// usuwam spacje na końcach linii
str = str.replace(/[ \t]+\n/g, '\n');
// oryginalny cleaner
str = nux_cleaner.call(wp_sk, str);
str = str.replace(/foosEpulKX/g, '');
// niepotrzebna kropka kropka z liczebników w datach
str = str.replace(/(\d)\. *(stycznia|lutego|marca|kwietnia|maja|czerwca|lipca|sierpnia|września|października|listopada|grudnia)/g, '$1 $2');
// usuwam spacje przy BR'ach + poprawna skladnia
str = str.replace(/ *<\/?br *\/? *> */gi, '<br>');
// usuwam BR'y na końcach list i akapitów
str = str.replace(/([^=])(?: |<br *\/*>)+(\n[\n#*:])/gi, '$1$2');
// powyzej z malarza, odtad beno
str = str.replace(/\n<ref name/gi, '\n@<ref name');
str = str.replace(/\u251C/g, 'foosE1CpulKA');
str = str.replace(/\u2552/g, 'foosE52pulKA');
str = str.replace(/\u2553/g, 'foosE53pulKA');
str = str.replace(/\u2554/g, 'foosE54pulKA');
str = str.replace(/\u2555/g, 'foosE55pulKA');
str = str.replace(/\u2556/g, 'foosE56pulKA');
// 157
str = str.replace(/^(.)/g, 'foopROteZa\n$1');
str = str.replace(/(.)$/g, '$1\n\nfoopROteZb');
str = str.replace(/\n?__(?:FORCETOC|ZESPISEM)__\n?/gi, '\n__ZESPISEM__\n');
str = str.replace(/\n?__(?:NOTOC|BEZSPISU)__\n?/gi, '\n__BEZSPISU__\n');
// str = str.replace(/(\{{2}fb(.|\{{2}.+?\}{2})+?\}{2})/gi, function(a, fil) {
// fil = fil.replace(/ /g, '\u2552');
// return fil;});
str = str.replace(/<(?:source|syntaxhighlight)/gi, '\u2553');
str = str.replace(/<\/(?:source|syntaxhighlight)>/gi, '\u2554');
str = str.replace(/(\u2553[^\u2554]*\u2554)/gi, function(a, fil) {
// fil = fil.replace(/\n\t/g, '\n ');
fil = fil.replace(/\n\t/g, '\n ');
fil = fil.replace(/ /g, '\u251C');
fil = fil.replace(/\'/g, 'foosEpulKC');
fil = fil.replace(/\|/g, 'foosEpulKF');
fil = fil.replace(/"/g, 'foosEpulKZ');
return fil;});
str = str.replace(/\u2554/g, '</syntaxhighlight>');
str = str.replace(/\u2553/g, '<syntaxhighlight');
str = str.replace(/(<math[^>]*>[\s\S]+?<\/math>)/gi, function(a, fil) {
fil = fil.replace(/\\(left|right) +/g, '\\$1');
fil = fil.replace(/\\right\./g, '\\righd');
return fil;});
str = str.replace(/(<math>)(\\i+nt\\limits *_\{)/g, '$1\{\}\\,$2');
str = str.replace(/,(,<\/math>)/g, '$1');
// 155
// str = str.replace(/(\n(?:[^\n\t]{8})*[^\n\t]{7})\t/g, '$1 ');
// str = str.replace(/(\n(?:[^\n\t]{8})*[^\n\t]{6})\t/g, '$1 ');
// str = str.replace(/(\n(?:[^\n\t]{8})*[^\n\t]{5})\t/g, '$1 ');
// str = str.replace(/(\n(?:[^\n\t]{8})*[^\n\t]{4})\t/g, '$1 ');
str = str.replace(/(\n(?:[^\n\t]{4})*[^\n\t]{3})\t/g, '$1 ');
str = str.replace(/(\n(?:[^\n\t]{4})*[^\n\t]{2})\t/g, '$1 ');
str = str.replace(/(\n(?:[^\n\t]{4})*[^\n\t]{1})\t/g, '$1 ');
str = str.replace(/\n\t[\t ]*/g, '\n');
str = str.replace(/\t/g, ' ');
str = str.replace(/(\n *\|[- ]*)(-->)/g, '$1\n$2');
str = str.replace(/(\n)(\n+)(\}{2})(?=\n)/g, '$1$3$2');
str = str.replace(/(\n+)(\n(?:<\/[^<>]+>)+\n)/g, '$2$1');
str = str.replace(/\n+(<(?:center|centruj|gallery.*?)>)\n(?=\n)/g, '\n\n$1');
str = str.replace(/\n+(<(?:center|centruj|gallery.*?)>)\n(?=\n)/g, '\n\n$1');
str = str.replace(/\n(\n<\/(?:center|centruj|gallery)>)\n+/g, '$1\n\n');
str = str.replace(/\n(\n<\/(?:center|centruj|gallery)>)\n+/g, '$1\n\n');
str = str.replace(/(\{{2}odn\|)/gi, function (a, fil) {
return fil.toLowerCase();});
// 154
str = str.replace(/(\]{2})<nowiki\/>([a-ząćęłńóśźż])/gi, '$1$2');
str = str.replace(/(style *= *".*?background)-color(:)/gi, '$1$2');
str = str.replace(/\xad/g, '');
str = str.replace(/[\u0080-\u009F]/g, '');
str = str.replace(/[\u00AD\u200A\u200B\u2060\u200D\uFEFF]/g, '');
str = str.replace(/(\n[#*][ #*]*)↑ */g, '$1');
str = str.replace(/<small>(\s*<ref.+?)<\/small>/gi, '$1');
str = str.replace(/(\n={2}.+={2}\n)\n+/g, '$1');
str = str.replace(/(\n *\|-)[-– |]+/g, '$1 ');
str = str.replace(/(\{{2}cytuj *(grę komputerową|książkę|odcinek|pismo|stronę)?\s*(\|(\{{2}[^{}]*\}{2}|[^|}])*?)*?\}{2})/gi, function(a, fil) {
fil = fil.replace(/\n+/g, ' ');
fil = fil.replace(/\|(\s*\|)+/g, '|');
fil = fil.replace(/([,:])+( ?\|)/g, '$2');
fil = fil.replace(/[| ]+(\}{2})/g, '$1');
fil = fil.replace(/(\| *(?:(?:nazwisko|imię|autor|autor link)\d{1,2}|(?:adres )?rozdziału?|(?:(?:nazwisko|imię|autor)\d{0,2} r)|autor r *\d{0,2} *link) *= *)(?=\|)/g, '');
return fil;});
str = str.replace(/(\{{2}cytuj( (?:grę komputerową|książkę|odcinek|pismo|stronę))?\s*\|(?:\{{2}[^{}]+\}{2}|\{[^{}]+\}|[^{}]|<math>.+?<\/math>)+\}{2})/gi, function(a, fil) {
fil = fil.replace(/( \|) +/g, '$1');
fil = fil.replace(/ *\| *(adres (?:czasopisma|rozdziału)|archiwum|arxiv|autor(?: link\d*| r\d* link)|autor\d*(?: r)?|bibcode|cytat|czasopismo|część|data(?: dostępu)?|doi(?:etykieta)?|dostęp|id|imię\d*(?: r)?|inni|is(?:bn|sn)|język\d*|jstor|kolumny|lccn|miejsce|miesiąc|nazwisko\d*(?: r)?|numer|oclc|odn|odpowiedzialność|opis|opublikowany|oznaczenie|pmc|pmid|praca|redaktor|rok|rozdział|s|seria|strony|tom|tytuł(?: części| tomu)?|url|wolumin|wyda(?:nie|wca)|zarchiwizowano|autorzy|dokument|emisja|koniec|miasto|minuta|odcinek link|platforma|początek|poziom|producent|serial( link)?|sezon|stacja\d?|transkrypcja( url)?|wersja|zadanie) *= */g, ' |$1 = ');
fil = fil.replace(/(\|data = \d{4}-)(\d(?: |\}{2}))/g, '$10$2');
fil = fil.replace(/( \|s = )ss?\. *(\d)/g, '$1$2');
fil = fil.replace(/(\|data = )\[(\d{3,4})\]/g, '$1$2');
return fil;});
str = str.replace(/(\{{2}google books.+?\}{2})/gi, function(a, fil) {
fil = fil.replace(/(\{{2}google books) *\| *([^ |]+) *\| */gi, '$1|$2|');
return fil;});
str = str.replace(/(\{{2}[ru]\|.+?\}{2})/gi, function(a, fil) {
fil = fil.replace(/[ |]*\|[ |]*/g, '|');
return fil;});
str = str.replace(/(\{{2}cytuj(?: (?:grę komputerową|książkę|odcinek|pismo|stronę))? *\|(?:\{{2}[^{}]*\}{2}|\{[^{}]*\}|[^{}])+\}{2})\.+/gi, '$1');
str = str.replace(/([ !|])colspan="?1"?([\n !|])/gi, '$1$2');
str = str.replace(/([ !|])rowspan="?1"?([\n !|])/gi, '$1$2');
str = str.replace(/\{\| *class *=[ '‘’"„”“]*(wikitable[- a-z]*?)[ '‘’"„”“]*(\n|align|border|cell|font|style|width)/gi, '{| class="$1" $2');
str = str.replace(/(\{\|.+? class) *=[ '‘’"„”“]*(wikitable[- a-z]*?)[ '‘’"„”“]*(\n|align|border|cell|font|style|width)/gi, '$1="$2" $3');
// 177
str = str.replace(/(\n *\{\|.+)/gi, function(a, fil) {
fil = fil.replace(/([^{])\|[+-|]*/g, '$1');
fil = fil.replace(/['"‘’„”“]+/g, '"');
fil = fil.replace(/\{\| */g, '{| ');
fil = fil.replace(/( (?:border|cellpadding|cellspacing)) *(=)[ "]*(\d+)[a-z%"]*/gi, '$1$2$3 ');
fil = fil.replace(/ (valign *=[ "]*(?:top|middle|bottom) *"*)/g, '');
fil = fil.replace(/ *class *= */g, ' class=');
fil = fil.replace(/ style *= */g, ' style=');
fil = fil.replace(/(style=)([^\n"]+?[^;]);?( [-a-z]+ *=)/gi, '$1"$2;"$3');
fil = fil.replace(/(["; ])font-size: *100%;*/gi, '$1');
fil = fil.replace(/(rules) *(=)[ "]*([a-z]+)"/gi, '$1$2$3');
fil = fil.replace(/ +;/g, ';');
fil = fil.replace(/;([a-z])/g, '; $1');
return fil;});
str = str.replace(/((\|-|[ !|])style *= *"[^\n"]+")/gi, function(a, fil) {
fil = fil.replace(/ *;[ ;]*/g, '; ');
fil = fil.replace(/; "/g, ';"');
return fil;});
str = str.replace(/([!|]) *scope *= *["„”“]?(?:(?:col|row)(?:group)?)['‘’"„”“]? *(\|)/gi, '$1$2');
str = str.replace(/([!|]) *scope *= *["„”“]?(?:(?:col|row)(?:group)?)['‘’"„”“]?/gi, '$1');
str = str.replace(/ scope *= *["„”“]?(?:(?:col|row)(?:group)?)['‘’"„”“]? *(\|)/gi, '$1');
str = str.replace(/ scope *= *["„”“]?(?:(?:col|row)(?:group)?)['‘’"„”“]? */gi, ' ');
str = str.replace(/(\{\| *class="wikitable[- a-z]*".+?style *= *)["„”“](.+?)["„”“]/gi, '$1"$2"');
str = str.replace(/(\{\|)([ =a-z\d"#%:;-]+)(class *= *"?wikitable[- a-z_\d]*"?)/gi, '$1 $3$2');
str = str.replace(/(\{\| *class=")([- a-z]+) (wikitable)(")/gi, '$1$3 $2$4');
str = str.replace(/(\{\| class="wikitable[- a-z\d]*"[^\n<]+)/gi, function(a, fil) {
fil = fil.replace(/ *= */g, '=');
fil = fil.replace(/ align="?center"?/g, '');
fil = fil.replace(/ background: *#f9f9f9/gi, '');
fil = fil.replace(/ (border|cellpadding|cellspacing)=["\d]+/g, '');
fil = fil.replace(/ empty-cells: *show/g, '');
fil = fil.replace(/ rules=[a-z"]+/g, '');
fil = fil.replace(/ +/g, ' ');
fil = fil.replace(/ ;/g, ';');
fil = fil.replace(/;;+/g, ';');
fil = fil.replace(/( style=")[ ;]*/g, '$1');
fil = fil.replace(/ style=" *" */g, ' ');
return fil;});
str = str.replace(/(\{\| *class="wikitable[- a-z]*".+?style *= *".*?)border *:.+?;/gi, '$1');
str = str.replace(/(\{\| *class="wikitable[- a-z]*".+?style *= *".*?)border-collapse *:.+?;/gi, '$1');
str = str.replace(/(\{\| *class="wikitable[- a-z]*".+?style *= *".*?)border-collapse *:.+?"/gi, '$1"');
str = str.replace(/(\{\| *class="wikitable(?: (?:un)?sortable)?) plainrowheaders([ "])/gi, '$1$2');
// 169
str = str.replace(/\u201A/g, ',');
str = str.replace(/\u02EE/g, '”');
str = str.replace(/\u2010|\u2011/g, '-');
str = str.replace(/(\d)º(\d)/g, '$1°$2');
str = str.replace(/(\d)˚/g, '$1°');
str = str.replace(/[:ː](?=[ \d\n])/g, ':');
str = str.replace(/(\u02BA)/g, '$1<!-- SPRAWDŹ TO MIEJSCE! niepoprawny znak MODIFIER LETTER DOUBLE PRIME (U+02BA) (\'‘’′″)? -->');
str = str.replace(/(\{{2}(dopracować|(?:główny|osobny) artykuł|main)\|.+?\}{2})/gi, function(a, fil) {
fil = fil.replace(/_/g, ' ');
fil = fil.replace(/ *\| */g, '|');
fil = fil.replace(/-/g, 'foosEpulKD');
return fil;});
str = str.replace(/(\n *\{\| [\s\S]+?\|\})/g, function(a, fil) {
fil = fil.replace(/\n +([!|])/g, '\n$1');
fil = fil.replace(/(\n\|\+)(?![\n ])/g, '$1 ');
fil = fil.replace(/(\n\|\+)\n([a-ząćęłńóśźż])/gi, '$1 $2');
return fil;});
str = str.replace(/(\n\| ) +/g, '$1');
str = str.replace(/(\[{2}[^[\]{|}]+?) *(\|[^[\]{|}]+\]{2})/g, '$1$2');
str = str.replace(/(\[{2}Kategoria:[^\n|\]]+?) *(\|)[ !*]*(\]{2})/gi, '$1$2\u251C$3');
str = str.replace(/(\[{2})([^[|\]]+?)( *\([^[|\]]+\)\|)(\]{2})/g, '$1$2$3$2$4');
str = str.replace(/(\[{2})[ |]*([^[|\]]+?)[ |]*(\]{2})/g, '$1$2$3');
str = str.replace(/(\[{2}[^\n[|\]]+\|[^\n[|\]]*)[\n]+([^[|\]]*\]{2})/g, '$1 $2');
str = str.replace(/(\[{2}[^[|\]]+\|) +/g, '$1');
// 174
str = str.replace(/(\{{2}flaga[^{}]+\}{2})(?![\n !|\/])/gi, '$1 ');
str = str.replace(/(\n\|| !{2}| \|{2}) *\'{3}(\{{2}flaga\|[a-z]+\}{2}) */gi, '$1 $2 \'\'\'');
str = str.replace(/([=|] *)(\'{3})(\{{2}flaga\|[a-z]+(?:\|\d+)?\}{2}(?:<br *\/*>)?) */gi, '$1$3 $2');
// 161
str = str.replace(/( +)(['‘’"„”“]+)( *[=|])/g, '$2$1$3');
str = str.replace(/([=|] *['‘’"„”“]+) (.*\.(?:gif|jpe?g|og[agv]|png|svg|tiff?)[\n |\]])/gi, '$1\u2553$2');
str = str.replace(/([=|] *)(['‘’"„”“]+)( +)/g, '$1$3$2');
str = str.replace(/\u2553/g, ' ');
str = str.replace(/(\n==+ ) +/g, '$1');
str = str.replace(/ +( ==+\n)/g, '$1');
str = str.replace(/(\n==+ )\'{3}([^\n']+)\'{3}( ==+)(?=\n)/g, '$1$2$3');
// 160
str = str.replace(/(\.{3}|…)((?:(?:\'{2,})|(?:<ref(?: (?:group|name)[^\/>]+)?>[^<]+<\/ref>|<ref (?:group|name)[^\/>]+\/>|\{{2}(?:odn|[ru])\|[^}]+\}{2}))+)\.([^.])/g, '$1$2$3');
str = str.replace(/( )["„”“](\.{3}|…) /g, '$1„$2');
str = str.replace(/([^:→]) +(\{{2}(?:odn|[ru])\|)/g, '$1$2');
str = str.replace(/(\{{2}odn *)(\|[^}]+)(\| *ref *= *nie)(.*}{2})/g, '$1$3$2$4');
str = str.replace(/([^\n >])(\{{2}odn *\| *ref *= *nie)/g, '$1 $2');
// 163
str = str.replace(/<ref((?: +(?:group|name)[^\/>]+)?>) */gi, '<ref$1');
str = str.replace(/(\s| )+(\'*<\/*ref[ >])/g, '$2');
str = str.replace(/(<\/ref>)\s+(<ref>)/g, '\n$1$2');
str = str.replace(/(<\/ref>)([ ,;:.…!?]+)[\n ]+((?:<ref>.+?<\/ref>)+)/g, '\n$1$3$2');
str = str.replace(/(\n *!)(!{2})/g, '$1 !!');
str = str.replace(/(\n *! (?:!{2} )*)!{32}/g, '$1!! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !!');
str = str.replace(/(\n *! (?:!{2} )*)!{16}/g, '$1!! !! !! !! !! !! !! !!');
str = str.replace(/(\n *! (?:!{2} )*)!{8}/g, '$1!! !! !! !!');
str = str.replace(/(\n *! (?:!{2} )*)!{4}/g, '$1!! !!');
str = str.replace(/(\n *! (?:!{2} )*)!{4}/g, '$1!! !!');
str = str.replace(/(\n *\|)(\|{2})/g, '$1 ||');
str = str.replace(/(\n *\| (?:\|{2} )*)\|{32}/g, '$1|| || || || || || || || || || || || || || || ||');
str = str.replace(/(\n *\| (?:\|{2} )*)\|{16}/g, '$1|| || || || || || || ||');
str = str.replace(/(\n *\| (?:\|{2} )*)\|{8}/g, '$1|| || || ||');
str = str.replace(/(\n *\| (?:\|{2} )*)\|{4}/g, '$1|| ||');
str = str.replace(/(\n *\| (?:\|{2} )*)\|{4}/g, '$1|| ||');
str = str.replace(/<br *\n\/*>/gi, '<br>\n');
str = str.replace(/(\n<[^\/<>]+>)[ \u2552]*(['‘’"„”“]*)[ \u2552]*/gi, '$1$2');
str = str.replace(/[ \u2552]?(<(?:[^\n !\/>][^\n\/>]*[^\n \/>]|[^\n \/>])>)([ \u2552])+/gi, '$2$1');
str = str.replace(/([^\\])([ \u2552])+(<\/[^\n>]+>)[ \u2552]?/gi, '$1$3$2');
str = str.replace(/(<timeline>[^<>]+<\/timeline>)/gi, function(a, fil) {
fil = fil.replace(/ /g, '\u2552');
fil = fil.replace(/[—−‒―]/g, '–');
return fil;});
str = str.replace(/([^\n=| ]) +(?=[^\n=| ])/g, '$1 ');
str = str.replace(/= +\|/g, '= |');
str = str.replace(/\| +=/g, '| =');
str = str.replace(/(\{{2}[^\n{}]+\}{2})/g, function(a, fil) {
fil = fil.replace(/ +/g, ' ');
return fil;});
// 159
str = str.replace(/(\[{2})([^[\]|]+)(\]{2})(['’])([a-ząćęłńóśźż]+)/gi, '$1$2|$2$4$5$3');
str = str.replace(/(\[{2}[^[|\]]+\|[^[|\]]+)(\]{2})(['’][a-ząćęłńóśźż]+)/gi, '$1$3$2');
str = str.replace(/(\[{2}[Cc]hargé d['’]affaires\|[Cc]harg)[eé]( d)['’](affaires\]{2})/g, '$1é$2’$3');
str = str.replace(/(<ref)\s+(group|name) *(=) */gi, '<ref $2$3');
str = str.replace(/(<ref (?:group|name)=)['"„”“]([^>]+)['"„”“]( *\/?>)/g, '$1"$2"$3');
str = str.replace(/(<ref (?:group|name)=[^\/>]+?) *(\/) *(>)/g, '$1 $2$3');
str = str.replace(/<ref name=([^\/>]*?)(>[\s\S]*?)<\/ref>([\s\S]*?)<ref(?: name=\1)?\2<\/ref>([\s\S]*?)<ref(?: name=\1)?\2<\/ref>([\s\S]*?)<ref(?: name=\1)?\2<\/ref>/g, '<ref name=$1$2</ref>$3<ref name=$1 />$4<ref name=$1 />$5<ref name=$1 />');
str = str.replace(/<ref name=([^\/>]*?)(>[\s\S]*?)<\/ref>([\s\S]*?)<ref(?: name=\1)?\2<\/ref>([\s\S]*?)<ref(?: name=\1)?\2<\/ref>/g, '<ref name=$1$2</ref>$3<ref name=$1 />$4<ref name=$1 />');
str = str.replace(/<ref name=([^\/>]*?)(>[\s\S]*?)<\/ref>([\s\S]*?)<ref(?: name=\1)?\2<\/ref>/g, '<ref name=$1$2</ref>$3<ref name=$1 />');
str = str.replace(/<ref name=([^\/>]*?)(>[\s\S]*?)<\/ref>([\s\S]*?)<ref(?: name=\1)?\2<\/ref>/g, '<ref name=$1$2</ref>$3<ref name=$1 />');
str = str.replace(/(\[{2})([^:[|\]]+)( - )([^[|\]]+)(\]{2})/g, '$1$2$3$4|$2 – $4$5');
str = str.replace(/(\{\|(?:[^{}]|\{{2}[\s\S]+?\}{2}|\{\|(?:\{{2}[\s\S]+?\}{2}|[^{}])+\|\})+\|\})/gi, function(a, fil) {
fil = fil.replace(/(\n!)! *((?:colspan|rowspan|style)=")/g, '$1$2');
fil = fil.replace(/([ !|]v?align) *(=) *["„”“]?(top|middle|bottom|left|center|right)["„”“]?/g, '$1$2$3 ');
fil = fil.replace(/(v?align=(?:top|middle|bottom|left|center|right) ) /g, '$1');
fil = fil.replace(/([ !|])align=(?:top|middle|bottom)/g, '$1');
fil = fil.replace(/([ !|])valign=(?:left|center|right)/g, '$1');
fil = fil.replace(/\n\|- *style="vertical-align: *middle;?"/g, '');
fil = fil.replace(/(\n\|.+)/gi, function(b, xyz) {
xyz = xyz.replace(/style="text-align: *(left|center|right);?"/g, 'align=$1');
return xyz;});
fil = fil.replace(/((?:[ !|]|\|-)bgcolor) *(=) *['‘’"„”“]([-a-z#\d]+)['‘’"„”“]/g, '$1$2"$3"');
fil = fil.replace(/((?:background|color)[:=] *"?[Gg]r)e(y)/g, '$1a$2');
fil = fil.replace(/([ !|]colspan) *(=)[ '"„”“]*(\d+)[ '"„”“]*/g, '$1$2$3 ');
fil = fil.replace(/([ !|]rowspan) *(=)[ '"„”“]*(\d+)[ '"„”“]*/g, '$1$2$3 ');
fil = fil.replace(/([ !|]nowrap) *= *"?(?:nowrap|yes)"?/g, '$1');
fil = fil.replace(/([ !|]nowrap) +([!|])/g, '$1$2');
fil = fil.replace(/([!|]) +(nowrap[ !|])/g, '$1$2');
fil = fil.replace(/(\n *\|-) *width *=[ '"„”“]*\d[\d.%]*(?:p[tx])?[ ;'"„”“]*/g, '$1 ');
fil = fil.replace(/([ !|]width) *(=)[ "„”“]*([\d.]+%?)(?:p[tx])?["„”“]*/g, '$1$2$3');
return fil;});
// LOCKI
str = str.replace(/(\{{2}lista utworów(\{{2}.+?\}{2}|[\s\S])+?\}{2})/gi, function(a, fil) {
fil = fil.replace(/(\n\|)(\|)/g, '$1FoosEpulKQ$2');
return fil;});
str = str.replace(/(\[{2}[^|\]]+[|\]]|<code>[\s\S]+?<\/code>|<graph>[\s\S]+?<\/graph>|<math[^>]*>[\s\S]+?<\/math>|<pre>[\s\S]+?<\/pre>|<tt>[\s\S]+?<\/tt>)/gi, function(a, fil) {
fil = fil.replace(/-/g, 'foosEpulKD');
fil = fil.replace(/\'/g, 'foosEpulKC');
fil = fil.replace(/–/g, 'foosEpulKN');
fil = fil.replace(/,/g, 'foosEpulKP');
fil = fil.replace(/"/g, 'foosEpulKZ');
fil = fil.replace(/ /g, '\u2552');
return fil;});
str = str.replace(/(<code>[\s\S]+?<\/code>|<graph>[\s\S]+?<\/graph>|<math[^>]*>[\s\S]+?<\/math>|<pre>[\s\S]+?<\/pre>|<tt>[\s\S]+?<\/tt>)/gi, function(a, fil) {
fil = fil.replace(/\|/g, 'foosEpulKF');
fil = fil.replace(/ /g, '\u2552');
return fil;});
str = str.replace(/((?:ftp|hcodep|https?|www)[^\n <\]|]+[^\n .<\]|])/g, function(a, fil, ins) {
fil = fil.replace(/\'/g, 'foosEpulKC');
fil = fil.replace(/-/g, 'foosEpulKD');
fil = fil.replace(/\./g, 'foosEpulKK');
fil = fil.replace(/,/g, 'foosEpulKP');
return fil;});
// NAWIAS (B)
str = str.replace(/\)(\.(?:gif|jpe?g|og[agv]|png|svg|tiff?)[\n |\]])/gi, 'foosEpulKB$1');
// APOSTROF (C)
str = str.replace(/(\'[^\n{}[\]]*\.(?:gif|jpe?g|og[agv]|png|svg|tiff?)[\n |\]}]|\{{2}odn\|[^}]+\}{2}|\{{2}link-interwiki.+?\})/gi, function(a, fil) {
fil = fil.replace(/\'/g, 'foosEpulKC');
return fil;});
str = str.replace(/(\{{2}(?:commonscat|(?:główny|osobny) artykuł|main)\|[^}]+)\'([^}]+\}{2})/gi, '$1foosEpulKC$2');
str = str.replace(/(\{{2}(?:commonscat|(?:główny|osobny) artykuł|main)\|[^}]+)\'([^}]+\}{2})/gi, '$1foosEpulKC$2');
str = str.replace(/(\|(?:commons|muzeum) *= *[^\n|}]+)\'([^\n|}]*)\'([^\n|}]*)\'([^\n|}]*)\'([^\n|}]*[\n|}])/gi, '$1foosEpulKC$2foosEpulKC$3foosEpulKC$4foosEpulKC$5');
str = str.replace(/(\|(?:commons|muzeum) *= *[^\n|}]+)\'([^\n|}]*)\'([^\n|}]*[\n|}])/gi, '$1foosEpulKC$2foosEpulKC$3');
str = str.replace(/(\|(?:commons|muzeum) *= *[^\n|}]+)\'([^\n|}]*[\n|}])/gi, '$1foosEpulKC$2');
// DYWIZ (D)
str = str.replace(/(-[^\n{}[\]]*\.(gif|jpe?g|og[agv]|png|svg|tiff?)[\n |\]]|<ref +(group|name)[^>]+?>)/gi, function(a, fil) {
fil = fil.replace(/-/g, 'foosEpulKD');
return fil;});
str = str.replace(/(<gallery>[\s\S]+?<\/gallery>)/gi, function(a, fil) {
fil = fil.replace(/-/g, 'foosEpulKD');
return fil;});
str = str.replace(/(\|(?:commons|muzeum) *= *[^\n|}]+)-([^\n|}]*)-([^\n|}]*[\n|}])/gi, '$1foosEpulKD$2foosEpulKD$3');
str = str.replace(/(\|(?:commons|muzeum) *= *[^\n|}]+)-([^\n|}]*[\n|}])/gi, '$1foosEpulKD$2');
str = str.replace(/(_(?:Hi|MEAN|Lo)_°C = )-(\d)/gi, '$1foosEpulKD$2');
// MINUS (E)
str = str.replace(/\{{2}Chem/g, '\u2553');
str = str.replace(/\{{2}chem/g, '\u2554');
str = str.replace(/\}{2}/g, '\u2555');
str = str.replace(/([\u2553\u2554][^\u2553\u2554\u2555]+\u2555)/g, function(a, fil) {
fil = fil.replace(/−/g, 'foosEpulKE');
return fil;});
str = str.replace(/\u2555/g, '}}');
str = str.replace(/\u2554/g, '{{chem');
str = str.replace(/\u2553/g, '{{Chem');
str = str.replace(/(\{{2})−(\}{2})/g, '$1foosEpulKE$2');
// GRAVE ACCENT (G)
str = str.replace(/(`[^\n{}[\]]*\.(?:gif|jpe?g|og[agv]|png|svg|tiff?)[\n |\]])/gi, function(a, fil) {
fil = fil.replace(/`/g, 'foosEpulKG');
return fil;});
str = str.replace(/\|`\|/g, '|foosEpulKG|');
// CAL (L)
str = str.replace(/([^\d]\d{1,2}|[½¼¾])"/g, '$1foosEpulKL');
// PAUZA (M)
str = str.replace(/(—[^\n{}[\]]*\.(?:gif|jpe?g|og[agv]|png|svg|tiff?)[\n |\]])/gi, function(a, fil) {
fil = fil.replace(/—/g, 'foosEpulKM');
return fil;});
// PP (N)
str = str.replace(/(–[^\n{}[\]]*\.(?:gif|jpe?g|og[agv]|png|svg|tiff?)[\n |\]])/gi, function(a, fil) {
fil = fil.replace(/–/g, 'foosEpulKN');
return fil;});
str = str.replace(/(https?:\/{2}[^\n –]*)–([^\n –]*)–([^\n –]*)–([^\n –]*)–([^\n –]*)–([^\n –]*)–([^\n –]*)–([^\n –]*)–/gi, '$1foosEpulKN$2foosEpulKN$3foosEpulKN$4foosEpulKN$5foosEpulKN$6foosEpulKN$7foosEpulKN$8foosEpulKN');
str = str.replace(/(https?:\/{2}[^\n –]*)–([^\n –]*)–([^\n –]*)–([^\n –]*)–/gi, '$1foosEpulKN$2foosEpulKN$3foosEpulKN$4foosEpulKN');
str = str.replace(/(https?:\/{2}[^\n –]*)–([^\n –]*)–/gi, '$1foosEpulKN$2foosEpulKN');
str = str.replace(/(https?:\/{2}[^\n –]*)–/gi, '$1foosEpulKN');
// PRZECINEK (P)
str = str.replace(/(,[^\n{}[\]]*\.(?:gif|jpe?g|og[agv]|png|svg|tiff?)[\n |\]])/gi, function(a, fil) {
fil = fil.replace(/,/g, 'foosEpulKP');
return fil;});
str = str.replace(/,( +\(\d+\))/gi, 'foosEpulKP$1');
// SPC (S)
str = str.replace(/(\n *\| *pochodne) (\? *=)/g, '$1\u2552$2');
str = str.replace(/( [^\n{}[\]]*\.(?:gif|jpe?g|og[agv]|png|svg|tiff?)[\n |\]])/gi, function(a, fil) {
fil = fil.replace(/ /g, '\u2552');
return fil;});
str = str.replace(/([αβγδεζηθικλμνξοπρσςτυφχψω]) ( *\][^\]])/g, '$1\u2552$2');
str = str.replace(/ (:-*\))/g, '\u2552$1');
str = str.replace(/ (:{2})/g, '\u2552$1');
str = str.replace(/ (\.NET)/g, '\u2552$1');
str = str.replace(/ (\.\d+em)/g, '\u2552$1');
str = str.replace(/(\d *?) (:)/g, '$1\u2552$2');
str = str.replace(/(nabój) (\.\d)/g, '$1\u2552$2');
str = str.replace(/([=|] *?) (\.)/g, '$1\u2552$2');
str = str.replace(/(\}{2}) (?=\}\})/g, '$1\u2552');
str = str.replace(/(\{{2}familytree.+) (\}{2})/g, '$1\u2552$2');
str = str.replace(/([^[]\[) ([A-Ha-h][^\]]*) (\][^\]])/g, '$1\u2552$2\u2552$3');
// IKS(W)
str = str.replace(/(\{\{.+?\}\})/g, function(a, fil) {
fil = fil.replace(/x/g, 'foosEpulKW');
return fil;});
// CUDZYSLOW ”(Y)
str = str.replace(/(.+(gif|jpe?g|og[agv]|png|svg|tiff?)[\n|\]])/gi, function(a, fil) {
fil = fil.replace(/”/g, 'foosEpulKY');
return fil;});
// CUDZYSLOW (Z)
str = str.replace(/(".*\.(?:gif|jpe?g|og[agv]|png|svg|tiff?)[\n |\]])/gi, function(a, fil) {
fil = fil.replace(/"/g, 'foosEpulKZ');
return fil;});
str = str.replace(/(\{{2}(sortkey|wikinews).+?\}{2})/gi, function(a, fil) {
fil = fil.replace(/"/g, 'foosEpulKZ');
return fil;});
str = str.replace(/(\|(?:commons|muzeum) *= *[^\n|}]+)"([^\n|}]*)"([^\n|}]*)"([^\n|}]*)"([^\n|}]*[\n|}])/gi, '$1foosEpulKZ$2foosEpulKZ$3foosEpulKZ$4foosEpulKZ$5');
str = str.replace(/(\|(?:commons|muzeum) *= *[^\n|}]+)"([^\n|}]*)"([^\n|}]*[\n|}])/gi, '$1foosEpulKZ$2foosEpulKZ$3');
str = str.replace(/(\|(?:commons|muzeum) *= *[^\n|}]+)"([^\n|}]*[\n|}])/gi, '$1foosEpulKZ$2');
str = str.replace(/((?:\|-|[ !|=])style *= *)["„”“]((?:\{{2}.+?\}{2}|[^\n"„”“])+?)(?:["„”“]|foosEpulKL)/gi, '$1foosEpulKZ$2foosEpulKZ');
// 138
str = str.replace(/(\{)([^'[\]{}<>|]+)\'([^'[\]{}<>|]+)\'([^'[\]{}<>|]+)\'([^'[\]{}<>|]+)\'([^'[\]{}<>|]+)(\}|\|)/g, '$1$2foosEpulKC$3foosEpulKC$4foosEpulKC$5foosEpulKC$6$7');
str = str.replace(/(\{)([^'[\]{}<>|]+)\'([^'[\]{}<>|]+)\'([^'[\]{}<>|]+)\'([^'[\]{}<>|]+)(\}|\|)/g, '$1$2foosEpulKC$3foosEpulKC$4foosEpulKC$5$6');
str = str.replace(/(\{)([^'[\]{}<>|]+)\'([^'[\]{}<>|]+)\'([^'[\]{}<>|]+)(\}|\|)/g, '$1$2foosEpulKC$3foosEpulKC$4$5');
str = str.replace(/(\{)([^'[\]{}<>|]+)\'([^'[\]{}<>|]+)(\}|\|)/g, '$1$2foosEpulKC$3$4');
// 148
str = str.replace(/(<ref (?:group|name)[^>]+?)\'(.+?>)/g, '$1foosEpulKC$2');
// 147
str = str.replace(/(\[{2}|\{)([^–[\]{}<>|]+)–([^–[\]{}<>|]+)(\]{2}|\}|\|)/g, '$1$2foosEpulKN$3$4');
str = str.replace(/(\n\{{2}SORTUJ:.+?\}{2})/gi, function(a, fil) {
fil = fil.replace(/foosEpulKC/g, '\'');
return fil;});
// SPRZED LOCKOW PRZENIESIONE
// 176
str = str.replace(/(\n *\|[- a-ząćęłńóśźż]*(aktywność|lata|[- .\w]+okres|rok|wysokość)([ _][ a-ząćęłńóśźż]+)? *=(?:[-–—−‒―÷ \d[\]]|<br *\/*>|do|od|ok\.)+(?=\n))/gi, function(a, fil) {
fil = fil.replace(/(\d) *[-–—−‒―÷] *(\d)/g, '$1–$2');
fil = fil.replace(/(\d{4})–(\d{2})–/g, '$1-$2-');
return fil;});
str = str.replace(/(\[{2})(\d+)([ \u2552](?:stycznia|lutego|marca|kwietnia|maja|czerwca|lipca|sierpnia|września|października|listopada|grudnia))\|\2 [IVX]+(\]{2})/g, '$1$2$3$4');
str = str.replace(/(\[{2}\d{1,2}[ \u2552](?:stycznia|lutego|marca|kwietnia|maja|czerwca|lipca|sierpnia|września|października|listopada|grudnia)\|\d{1,2}\]{2}) *(?:[-–—−‒―÷]) *(\[{2}\d{1,2}[ \u2552](?:stycznia|lutego|marca|kwietnia|maja|czerwca|lipca|sierpnia|września|października|listopada|grudnia)\]{2})/g, '$1–$2');
str = str.replace(/([ (|]\d{1,2})[-–—−‒―÷]((?:\[{2})?\d{1,2}[ \u2552](?:stycznia|lutego|marca|kwietnia|maja|czerwca|lipca|sierpnia|września|października|listopada|grudnia))/g, '$1–$2');
str = str.replace(/(\n \|[^\n=|]+ = \d{1,2}) *– *((?:\[{2})?\d{1,2}[ \u2552](?:stycznia|lutego|marca|kwietnia|maja|czerwca|lipca|sierpnia|września|października|listopada|grudnia))/g, '$1–$2');
str = str.replace(/(\[{2}\d[ \u2552](?:stycznia|lutego|marca|kwietnia|maja|czerwca|lipca|sierpnia|września|października|listopada|grudnia)\|)0(\d\.)/gi, '$1$2');
// STARTOWE
// 146
str = str.replace(/(\({2}) (.*?) (\){2})/g, '$1\u2552$2\u2552$3');
str = str.replace(/ +(\)[,;:.!?…*\]]*\n)/g, '$1');
str = str.replace(/ +(\)[,;:.!?…*\]]*) */g, '$1 ');
str = str.replace(/ ?\( /g, ' (');
str = str.replace(/\(([A-Za-zĄĆĘŁŃÓŚŹŻąćęłńóśźż]{1,2})(\[{2})/g, '$1 $2');
str = str.replace(/([IVX])[−‒―]/g, '$1–');
str = str.replace(/[−‒―]([IVX])/g, '–$1');
str = str.replace(/[−‒―](\n)/g, '–$1');
str = str.replace(/ [−‒―] /g, ' – ');
str = str.replace(/(\n[ #*]+(?:\[{2})?\d{1,4}(?:\]{2})?)[−‒―]([\n ]|(?:\[{2})?\d{1,4}[^\d])/g, '$1–$2');
str = str.replace(/((?:lat(?:a(?:ch|mi)?|om)?) (?:\[{2})?\d{1,4}(?:\]{2})?)[−‒―]([\n ]|(?:\[{2})?\d{1,4}[^\d])/gi, '$1–$2');
str = str.replace(/−([\d∞])/g, 'foosEpulKE$1');
str = str.replace(/(\d)−/g, '$1foosEpulKE');
str = str.replace(/(<su[bp]>\'*)−/g, '$1foosEpulKE');
str = str.replace(/−(\'*<\/su[bp]>)/g, 'foosEpulKE$1');
str = str.replace(/(<su([bp])>)[-–—−‒―](\d+|<\/su\2>)/g, '$1foosEpulKE$3');
str = str.replace(/(<su([bp])>\d+)[-–—−‒―](<\/su\2>)/g, '$1foosEpulKE$3');
str = str.replace(/−/g, '–');
str = str.replace(/([!\|] *[\d,.]+)( | )+(\+ *[\n!\|])/g, '$1$3');
str = str.replace(/([^|]) +(\'{2,5}\n)/g, '$1$2');
str = str.replace(/(\n\'{2,5}) +/g, '$1');
str = str.replace(/(\n\'{5}[^\n']+?) +(\'{5}) +/g, '$1$2 ');
str = str.replace(/(\n\'{3}[^\n']+?) +(\'{3}) +/g, '$1$2 ');
str = str.replace(/(\n\'{2}[^\n']+?) +(\'{2}) +/g, '$1$2 ');
str = str.replace(/([^\'])(\'{2})(\()([^\n()]+)(\))(\'{2})([^\'])/g, '$1$3$2$4$6$5$7');
str = str.replace(/([^\n]<!-)-+(.+?)-+(->[^\n])/g, '$1-$2-$3');
str = str.replace(/(\d +[IVX]{1,4} +\d{4}) *(?:[-–—−‒―÷]|foosEpulKE) *([\dIVX])/g, '$1 – $2');
str = str.replace(/(\d{4}\]*) *(?:[-–—−‒―÷]|foosEpulKE) *(\[{2}\d{4})\|\d{1,2}(\]{2})/g, '$1–$2$3');
str = str.replace(/(\d{4}\]*) *([/]) *(\[{2}\d{4})\|\d{1,2}(\]{2})/g, '$1$2$3$4');
str = str.replace(/([ (](?:lat(?:om|ami|ach|a)?) \[*)(\d{1,3})(\d{1}\]*)(?:[-–—−‒―÷]|foosEpulKE)(\d{1}[^\d])/g, '$1$2$3–$2$4');
str = str.replace(/([ (](?:lat(?:om|ami|ach|a)?) \[*)(\d{1,2})(\d{2}\]*)(?:[-–—−‒―÷]|foosEpulKE)(\d{2}[^\d])/g, '$1$2$3–$2$4');
str = str.replace(/(\|(?:lat(?:a?(?:mi|ch)?|om)?)(?: | )\d0\.\]{2})(?: | )*(?:[-–—−‒―÷]|foosEpulKE)(?: | )*(\[{2}lata[ \u2552]\d0\.[ \u2552][IVX]+[ \u2552]wieku\|\d0\.\]{2})/g, '$1–$2');
str = str.replace(/(\| *tytuł *=[^|}]+?\.? : )([a-ząćęłńóśźż])([^|}]+?\.? : )([a-ząćęłńóśźż])([^|}]+?\.? : )([a-ząćęłńóśźż])([^|}]+?\.? : )([a-ząćęłńóśźż])/g, function(a, fil, kon, filb, konb, filc, konc, fild, kond) {
fil = fil.replace(/([^|}]+?)\.? : /g, '$1. ');
filb = filb.replace(/([^|}]+?)\.? : /g, '$1. ');
filc = filc.replace(/([^|}]+?)\.? : /g, '$1. ');
fild = fild.replace(/([^|}]+?)\.? : /g, '$1. ');
return fil + kon.toUpperCase() + filb + konb.toUpperCase() + filc + konc.toUpperCase() + fild + kond.toUpperCase();});
str = str.replace(/(\| *tytuł *=[^|}]+?\.? : )([a-ząćęłńóśźż])([^|}]+?\.? : )([a-ząćęłńóśźż])/g, function(a, fil, kon, filb, konb) {
fil = fil.replace(/([^|}]+?)\.? : /g, '$1. ');
filb = filb.replace(/([^|}]+?)\.? : /g, '$1. ');
return fil + kon.toUpperCase() + filb + konb.toUpperCase();});
str = str.replace(/(\| *tytuł *=[^|}]+?\.? : )([a-ząćęłńóśźż])/g, function(a, fil, kon) {
fil = fil.replace(/([^|}]+?)\.? : /g, '$1. ');
return fil + kon.toUpperCase();});
str = str.replace(/((?: | )*\.+(?: | )+\.+(?:[ .]| )*)/g, function(a, fil, insa, insb, insc) {
fil = fil.replace(/ /g, '\u2553');
fil = fil.replace(/ /g, '\u2554');
return fil;});
str = str.replace(/ +(\.[^.])/g, '$1');
str = str.replace(/\u2554/g, ' ');
str = str.replace(/\u2553/g, ' ');
str = str.replace(/ +, ?([^,])/g, ', $1');
str = str.replace(/ +: ?([^:=?])/g, ': $1');
str = str.replace(/([^-–—−‒―÷=:]) +(\?)/g, '$1$2');
str = str.replace(/([^-–−]) +([,;:.…!?'‘’"„”“′″‴)\]]+\n)/g, '$1$2');
str = str.replace(/(\n *)(\{\|.*|\|-.*)(\n)\n+/g, '$1$2$3');
str = str.replace(/\n+(\n *)(\|-|\|\})/g, '$1$2');
str = str.replace(/(\n[!|])\| ?/g, '$1 ');
str = str.replace(/((?:<\/ref>|<ref (?:group|name)[^\/>]+\/>|\{{2}(?:odn|[ru])\|[^}]+\}{2})[,;:.!?])([^\n '<.…!?|}])/g, '$1 $2');
str = str.replace(/(<ref (?:group|name)=[^>]+?) +<\/ref(>)/g, '$1$2');
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(/,(\]{2})/g, ']],');
str = str.replace(/\[{2}(kilogram|(?:mili|centy|kilo)?metr(?:[ \u2552](?:kwadratowy|sześcienny))?|tysiąc|milion|miliard|bilion|biliard)\]{2}/gi, '$1');
str = str.replace(/\[{2}(?:kilogram|(?:mili|centy|kilo)?metr(?:[ \u2552](?:kwadratowy|sześcienny))?|tysiąc|milion|miliard|bilion|biliard)\|([^[\]]+)\]{2}/gi, '$1');
str = str.replace(/\[{2}kilometr na godzinę\|(km\/h)\]{2}/gi, '$1');
str = str.replace(/\[{2}procent\|(%|proc\.)\]{2}/gi, '$1');
str = str.replace(/(\d)(?: | )([km]?g|[ckmnpμ]?m|°[CFС])((?: | )(?:[x×]|do|na) \d[-–,.\d]*(?: | )\2[\n ,;:.<!?){])/g, '$1$3');
str = str.replace(/(\d)(?: | )([km]?g|[ckmnpμ]?m|°[CFС])(?: | )(?:[-–—−‒―÷])(?: | )(\d[,.\d]*(?: | )\2[\n ,;:.<!?){])/g, '$1–$3');
str = str.replace(/((?:[\n ]| )['([]*\d[,.\d]*)([%‰])(?: | )*(?:[-–—−‒―÷])(?: | )*(\d[,.\d]*\2[\n ,;:.<!?){])/g, '$1–$3');
str = str.replace(/(\d)(?:°(?: | )?(?:[-–—−‒―÷])(?: | )?|[-–—−‒―÷])(\d+[,.]?\d*(?: | )?(?:(\[{2}[Ss]kala[ \u2552](?:[Bb]allinga|[Cc]elsjusza|[Ff]ahrenheita)\|)?°(?: | )?(?:[CFС]|Blg|Rø)(\]{2})?))(?=[\n ,;:.…!?)\/<{\]'’"”])/g, '$1–$2');
// 153
str = str.replace(/([^\d]\d{1,2}) +styczeń +(\d{1,4}[^\d])/gi, '$1 stycznia $2');
str = str.replace(/([^\d]\d{1,2}) +luty +(\d{1,4}[^\d])/gi, '$1 lutego $2');
str = str.replace(/([^\d]\d{1,2}) +marzec +(\d{1,4}[^\d])/gi, '$1 marca $2');
str = str.replace(/([^\d]\d{1,2}) +kwiecień +(\d{1,4}[^\d])/gi, '$1 kwietnia $2');
str = str.replace(/([^\d]\d{1,2}) +maj +(\d{1,4}[^\d])/gi, '$1 maja $2');
str = str.replace(/([^\d]\d{1,2}) +czerwiec +(\d{1,4}[^\d])/gi, '$1 czerwca $2');
str = str.replace(/([^\d]\d{1,2}) +lipiec +(\d{1,4}[^\d])/gi, '$1 lipca $2');
str = str.replace(/([^\d]\d{1,2}) +sierpień +(\d{1,4}[^\d])/gi, '$1 sierpnia $2');
str = str.replace(/([^\d]\d{1,2}) +wrzesień +(\d{1,4}[^\d])/gi, '$1 września $2');
str = str.replace(/([^\d]\d{1,2}) +październik +(\d{1,4}[^\d])/gi, '$1 października $2');
str = str.replace(/([^\d]\d{1,2}) +listopad +(\d{1,4}[^\d])/gi, '$1 listopada $2');
str = str.replace(/([^\d]\d{1,2}) +grudzień +(\d{1,4}[^\d])/gi, '$1 grudnia $2');
str = str.replace(/([^\d])0(\d (?:stycznia|lutego|marca|kwietnia|maja|czerwca|lipca|sierpnia|września|października|listopada|grudnia) \d{1,4}[^\d])/gi, '$1$2');
str = str.replace(/(\d{3,4}(?:\]{2})?)[-–]((?:\[{2})?\d{1,2}[ \u2552](?:stycznia|lutego|marca|kwietnia|maja|czerwca|lipca|sierpnia|września|października|listopada|grudnia))/g, '$1 – $2');
str = str.replace(/(\d{3,4}(?:\]{2})?)[-–]((<br *\/*>)(?:\[{2})?\d{1,2}[ \u2552](?:stycznia|lutego|marca|kwietnia|maja|czerwca|lipca|sierpnia|września|października|listopada|grudnia))/g, '$1 –$2');
str = str.replace(/(\[{2}(?:[^[|\]]+\|)?\d{1,4}\]{2}) *[-–—−]+ *(\[{2}(?:[^[|\]]+\|)?\d{1,4}\]{2})/g, '$1–$2');
str = str.replace(/([\n (]\'*(?:dniach|lat(?:om|ami|ach|a)?) \'*(?:\[{2})?\d{1,4}(?:\]{2})?\'*) *[-–—−]+ *(\'*(?:\[{2})?\d{1,4})/gi, '$1–$2');
str = str.replace(/((?:lat(?:om|ami|ach|a)?) \d{1,4}–\d{1,4}) r\.+([,;:)]| [a-ząćęłńóśźż])/g, '$1$2');
str = str.replace(/([ (/]\[{2}\d{1,4}\]{2})[-—−‒―÷](\d{1,4})/gi, '$1–$2');
str = str.replace(/([ (/]\d{1,4})[-—−‒―÷](\[{2}\d{1,4})/gi, '$1–$2');
str = str.replace(/\[{2}(styczeń|luty|marzec|kwiecień|maj|czerwiec|lipiec|sierpień|wrzesień|październik|listopad|grudzień)\]{2}/gi, '$1');
str = str.replace(/\[{2}(?:styczeń|luty|marzec|kwiecień|maj|czerwiec|lipiec|sierpień|wrzesień|październik|listopad|grudzień)\|([^|\]]+)\]{2}/gi, '$1');
// TECHNICZNE
str = str.replace(/(\n)(?:\n|<br *\/*>)+(\n)/g, '$1$2');
str = str.replace(/(?:\n|<br *\/*>)+(\n{2})/g, '$1');
str = str.replace(/(\n{2})(?:\n|<br *\/*>)+/g, '$1');
str = str.replace(/(?:<br *\/*>)+(\n *\|)/g, '$1');
// Plik
str = str.replace(/(\[{2}Plik:)\u2552+/gi, '$1');
str = str.replace(/(\n) +(\[{2}Plik:)/gi, '$1$2');
str = str.replace(/(<br *\/*> *)\n/g, '$1\u2553');
str = str.replace(/\n(<br *\/*>)/g, '\u2553$1');
str = str.replace(/(\{{2}[^}]+\}{2})/g, function (a, fil) {
fil = fil.replace(/\n/g, '\u2553');
return fil;});
str = str.replace(/(\n\[{2}Plik:[^\n[\]]+?(?:\[{2}[^[\n\]]+?\]{2}[^\n\]]*?)*) *\n([^#*:;<{])/gi, '$1 $2');
str = str.replace(/\u2553/g, '\n');
str = str.replace(/(\[{2}Plik:[^\n<>[\]]+\| *)<small>([^\n<>]+)<\/small>( *\]{2})/gi, '$1$2$3');
str = str.replace(/(\[{2}Plik:[^\n\]{]+?)\u2552*(\|) +([^\n\]]+?) *(\|) +([^\n\]]+?) *(\|) +([^\n\]]+?) *(\|) +/gi, '$1$2$3$4$5$6$7$8');
str = str.replace(/(\[{2}Plik:[^\n\]{]+?)\u2552+(\|) *([^\n\]]+?) +(\|) *([^\n\]]+?) +(\|) *([^\n\]]+?) +(\|) */gi, '$1$2$3$4$5$6$7$8');
str = str.replace(/(\[{2}Plik:[^\n\]{]+?)\u2552*(\|) +([^\n\]]+?) *(\|) +/gi, '$1$2$3$4');
str = str.replace(/(\[{2}Plik:[^\n\]{]+?)\u2552+(\|) *([^\n\]]+?) +(\|) */gi, '$1$2$3$4');
str = str.replace(/(\[{2}Plik:[^\n\]{]+?)\u2552*(\|) +/gi, '$1$2');
str = str.replace(/(\[{2}Plik:[^\n\]{]+?)\u2552+(\|) */gi, '$1$2');
str = str.replace(/(\[{2}Plik:[^\n\]{]+?\|)\|+/gi, '$1');
str = str.replace(/(\[{2}[Pp]lik:[^\]]+\|upright) *(=) *(\d)/gi, '$1$2$3');
// 162
str = str.replace(/(Plik:)/gi, '\n$1');
str = str.replace(/(Plik:[^|]+(?:gif|jpe?g|og[agv]|png|svg|tiff?)(?:(?:\|(?:bezramki|border|frame(?:less)?|mały|thumb|center|centruj|left|lewo|none|prawo|right|upright[=\d,.]*|\d+(?:x\d+)? *px))*))(\|.+?)((?:\|(?:bezramki|border|frame(?:less)?|mały|thumb|center|centruj|left|lewo|none|prawo|right|upright[=\d,.]*|\d+(?:x\d+)? *px))+)(\n|\]{2})/gi, '$1$3$2$4');
str = str.replace(/(Plik:[^|]+(?:gif|jpe?g|og[agv]|png|svg|tiff?)(?:(?:\|(?:bezramki|border|frame(?:less)?|mały|thumb|center|centruj|left|lewo|none|prawo|right|upright[=\d,.]*))*)\|\d+(?:x\d+)?) (px\|)/gi, '$1$2');
str = str.replace(/(Plik:[^|]+(?:gif|jpe?g|og[agv]|png|svg|tiff?))((?:(?:\|(?:bezramki|border|center|centruj|frame(?:less)?|left|lewo|mały|none|prawo|right|thumb|\d+(?:x\d+)?px)))+)(\|(?:upright[=\d,.]*))(\||\]{2})/gi, '$1$3$2$4');
str = str.replace(/(Plik:[^|]+(?:gif|jpe?g|og[agv]|png|svg|tiff?))((?:(?:\|(?:center|centruj|left|lewo|none|prawo|right|upright[=\d,.]*|\d+(?:x\d+)?px)))+)(\|(?:bezramki|border|frame(?:less)?|mały|thumb))(\||\]{2})/gi, '$1$3$2$4');
str = str.replace(/(Plik:[^|]+(?:gif|jpe?g|og[agv]|png|svg|tiff?)(?:\|(?:bezramki|border|frame(?:less)?|mały|thumb|upright[=\d,.]*))*)(\|\d+(?:x\d+)?px)(\|(?:center|centruj|left|lewo|none|prawo|right))(\||\]{2})/gi, '$1$3$2$4');
str = str.replace(/\n(Plik:)/gi, '$1');
// 167
str = str.replace(/(\[{2}Plik:.+?\|(?:bezramki|frame(?:less)?|mały|thumb)(?:[^[\]]|\[{2}[^[\]]+\]{2})+\]{2}) *(?=[^\n])/g, '$1\n');
str = str.replace(/(\n\[{2}Plik:)/g, '$1a[[a]]');
str = str.replace(/\[{2}Plik:/gi, '\u2553');
str = str.replace(/(\u2553.+?\|(?:bezramki|frame(?:less)?|mały|thumb).+?(?:\[{2}[^[\n]+?\]{2}[^\n[\]]*)+\]{2}) *(?=\u2553.+?\|(?:bezramki|frame(?:less)?|mały|thumb))/g, '$1\n');
str = str.replace(/(foopROteZa)\n*((?:\n\u2553.+?(?:\[{2}[^[\n]+?\]{2}[^\n[\]]*)+\]{2})+)\n*((?:\n\u2553.+?(?:\[{2}[^[\n]+?\]{2}[^\n[\]]*)+\]{2})+)\n*((?:\n\u2553.+?(?:\[{2}[^[\n]+?\]{2}[^\n[\]]*)+\]{2})+)\n*((?:\n\u2553.+?(?:\[{2}[^[\n]+?\]{2}[^\n[\]]*)+\]{2})+)\n*((?:\n\u2553.+?(?:\[{2}[^[\n]+?\]{2}[^\n[\]]*)+\]{2})+)/g, '$1$2$3$4$5$6');
str = str.replace(/(foopROteZa)\n*((?:\n\u2553.+?(?:\[{2}[^[\n]+?\]{2}[^\n[\]]*)+\]{2})+)\n*((?:\n\u2553.+?(?:\[{2}[^[\n]+?\]{2}[^\n[\]]*)+\]{2})+)\n*((?:\n\u2553.+?(?:\[{2}[^[\n]+?\]{2}[^\n[\]]*)+\]{2})+)/g, '$1$2$3$4');
str = str.replace(/(foopROteZa)\n*((?:\n\u2553.+?(?:\[{2}[^[\n]+?\]{2}[^\n[\]]*)+\]{2})+)\n*((?:\n\u2553.+?(?:\[{2}[^[\n]+?\]{2}[^\n[\]]*)+\]{2})+)/g, '$1$2$3');
str = str.replace(/\u2553/gi, '[[Plik:');
str = str.replace(/(\n\[{2}Plik:)a\[{2}a\]{2}/g, '$1');
str = str.replace(/(\{{2}spis treści)\|right(\}{2})/gi, '$1$2');
str = str.replace(/(\{{2}inne[ \u2552]znaczenia(?:\{{2}[^{}]+\}{2}|[^{}])+\}{2}(?: *-->| *)*)([^\n])/gi, '$1\n$2');
str = str.replace(/(\[{2}[^[|\]]+\|[^[|\]]+)(-)(\]{2})(\[{2})/g, '$1$3$2$4');
// refy
str = str.replace(/\n+(<ref(?: +(?:group|name)[^>]+)?>|\{{2}(?:odn|[ru])\|[^}]+\}{2})/g, '$1');
str = str.replace(/(\]*[a-zA-ZąćęłńóśźżĄĆĘŁŃÓŚŹŻ]\]*[aeiouyąę])\.([']*(?:<ref[\s\S]+?(?:<\/ref|\/)>|\{{2}(?:odn|[ru])\|[^}]+\}{2})+)/gi, '$1$2.');
str = str.replace(/((\{{2}r\|[^={}]+\}{2})+)/g, function(a, fil, ins) {
fil = fil.replace(/\}{2}\{{2}r/g, '');
return fil;});
str = str.replace(/(<ref(?: +(?:group|name)[^\/>]+)?>)(?:[ \u2552*↑]| )*(['‘’"„”“]*)(?:[ \u2552*↑]| )*/g, '$1$2');
str = str.replace(/(<ref>|<ref (?:group|name)[^>]+?>)>([^<>]+?)(<\/ref>)/g, '$1$2$3');
str = str.replace(/(<ref>|<ref (?:group|name)[^>]+?>)([^<>]+?)<(<\/ref>)/g, '$1$2$3');
str = str.replace(/,(\'*<ref.+?<\/ref>[,;:.…!?])/g, '$1');
str = str.replace(/(<\/ref>,) ,/g, '$1');
str = str.replace(/(\[{2}\d{1,4}\]{2}(?: | )*r)(<ref)/g, '$1.$2');
str = str.replace(/([$²³])\.((?:<ref(?: +(?:group|name)[^\/>]+)?>[^<]+<\/ref>|<ref (?:group|name)[^\/>]+\/>|\{{2}(?:odn|[ru])\|[^}]+\}{2})+)\.?/g, '$1$2.');
str = str.replace(/((?: | )(?:€|[bm]l[dn]|dB|[μmk]g|[nμmcdk]?m|m?Ah|(?:\[{2}[Hh]erc\|)?[kMGT]?Hz(?:\]{2})?|°[CFС]|st\.(?: | )C|os[oó]by?|tony?|zł))\.((?:<ref(?: +(?:group|name)[^\/>]+)?>[^<]+<\/ref>|<ref (?:group|name)[^\/>]+\/>|\{{2}(?:odn|[ru])\|[^}]+\}{2})+)\.?/g, '$1$2.');
// 108
str = str.replace(/ *([,;.…!?'‘’"„“”°′″)\]}]+) *(<\/?ref)/g, '$1$2');
str = str.replace(/(<ref>|<ref (?:group|name)=[^\/>]+>)[,;:.]? +/g, '$1');
str = str.replace(/[ ,;]+(<\/ref>)/g, '$1');
str = str.replace(/(<\/ref>)( +)([,;:.!?])/g, '$1$3');
// 110
str = str.replace(/([^\n.…!?}])(\n*<\/ref>)/g, '$1.$2');
// 111
str = str.replace(/([.…!?](?:\'|<!--[^>]+-->)*\])\.(<\/ref>)/g, '$1$2');
str = str.replace(/([.…]\'+)\.(<\/ref>)/g, '$1$2');
str = str.replace(/(\.(?:\'{2,5})?\]{2})\.(<\/ref>)/g, '$1$2');
str = str.replace(/(\{{2}cytuj[^}]+?\}{2})\.(<\/ref)/gi, '$1$2');
str = str.replace(/(\{{2}(?:fakt|isbn|lang|odn)[^{}]*?\}{2})(<\/ref>)/gi, '$1.$2');
str = str.replace(/(\{{2}(?:Dziennik Ustaw|Monitor Polski) *\|[^}]+?\}{2})(<\/ref>)/gi, '$1.$2');
str = str.replace(/(\{{2}(Dziennik Ustaw|Monitor Polski)[^{}]+\}{2})/g, function(a, fil) {
fil = fil.replace(/\|\}\}/g, '}}');
fil = fil.replace(/ *\| */g, '|');
return fil;});
// 112
str = str.replace(/(<\/ref>\.) ?\.([\n ])/g, '$1$2');
str = str.replace(/(<\/ref>),\./g, '$1.');
str = str.replace(/(<\/ref>)(\()/g, '$1 $2');
str = str.replace(/(>\.)\.([\n ])/g, '$1$2');
str = str.replace(/ +(\'{2,5}<\/ref)/g, '$1');
str = str.replace(/(\{{2}[Cc]ytuj.+?\}{2}\])\.(<\/ref)/g, '$1$2');
// 145
str = str.replace(/<!--/g, '\u2553');
str = str.replace(/-->/g, '\u2554');
str = str.replace(/(&[a-z]+);/g, '$1\u2555');
str = str.replace(/(\'*[,;:]\'*)((?:<ref(?: +(?:group|name)[^\/>]+)?>[^<]+<\/ref>|<ref (?:group|name)[^\/>]+\/>|\{{2}(?:odn|[ru])\|[^}]+\}{2})+)/g, '$2$1');
str = str.replace(/(\'+\.)((?:<ref(?: +(?:group|name)[^\/>]+)?>[^<]+<\/ref>|<ref (?:group|name)[^\/>]+\/>|\{{2}(?:odn|[ru])\|[^}]+\}{2})+)/g, '$2$1');
str = str.replace(/([\w)]{5})(\.)(\'+(?:<ref(?: +(?:group|name)[^\/>]+)?>[^<]+<\/ref>|<ref (?:group|name)[^\/>]+\/>|\{{2}(?:odn|[ru])\|[^}]+\}{2})+)\.?/g, '$1$3$2');
str = str.replace(/(%)(\.)((?:<ref(?: +(?:group|name)[^\/>]+)?>[^<]+<\/ref>|<ref (?:group|name)[^\/>]+\/>|\{{2}(?:odn|[ru])\|[^}]+\}{2})+)/g, '$1$3$2');
str = str.replace(/((?:<ref(?: +(?:group|name)[^\/>]+)?>)(?:\[(?:ftp|hcodep|https?):\/{2}[^ \]]+ )?)[-–—−‒― •]+/gi, '$1');
str = str.replace(/([^.]\.['\]]*(?:<ref(?: +(?:group|name)[^\/>]+)?>[^<]+<\/ref>|<ref (?:group|name)[^\/>]+\/>|\{{2}(?:odn|[ru])\|[^}]+\}{2})+)\.([^.])/g, '$1$2');
str = str.replace(/\u2555/g, ';');
str = str.replace(/\u2554/g, '-->');
str = str.replace(/\u2553/g, '<!--');
// 109
str = str.replace(/((<ref( +(group|name)[^\/>]+)?>)['‘’"„”“]*(\[{2}[^|\]]+\|)?)([a-ząćęłńóśźż])/g, function (a, poca, pocb, pocc, pocd, poce, fil) {
return poca + fil.toUpperCase();});
str = str.replace(/(<ref( +(group|name)[^\/>]+)?>['‘’"„”“]*\[{2})([a-ząćęłńóśźż])([^|\]]*?\]{2})/g, function (a, poca, pocb, pocc, fil, kon) {
return poca + fil.toUpperCase() + kon;});
str = str.replace(/(<ref(?: +(?:group|name)[^\/>]+)?>)Ftp/g, '$1ftp');
str = str.replace(/(<ref(?: +(?:group|name)[^\/>]+)?>)Hcodep/g, '$1hcodep');
str = str.replace(/(<ref(?: +(?:group|name)[^\/>]+)?>)Http/g, '$1http');
str = str.replace(/(<ref(?: +(?:group|name)[^\/>]+)?>)Www/g, '$1www');
str = str.replace(/(\.<\/math>)\./g, '$1');
str = str.replace(/((?:\{{2}r\|[^{}]+\}{2})+)((?:\{{2}u\|[^{}]+\}{2})+)/g, '$2$1');
// 139
str = str.replace(/(<ref( +(group|name)[^\/>]+)?>(\n|.)+?<\/ref>)/g, function (a, fil, poca, pocb, pocc) {
fil = fil.replace(/\'\'\'/g, '\u2553');
return fil;});
str = str.replace(/\{\|/g, '\u2554');
str = str.replace(/(\n *)\|\}/g, '$1\u2555');
str = str.replace(/(\u2554([^\u2554\u2555]|\u2554([^\u2554\u2555]|\u2554([^\u2554\u2555]|\u2554([^\u2554\u2555]|\u2554[^\u2554\u2555]*\u2555)*\u2555)*\u2555)*\u2555)*\u2555)/g, function (a, fil) {
fil = fil.replace(/(?:\n *\|-.*)+(\n *(?:\|-|\u2555))/g, '$1');
fil = fil.replace(/\'\'\'/g, '\u2556');
return fil;});
str = str.replace(/(\n *(\|\+|!)(\n|.)+?)(?=\n *[\u2555!|])/g, function (a, fil, insa, insb, kon) {
fil = fil.replace(/\u2556/g, '');
return fil;});
str = str.replace(/[\u2553\u2556]/g, '\'\'\'');
str = str.replace(/\u2555/g, '|}');
str = str.replace(/\u2554/g, '{|');
// 121
str = str.replace(/(\n)\|(\}{2})/g, '$1$2');
// INTERPUNKCYJNE
str = str.replace(/([- ,;:(][A-Za-zĄĆĘŁŃÓŚŹŻąćęłńóśźż‘’„”“]{3,}(?:\]{2}|\')*,)([A-Za-zĄĆĘŁŃÓŚŹŻąćęłńóśźż]{3,})(?=[-\n ,;:.…!?<)])/g, '$1 $2');
str = str.replace(/([- ,;:(][A-Za-zĄĆĘŁŃÓŚŹŻąćęłńóśźż‘’„”“]{3,}(?:\]{2}|\')*,)([A-Za-zĄĆĘŁŃÓŚŹŻąćęłńóśźż]{3,})(?=[-\n ,;:.…!?<)])/g, '$1 $2');
str = str.replace(/(\)['"”’]*\.)(['"”’]*[A-ZĄĆĘŁŃÓŚŹŻ])/g, '$1 $2');
str = str.replace(/[,;:.] +(p|pp|s|S|ss|t|T)\.(\d+ *[-–]* *\d*n*)(?=[,;.]*[\n ])/g, ', $1. $2');
str = str.replace(/, *:/g, ':');
str = str.replace(/(:)({{2}cytuj)/gi, '$1 $2');
str = str.replace(/([^)]), +(\([^.…])/g, '$1 $2');
str = str.replace(/(\]{2}[,;])(\[{2})/g, '$1 $2');
str = str.replace(/(\.\'{2,})\.([^.])/g, '$1$2');
str = str.replace(/([^,;:!?]) +((?:\.{3}|…)\'*[,;:!?])/g, '$1$2');
str = str.replace(/( [-–])(\()/g, '$1 $2');
str = str.replace(/([^-–#*,;:=|]) +((albowiem|ale|czyli|gdyż|lecz)[\n :])/g, '$1, $2');
str = str.replace(/([^-–—−#*,;:…!?|]['‘’"“”„]*) +(['‘’"“”„]*a) +(['‘’"“”„]*(?:do|dla|i|jednocześnie|nie|nawet|następnie|nad|na|od|o|przy|przez|przed|potem|ponieważ|ponadto|pod|po|także|u|wraz|właściwie|więc|w|zatem|zarazem|za|z)[ ,])/g, '$1, $2 $3');
str = str.replace(/, +(jak|ponieważ)/g, '\u2553$1');
str = str.replace(/(Aczkolwiek|Jednakże|Na przykład|Podczas|Z kolei|Zatem) *, */g, '$1 ');
str = str.replace(/\u2553/g, ', ');
str = str.replace(/\bb\/d\b/g, 'b.d.');
str = str.replace(/(podobnie|tak) (jak)\b/gi, '$1\u2553$2');
str = str.replace(/([^-–—−#*,;:|]) +(czy|jak) +(i|nawet|również|także|też) /g, '$1, $2 $3 ');
str = str.replace(/\u2553/g, ' ');
str = str.replace(/([!|][ ']*[Ll])\.?(p)\.?([ ']*[\n!|])/g, '$1$2.$3');
str = str.replace(/\bn\/d\b/g, 'n.d.');
str = str.replace(/\b([Nn]p)(: )/g, '$1.$2');
str = str.replace(/(\([Nn]p) +/g, '$1. ');
str = str.replace(/\b([Nn]p\.:?) */g, '$1 ');
str = str.replace(/\bp\.t\. /g, 'pt. ');
str = str.replace(/( sygn\.)(\d)/gi, '$1 $2');
str = str.replace(/(\b[Tt]z[nw])( |:)/g, '$1.$2');
str = str.replace(/(\b[Tt]z[nw]\.)([^\n \u2552:])/g, '$1 $2');
str = str.replace(/([^-–—−‒―,;:>]) (tzn\.[\n :])/g, '$1, $2');
str = str.replace(/(zwłaszcza), /gi, '$1 ');
str = str.replace(/(Chyba|Jako|Mimo|Pomimo|Zwłaszcza), +(iż|że)/g, '$1 $2');
str = str.replace(/([-–,„'(] *(?:chyba|jako|mimo|pomimo|zwłaszcza)), +(iż|że)/g, '$1 $2');
// 124
str = str.replace(/([[({])( +)/g, '$1');
// 125
str = str.replace(/(\{{2}sort *?\|\d+? *?\|)(\}{2})/g, '$1 $2');
str = str.replace(/([ \u2552]+)((?:\]{2})+)/g, '$2$1');
str = str.replace(/( +)([)\]}]+[,;:.]*) */g, '$2$1');
str = str.replace(/(\[{2}Kategoria:.+?\|)(\]{2}\n)/gi, '$1 $2');
str = str.replace(/(\[{2}Plik:[^\]]+?)\| *(\]{2})/gi, '$1$2');
str = str.replace(/( (?:etc|itd|itp))([\n ,;:)<{])/g, '$1.$2');
str = str.replace(/, +(itd|itp)\.?/g, ' $1.');
str = str.replace(/(?:[,;]?) ((?:etc|itd|itp)\.) ((?:etc|itd|itp)\.)/g, ', $1, $2');
str = str.replace(/(?:[,;]?) ((?:etc|itd|itp)\.) ((?:etc|itd|itp)\.)/g, ', $1, $2');
str = str.replace(/( się)( że)[ ,]+/g, '$1,$2 ');
str = str.replace(/([^-–—−\n ,([{A-ZĄĆĘŁŃÓŚŹŻa-ząćęłńóśźż])( *tj\. *)/g, '$1, tj. ');
str = str.replace(/\(tj\. */g, '(tj. ');
str = str.replace(/;(, tj\. )/g, '$1');
str = str.replace(/([ (]tj)[ .]*(:)/g, '$1.$2');
str = str.replace(/(\[{2}[^\]]+\.\]{2}(?:\'{2,5})?)\.([^.])/g, '$1$2');
str = str.replace(/([\n (>]§)(\d)/g, '$1 $2');
str = str.replace(/([\n ]§ *\d+) *([-–—−‒―÷]) *(\d+[\n,;:.)])/g, '$1$2$3');
// TYPOGRAFICZNE
// T.1 P na PP
str = str.replace(/(['‘’"“”„])—/g, '$1 – ');
str = str.replace(/—(['‘’"“”„])/g, ' – $1');
str = str.replace(/(\| *['‘’"“”„]) (–)/g, '$1$2');
str = str.replace(/(–) (['‘’"“”„] *\|)/g, '$1$2');
str = str.replace(/(\|\s*(numer|s(trony?)?|wolumin|wydanie)\s*=\s*[-–—−‒―÷ \d,;.]+(?=\||\}\}))/gi, function(a, fil) {
fil = fil.replace(/(\d) *(?:[-–—−‒―÷])+ *(\d)/g, '$1–$2');
return fil;});
str = str.replace(/(\d)—(\d)/g, '$1–$2');
str = str.replace(/\n— ?/g, '\n– ');
str = str.replace(/ ?— ?/g, ' – ');
// T.2 _DYW_ na _PP_
str = str.replace(/(\{{2}[^}]*?) - ([^}]*?) - /g, '$1foosEpulKA$2foosEpulKA');
str = str.replace(/(\{{2}[^}]*?) - /g, '$1foosEpulKA');
str = str.replace(/(\n *\|* *)(Plik:.+?) - (.+?\|)/g, '$1$2foosEpulKA$3');
str = str.replace(/(\n *\|* *)(Plik:.+?) - (.+?\|)/g, '$1$2foosEpulKA$3');
// 130
str = str.replace(/(\n *\|[^\n|]+?) - ([^\n|]*=)/g, '$1foosEpulKA$2');
str = str.replace(/ +(?:ss)\.((?: | )\d)/g, ' s.$1');
str = str.replace(/([-–,;:.]) *[Ss]tr\. *(\d)/g, '$1 s. $2');
str = str.replace(/\( *[Ss]tr\. *(\d)/g, '(s. $1');
str = str.replace(/( \(*s\. \d+) *(?:[-–—−‒―÷]|--) *(\d+[\n ,;:.)\]])/gi, '$1–$2');
str = str.replace(/(, s\. \d+(?:[-–]\d+)?(?:, \d+(?:[-–]\d+)?)*) i( \d+(?:[-–]\d+)?[,.)])/gi, '$1,$2');
str = str.replace(/(\|strony = \d+(?:[-–]\d+)?(?:, \d+(?:[-–]\d+)?)*) i( \d+(?:[-–]\d+)?(?: \||\}{2}))/gi, '$1,$2');
str = str.replace(/([,;] s\. (?:\d+(?:–\d+)?, )*\d+)-(\d+, (?:\d+, )*\d+)-(\d+, (?:\d+, )*\d+)-(\d+[,;:.])/gi, '$1–$2–$3–$4');
str = str.replace(/([,;] s\. (?:\d+(?:–\d+)?, )*\d+)-(\d+, (?:\d+, )*\d+)-(\d+[,;:.])/gi, '$1–$2–$3');
str = str.replace(/([,;] s\. (?:\d+(?:–\d+)?, )*\d+)-(\d+[,;:.])/gi, '$1–$2');
str = str.replace(/([,;] s\. (?:\d+(?:–\d+)?, )*\d+)-(\d+[,;:.])/gi, '$1–$2');
str = str.replace(/( s\. |\| *strony *= *)(\d+)(\d{1}[-–—−‒―÷])(\d{1}[^\d])/g, '$1$2$3$2$4');
str = str.replace(/( s\. |\| *strony *= *)(\d+)(\d{2}[-–—−‒―÷])(\d{2}[^\d])/g, '$1$2$3$2$4');
str = str.replace(/( s\. |\| *strony *= *)(\d+)(\d{3}[-–—−‒―÷])(\d{3}[^\d])/g, '$1$2$3$2$4');
str = str.replace(/( s\. |\| *strony *= *)(\d+)(\d{4}[-–—−‒―÷])(\d{4}[^\d])/g, '$1$2$3$2$4');
str = str.replace(/(\d)[-–—−‒―÷](\d+(?:,\d+)?(?: | )(?:[bm]l[dn]|tys\.|(?:sekund|minut|godzin)(?:a(?:ch|mi)?|[ąęy]|om)?|(?:(?:sekundz|godzin|minuc)ie)|(?:dni|lat)(?:a(?:ch|mi)?|om)?|dB|[μmk]?g|[nμmcdk]?m|m?Ah|(?:\[{2}[Hh]erc\|)?[kMGT]?Hz(?:\]{2})?|°[CFС]|st\.(?: | )C|(?:p\.)?n\.e\.)[\n ,;:.'’”\/<)\]{|])/g, '$1–$2');
str = str.replace(/(\d)[-–—−‒―÷](\d+(?:,\d+)?[%‰])/g, '$1–$2');
str = str.replace(/( \'*)-(\'*[\n ])/g, '$1–$2');
str = str.replace(/( \'*)-(\'*[\n ])/g, '$1–$2');
str = str.replace(/(<br *\/*>)- /g, '$1– ');
str = str.replace(/ -(<br *\/*>)/g, ' –$1');
str = str.replace(/(<br *\/*>)-(<br *\/*>)/g, '$1–$2');
str = str.replace(/foosEpulKA/g, ' - ');
// 144
str = str.replace(/ -(<ref[ >])/g, ' –$1');
str = str.replace(/(\| *[Pp]op\w* *= *)(?:\[{2}Dywiz\|)?-(?:\]{2})?/g, '$1–');
str = str.replace(/(\| *[Nn]astę*\w* *= *)(?:\[{2}Dywiz\|)?-(?:\]{2})?/g, '$1–');
// 158
str = str.replace(/(\n=+ *Bibliografia *=+\n([#*•]+.+\n)+)/g, function(a, fil, ins) {
fil = fil.replace(/\.?[,;]\n/g, '.\n');
return fil;});
// cudzyslow
str = str.replace(/‘’/g, '"');
str = str.replace(/([^’\d])’{2}([-–,;:.…?!)\]]*\s)/g, '$1”$2');
// 116
str = str.replace(/(\[{2})((?:[^\n:|\]]+?[ \u2552])?)("|foosEpulKZ)([^\n\]|]+?)("|foosEpulKZ)((?:[ \u2552][^\n[|]*?)?)(\]{2})/g, '$1$2$3$4$5$6|$2„$4”$6$7');
str = str.replace(/(\[{2}[^[|\]]+\|)([^[|\]]+?\]{2})/g, function(a, poc, fil) {
fil = fil.replace(/\u2552/g, ' ');
return poc + fil;});
// 126
str = str.replace(/(<[^<>]+>)/g, function(a, fil) {
fil = fil.replace(/"/g, 'foosEpulKA');
return fil;});
// 122
str = str.replace(/(\{[^}|]*)"(.*?\})/g, '$1foosEpulKA$2');
str = str.replace(/(\{[^}|]*)"(.*?\})/g, '$1foosEpulKA$2');
// 113
str = str.replace(/([!|]{2}[^\n|]*?)"(.*?[!|])/g, '$1foosEpulKA$2');
str = str.replace(/([!|]{2}[^\n|]*?)"(.*?[!|])/g, '$1foosEpulKA$2');
str = str.replace(/([!|]{2}[^\n|]*?)"(.*?[!|])/g, '$1foosEpulKA$2');
str = str.replace(/([!|]{2}[^\n|]*?)"(.*?[!|])/g, '$1foosEpulKA$2');
str = str.replace(/([!|]{2}[^\n|]*?)"(.*?[!|])/g, '$1foosEpulKA$2');
str = str.replace(/([!|]{2}[^\n|]*?)"(.*?[!|])/g, '$1foosEpulKA$2');
str = str.replace(/([!|]{2}[^\n|]*?)"(.*?[!|])/g, '$1foosEpulKA$2');
// 114
str = str.replace(/(\n(<.+?>|[ #*:;])*(\{\||\|-).+)/g, function(a, fil) {
fil = fil.replace(/"/g, 'foosEpulKA');
return fil;});
// 115
str = str.replace(/(\n *[!|][^\n!|]*)"(.*?[!|].*)(?=\n)/g, '$1foosEpulKA$2');
str = str.replace(/(\n *[!|][^\n!|]*)"(.*?[!|].*)(?=\n)/g, '$1foosEpulKA$2');
str = str.replace(/(\n *[!|][^\n!|]*)"(.*?[!|].*)(?=\n)/g, '$1foosEpulKA$2');
str = str.replace(/(\n *[!|][^\n!|]*)"(.*?[!|].*)(?=\n)/g, '$1foosEpulKA$2');
str = str.replace(/(\n *[!|][^\n!|]*)"(.*?[!|].*)(?=\n)/g, '$1foosEpulKA$2');
str = str.replace(/(\n *[!|][^\n!|]*)"(.*?[!|].*)(?=\n)/g, '$1foosEpulKA$2');
str = str.replace(/(\n *[!|][^\n!|]*)"(.*?[!|].*)(?=\n)/g, '$1foosEpulKA$2');
str = str.replace(/(\n *[!|][^\n!|]*)"(.*?[!|].*)(?=\n)/g, '$1foosEpulKA$2');
str = str.replace(/(\[{2}[^\n|\]]*? )”([^\n|\]]*? )”([^\n|\]]*? )”([^\n|\]]*? )”([^\n|\]]*?[\n|\]])/g, '$1foosEpulKa$2foosEpulKa$3foosEpulKa$4foosEpulKa$5');
str = str.replace(/(\[{2}[^\n|\]]*? )”([^\n|\]]*? )”([^\n|\]]*?[\n|\]])/g, '$1foosEpulKa$2foosEpulKa$3');
str = str.replace(/(\[{2}[^\n|\]]*? )”([^\n|\]]*?[\n|\]])/g, '$1foosEpulKa$2');
// 140
str = str.replace(/(: )["”]/g, '$1„');
str = str.replace(/ +("[,;:.][\n )])/g, '$1');
str = str.replace(/ +(\'+[,;:.][\n )])/g, '$1');
str = str.replace(/( ),,([^\n "„”“]+["”])/g, '$1„$2');
str = str.replace(/([\n ]\[[^[])"/g, '$1„');
str = str.replace(/([\n =(|])"/g, '$1„');
str = str.replace(/(\/\'*)"(\'*[^-–—−+\n ,;:.!?)\]])/g, '$1„$2');
str = str.replace(/(<ref(?: +(?:group|name)[^\/>]+)?>\'*)["”]/g, '$1„');
str = str.replace(/(\')„([\n ,;:.!?)\]]|<ref>)/g, '$1”$2');
str = str.replace(/(\n\'+) *["”]/g, '$1„');
str = str.replace(/( \'+)["”]/g, '$1„');
str = str.replace(/„(<ref>|<ref (?:group|name).+?>)/g, '”$1');
str = str.replace(/(<ref(?: (?:group|name)[^\/>]+)?>\'*) *["”]/g, '$1„');
// 131
str = str.replace(/"/g, '”');
str = str.replace(/([^[]\[)”/g, '$1„');
str = str.replace(/([-–—−])”([^\n ]+”)/g, '$1„$2');
str = str.replace(/ „ (.+?) „ /g, ' „$1” ');
str = str.replace(/(„(?:\.{3}|…)) +/g, '$1');
str = str.replace(/[ ,;]+((?:\.{3}|…)”)/g, '$1');
str = str.replace(/”([\wĄĆĘŁŃÓŚŹŻąćęłńóśźż]+”)/g, '„$1');
str = str.replace(/([\n !|]['(]*)”([^\n„“”]+?”)/g, '$1„$2');
str = str.replace(/(.+(gif|jpe?g|og[agv]|png|svg|tiff?)[\n|\]])/gi, function(a, fil) {
fil = fil.replace(/”/g, '\x01');
return fil;});
str = str.replace(/(”[,;:.!?])([^\n '.)\]{}<])/g, '$1 $2');
str = str.replace(/([ (])pt\.["„”“]/g, '$1pt. „');
str = str.replace(/\x01/g, '”');
str = str.replace(/„(\'*[^\n']\'*\n)/g, '”$1');
str = str.replace(/(\([-–−×÷,. \d]*\d)”(\))/g, '$1"$2');
str = str.replace(/(„\d[-–—−+:,.\da-zA-Z]*)foosEpulKL/g, '$1”');
str = str.replace(/(„[-A-Za-zĄĆĘŁŃÓŚŹŻąćęłńóśźż/:\d]+\d)foosEpulKL/g, '$1”');
str = str.replace(/ *„ *(\'*\n)/g, '”$1');
str = str.replace(/„(\})/g, '”$1');
str = str.replace(/ +”/g, '”');
str = str.replace(/“([,;:.'\/]*[\n <])/g, '”$1');
str = str.replace(/(<(blockquote|br *\/*)>\'*)” ?/g, '$1„');
str = str.replace(/(?:<br *\/*>|[\n ])*(<blockquote>)/g, '\n\n$1');
str = str.replace(/(==)\n+(<blockquote>)/g, '$1\n$2');
str = str.replace(/(<\/blockquote>)(?:<br *\/*>|[\n ])*/g, '$1\n\n');
str = str.replace(/foosEpulKA/g, '"');
str = str.replace(/foosEpulKa/g, '”');
str = str.replace(/["„](\[https?:\/{2}[^ [\]]+ +)((?:\[{2}[^[\]]*\]{2}|\[[^[\]]*\]|[^[\]])+)(\][,;:.]?)["”]/g, '$1„$2”$3');
str = str.replace(/(„\[{2}[^[|\]]+\|[^[|\]„”“]+)(”)(\]{2})/g, '$1$3$2');
str = str.replace(/(\[{2}[^[|\]]+\|)(„)([^[|\]„”“]+\]{2}”)/g, '$2$1$3');
str = str.replace(/(\[{2}[^[|\]]+\|[^[|\]+„”“]+„[^[|\]„”“]+)(\]{2})(”)/g, '$1$3$2');
// na DYW
str = str.replace(/(\d)–(krotn|letn|osobow|tysięczn)/g, '$1-$2');
// REDAKCYJNE
str = str.replace(/(?:\[{2})?([12]\d{3})?(?:\]{2})?([-–])(?:\[{2})?([12]\d{3})(?:\]{2})?([,;.] (?:IS[BS]N|s\.(?: | )))/g, '$1$2$3$4');
str = str.replace(/(=\s*\[{2})([^[\]|]+\|)/g, '$1FoosEpulKA$2');
str = str.replace(/(\{{2}([Ww]ładca|[Pp]olityk)[^}]+?\|[ \d]*(funkcja|tytuł|urząd)\s*=[\s\']*(\[{2}[^[\]|]+\|)?(\[{2})?)([a-ząćęłńóśźż])/g, function (a, poc, pod, poe, pof, pog, fil) {
return poc + fil.toUpperCase();});
str = str.replace(/(\{{2}([Ww]ładca|[Pp]olityk)[^}]+?\|[ \d]*(funkcja|tytuł|urząd)\s*=[\s\']*(\[{2}[^[\]|]+\|)?(\[{2})?)([a-ząćęłńóśźż])/g, function (a, poc, pod, poe, pof, pog, fil) {
return poc + fil.toUpperCase();});
str = str.replace(/(\{{2}([Ww]ładca|[Pp]olityk)[^}]+?\|[ \d]*(funkcja|tytuł|urząd)\s*=[\s\']*(\[{2}[^[\]|]+\|)?(\[{2})?)([a-ząćęłńóśźż])/g, function (a, poc, pod, poe, pof, pog, fil) {
return poc + fil.toUpperCase();});
str = str.replace(/(\{{2}([Ww]ładca|[Pp]olityk)[^}]+?\|[ \d]*(funkcja|tytuł|urząd)\s*=[\s\']*(\[{2}[^[\]|]+\|)?(\[{2})?)([a-ząćęłńóśźż])/g, function (a, poc, pod, poe, pof, pog, fil) {
return poc + fil.toUpperCase();});
str = str.replace(/(\{{2}([Ww]ładca|[Pp]olityk)[^}]+?\|[ \d]*(funkcja|tytuł|urząd)\s*=[\s\']*(\[{2}[^[\]|]+\|)?(\[{2})?)([a-ząćęłńóśźż])/g, function (a, poc, pod, poe, pof, pog, fil) {
return poc + fil.toUpperCase();});
str = str.replace(/FoosEpulKA/g, '');
str = str.replace(/(\{\{Poprzednik Następca[ |]+urząd[ =]+(\[\[[^|\]]+\|)?)([a-ząćęłńóśźż])/g, function (a, poc, pod, fil) {
return poc + fil.toUpperCase();});
str = str.replace(/(v?align|bgcolor|bordercolor|border|cellpadding|cellspacing|class|colspan|height|nowrap|rowspan|style|width) *(=) *(("|foosEpulKZ)[- #%:;a-z\d]+("|foosEpulKL|foosEpulKZ))/gi, function (a, fil, kona, konb) {
return fil.toLowerCase() + kona + konb;});
str = str.replace(/(border|cellpadding|cellspacing|colspan|height|rowspan|width)(=\d)/gi, function (a, fil, kon) {
return fil.toLowerCase() + kon;});
str = str.replace(/(align="[a-z]+)("|foosEpulKL|foosEpulKZ)/gi, function (a, fil, kon) {
return fil.toLowerCase()+kon;});
str = str.replace(/(style=)("|foosEpulKZ)([a-z]+)(:)/gi, function (a, poc, insa, insb, kon) {
return poc+insa+insb.toLowerCase()+kon;});
str = str.replace(/(\{\{lang\s*\|[^}]+\}\})/gi, function (a, fil) {
fil = fil.replace(/ *(\|) */g, '$1');
fil = fil.replace(/([ |])\1+/g, '$1');
fil = fil.replace(/\|(\}{2})/g, '$1');
return fil;});
str = str.replace(/(\n[ #*]+)\(en\) *(.+)/g, '$1$2 {{lang|en}}');
str = str.replace(/\(en\)(\n)/g, '{{lang|en}}$1');
str = str.replace(/(\[{2}[^[|\]]+\|[^[|\]]+\.)(:)(\]{2})/g, '$1$3$2');
str = str.replace(/([Łł]acina\|łac)\.?(\]{2})\.?/g, '$1.$2');
str = str.replace(/(\[{2}[Jj]ęzyk[ \u2552]białoruski\|biał)(?:orus)\.?(\]{2})\.?/g, '$1.$2');
str = str.replace(/(\[{2}[Jj]ęzyk[ \u2552]bośniacki\|boś)n?\.?(\]{2})\.?/g, '$1n.$2');
str = str.replace(/(\[{2}[Jj]ęzyk[ \u2552]bułgarski\|buł)g?\.?(\]{2})\.?/g, '$1g.$2');
str = str.replace(/(\[{2}[Jj]ęzyk[ \u2552]francuski\|fr)a?n?c?\.?(\]{2})\.?/g, '$1.$2');
str = str.replace(/(\[{2}[Jj]ęzyk[ \u2552]niemiecki\|nie)m?\.?(\]{2})\.?/g, '$1m.$2');
str = str.replace(/(\[{2}[Jj]ęzyk[ \u2552]norweski\|nor)w?\.?(\]{2})\.?/g, '$1w.$2');
str = str.replace(/(\[{2}[Jj]ęzyk[ \u2552]portugalski\|por)t?\.?(\]{2})\.?/g, '$1t.$2');
str = str.replace(/(\[{2}[Jj]ęzyk[ \u2552]ukraiński\|uk)r?\.?(\]{2})\.?/g, '$1r.$2');
str = str.replace(/([Jj]ęzyk[ \u2552]polski\|p)o?l\.?\]{2}\.?/g, '$1ol.]]');
str = str.replace(/(\[{2}[Jj]ęzyk[^[|\]]+\|[^.[|\]]+\.\]{2})([^-\n '‘’"“”,;:!?/<{)])/g, '$1 $2');
str = str.replace(/(\[{2}[Jj]ęzyk\u2552rosyjski\|r)u(s\.\]{2})/g, '$1o$2');
str = str.replace(/(\'{2,3})((?:\[{2}(?:[Jj]ęzyk|[Łł]acin)[^\]]+\]{2}|(?:ang|łac|oryg|właśc)\.)(?: | ))([^\']+\'{2,3})/g, '$2$1$3');
str = str.replace(/(\/)1(?: | )(km|mieszkańca)\b/g, '$1$2');
str = str.replace(/((?:[\n ]| )[\'"([|]*(?:\d+[,.]?\d*[-–−])?\d+[,.]?\d*)(k?m\/[hs])\b/g, '$1 $2');
// 136
str = str.replace(/(\d) *[º˚°] *([CFС]|Blg|Rø)(?=[\n ,;:.…!?)\/<{\]'’"”])/g, '$1 °$2');
str = str.replace(/(\d) *° *(\[{2}Skala\u2552Celsjusza\|)Celsjusza(\]{2})/g, '$1 $2°C$3');
str = str.replace(/(\d)(\[{2}[Ss]kala\u2552Ballinga\|°Blg\]{2})/g, '$1 $2');
str = str.replace(/(\d)°(\[{2}[Ss]kala\u2552Ballinga\|)(Blg\]{2})/g, '$1 $2°$3');
str = str.replace(/(\d)(\[{2}[Ss]kala\u2552Celsjusza\|°[CС]\]{2})/g, '$1 $2');
str = str.replace(/(\d)°(\[{2}[Ss]kala\u2552Celsjusza\|)([CС]\]{2})/g, '$1 $2°$3');
str = str.replace(/(\d)(\[{2}[Ss]kala\u2552Fahrenheita\|°F\]{2})/g, '$1 $2');
str = str.replace(/(\d)°(\[{2}[Ss]kala\u2552Fahrenheita\|)(F\]{2})/g, '$1 $2°$3');
str = str.replace(/(\d)°(?: | )((?:[CFС]|Blg|Rø))(?=[\n ,;:.…!?)\/<{\]'’"”])/g, '$1 °$2');
str = str.replace(/(\d)(?: | )°(?: | )((?:[CFС]|Blg|Rø))(?=[\n ,;:.…!?)\/<{\]'’"”])/g, '$1 °$2');
str = str.replace(/(\d)\.(\d+(?: | )(?:\[{2}[Ss]kala\u2552[^|\]]+\|)?°(?:[CFС]|Blg|Rø)(?:\]{2})?)(?=[\n ,;:.…!?)\/<{\]'’"”])/g, '$1,$2');
str = str.replace(/(\d)°([-–−]\d+[,.]?\d*(?: | )°(?:[CFС]|Blg|Rø))(?=[\n ,;:.…!?)\/<{\]'’"”])/g, '$1$2');
str = str.replace(/°С(?=[\n ,;:.…!?)\/<{\]'’"”])/g, '°C');
str = str.replace(/(\d)(°C)(?=[\n ,;:.…!?)\/<{\]'’"”])/g, '$1 $2');
str = str.replace(/([\n (|]| )-(\d+[,.]?\d*(?: | )(?:\[{2}skala\u2552[^|\]]+\|)?°)/gi, '$1–$2');
// 137
str = str.replace(/(\d +?tys) /g, '$1. ');
str = str.replace(/(<br *\/*>|[\n (])(maks)([\n ,;:)])/g, '$1$2.$3');
// 118
str = str.replace(/nbsp;/g, 'foosEpulKA');
str = str.replace(/[,;] *?(zm\.) */g, ', $1 ');
str = str.replace(/foosEpulKA/g, 'nbsp;');
// 119
str = str.replace(/(\d(?: | )+(?:tys\.|[bm]l[dn])?(?: | )?(?:cm|dm|km|mm|mile|mil|m))2([ ,;:.…!?'’”<){\n])/g, '$1²$2');
str = str.replace(/(\d(?: | )+(?:tys\.|[bm]l[dn])?(?: | )?(?:cm|dm|km|mm|mile|mil|m))3([ ,;:.…!?'’”<){\n])/g, '$1³$2');
str = str.replace(/([ ([][A-Za-z.ąćęłńóśźż]+\/(?:cm|dm|km|mm|mile|mil|m))2([ ,;:.…!?'’”<){\n])/g, '$1²$2');
str = str.replace(/([ ([][A-Za-z.ąćęłńóśźż]+\/(?:cm|dm|km|mm|mile|mil|m))3([ ,;:.…!?'’”<){\n])/g, '$1³$2');
str = str.replace(/(\[{2}[Kk]ilometr\u2552kwadratowy\|km)2(\]{2})/g, '$1²$2');
str = str.replace(/(\d(?: | )+m)3(\/s)\b/g, '$1³$2');
str = str.replace(/(score\d(?:[- =\d]+))<sup>/g, '$1\u2553');
str = str.replace(/(score\d(?:[- =\d]+))&sup/g, '$1\u2554');
str = str.replace(/([^\n'>])(?:<sup>2<\/sup>|²)(\'*[\n ,;:.…!?)\/<{\]])/g, '$1²$2');
str = str.replace(/([^\n'>])(?:<sup>3<\/sup>|³)(\'*[\n ,;:.…!?)\/<{\]])/g, '$1³$2');
str = str.replace(/\u2554/g, '&sup');
str = str.replace(/\u2553/g, '<sup>');
str = str.replace(/([^[][[(](?:cm|dm|km|mm|mile|mil|m))2([)\]][^\]])/g, '$1²$2');
str = str.replace(/([^[][[(](?:cm|dm|km|mm|mile|mil|m))3([)\]][^\]])/g, '$1³$2');
// 120
str = str.replace(/( )\/(\d+:\d+)\/([\n ])/g, '$1($2)$3');
str = str.replace(/(\[{2}[^|\]]*?\d +)x( +\d[^|\]]*(?:\||\]{2}))/g, '$1foosEpulKA$2');
str = str.replace(/(\d(?: | ))x((?: | )\d)/g, '$1×$2');
str = str.replace(/foosEpulKA/g, 'x');
str = str.replace(/(<ref name=[^>]+?)\'( \/>)/g, '$1\u2553$2');
str = str.replace(/([a-ząćęłńóśźżé])\'([\n ,;:.…!?<)\/{a-ząćęłńóśźżé]| )/gi, '$1’$2');
str = str.replace(/([a-ząćęłńóśźżé])\'([\n ,;:.…!?<)\/{a-ząćęłńóśźżé]| )/gi, '$1’$2');
str = str.replace(/([a-ząćęłńóśźżé][.…]+)\'([\n ,;:!?<)\/{]| )/gi, '$1’$2');
str = str.replace(/\u2553/g, '\'');
str = str.replace(/([\n (\/=])\'((?:[^\n ']+ ){0,2}[^\n ']+?’)/g, '$1‘$2');
str = str.replace(/(\{{2}soccerway[^}]+data *= *\d{4})\/(\d{2})\/(\d{2})/gi, '$1\x01$2\x01$3');
str = str.replace(/([^\n \[])(\[dostęp:? ?\d{1,4}[-.]\d{1,2}[-.]\d{1,4})/gi, '$1 $2');
str = str.replace(/([\n ]\[dostęp:?)(\d{1,4}[-.]\d{1,2}[-.]\d{1,4})/gi, '$1 $2');
str = str.replace(/(dostęp:? \d{1,4}[-.])(\d[-.]\d{1,4})/gi, '$10$2');
str = str.replace(/(\[dostęp:? )0(\d\.\d{2}\.\d{4})/gi, '$1$2');
str = str.replace(/(\| *data +dostępu *= *)0(\d\.\d{2}\.\d{4})/gi, '$1$2');
str = str.replace(/([\n ]\[)D(ostęp)[ :]*(?:od)?[ :]*(?:(?:dnia|w dniu))?[ :]*(\d{1,4}[-.]\d{1,2}[-.]\d{1,4})/gi, '$1d$2 $3');
str = str.replace(/([^[]\[dostęp \d{1,2}\.\d{2}\.\d{4})[ r.]+(\][^\]])/gi, '$1$2');
str = str.replace(/((?:data|dostępu?)[ :=]+)(\d{1})[-–—−‒―.\/](\d{1,2})[-–—−‒―.\/](\d{4})/gi, '$1$4-$3-0$2');
str = str.replace(/((?:data|dostępu?)[ :=]+)(\d{2})[-–—−‒―.\/](\d{1,2})[-–—−‒―.\/](\d{4})/gi, '$1$4-$3-$2');
str = str.replace(/((?:data|dostępu?)[ :=]+\d{4})[-–—−‒―.\/](\d{1,2})[-–—−‒―.\/](\d)/gi, '$1-$2-$3');
str = str.replace(/((?:data|dostępu?)[ :=]+\d{4}-\d{1,2}-)(\d ?[|}\]])/gi, '$10$2');
str = str.replace(/((?:data|dostępu?)[ :=]+\d{4}-)(\d-\d{1,2} ?[|}\]])/gi, '$10$2');
str = str.replace(/\x01/gi, '\/');
str = str.replace(/( k\.)((?:\[|\w){3})/g, '$1 $2');
str = str.replace(/(\n=+ *)[ZŹŻ]r[oó]d[lł][ao]( *=+(?=\n))/g, '$1Źródła$2');
str = str.replace(/(\n=+ *(?:Bibliografia|Linki zewnętrzne) *=+\n)([^\n#'*•;<=\{].+[^\n:]\n)/g, '$1* $2');
str = str.replace(/(\n=+ *(?:Bibliografia|Linki zewnętrzne) *=+\n)(\{{2}[Cc]ytuj)/g, '$1* $2');
str = str.replace(/(\n=+ *Zobacz też *=+\n)(\[{2})/g, '$1* $2');
str = str.replace(/(\n=+ *Zobacz też *=+\n\{{2}[^}]+?\}{2}\n)\n+(\*)/g, '$1$2');
str = str.replace(/(\n[ *]*\[https?:.+)\n+(?=\n\[https?:)/g, '$1');
str = str.replace(/(\n)(\[https?:)/g, '$1* $2');
str = str.replace(/(\[{2}(?:Abstimmungspolizei|Kriminalpolizei|Ordnungspolizei|Sicherheitspolizei|Schutzpolizei)\|(?:A|Kri|Or|Si|Schu))P(o\]{2})/g, '$1p$2');
str = str.replace(/(\[{2}A\.C\.\u2552[^\n[\]|]+\|A)(C)( [^\n[\]|]+\]{2})/g, '$1.$2.$3');
str = str.replace(/(\[{2}F\.C\.\u2552[^\n[\]|]+\|F)(C)( [^\n[\]|]+\]{2})/g, '$1.$2.$3');
str = str.replace(/(\[{2}AC\u2552[^\n[\]|]+\|A)\.(C)\.( [^\n[\]|]+\]{2})/g, '$1$2$3');
str = str.replace(/(\[{2}FC\u2552[^\n[\]|]+\|F)\.(C)\.( [^\n[\]|]+\]{2})/g, '$1$2$3');
str = str.replace(/([\n (|])a(l. (?:Jerozolimski|Ujazdowski))/g, '$1A$2');
str = str.replace(/(\[{2}AllMusic)\|Allmusic(\]{2})/g, '$1$2');
str = str.replace(/(Halicka) (Armia)/g, '$2 $1');
str = str.replace(/(Halicką) (Armię)/g, '$2 $1');
str = str.replace(/(Halickiej) (Armii)/g, '$2 $1');
str = str.replace(/Armin +Van +Buuren/g, 'Armin van Buuren');
str = str.replace(/([\n '„|][Aa]ttach)e\b/g, '$1é');
str = str.replace(/Austro-Węgrach/g, 'Austro-Węgrzech');
str = str.replace(/(\[{2}Białystok)(\]{2})u/g, '$1|Białymstoku$2');
str = str.replace(/(\n=+ *Bibliografia *=+(\n\*.+)+|<ref(?: (?:group|name)[^\/>]+)?>[\s\S]+?<\/ref>)/gi, function(a, fil) {
fil = fil.replace(/\[{2}(\d{4})\]{2}/g, '$1');
fil = fil.replace(/\[{2}(Białystok|Bydgoszcz|Gdańsk|Katowice|Kielce|Kraków|Lublin|Łódź|Olsztyn|Opole|Poznań|Rzeszów|Szczecin|Toruń|Warszawa|Wrocław)\]{2}/g, '$1');
return fil;});
str = str.replace(/(\n=+ *(Bibliografia|Linki zewnętrzne) *=+(\n\{{2}commonscat\}{2})?\n([#•].+\n)+)/g, function(a, fil) {
fil = fil.replace(/\n[#•]/g, '\n*');
return fil;});
str = str.replace(/(\d,\d{1,2}(?: | )[bm]ili(?:ard|on))ów\b/g, '$1a');
str = str.replace(/(\d,\d{1,2}(?: | )tysi)ęcy\b/g, '$1ąca');
str = str.replace(/(\d) (bitow(?:a|ą|e|ego|ej|emu|i|y|ych|ym|ymi))\b/g, '$1-$2');
str = str.replace(/( (?:\[{2})?)b(luetooth)/g, '$1B$2');
str = str.replace(/( \[b\.n\.s)(\])/g, '$1.$2');
str = str.replace(/([\n '|][Cc]harg)[eé]( d)['’](affaires)/g, '$1é$2’$3');
str = str.replace(/(\[{2}Cieśnina[^|]*\|Cieś)(\.)/gi, '$1n$2');
str = str.replace(/([Cc]oll[eè]ge['’])y/g, '$1ów');
str = str.replace(/(\{{2}cytuj[^{}]+\|\s*data(?: dostępu)?\s*=\s*)\[*(\d{1,2})(?:\s| |\u2552)(stycznia|lutego|marca|kwietnia|maja|czerwca|lipca|sierpnia|września|października|listopada|grudnia)\]*(?:\s| |\u2552)\[*(\d{4})\]*(?:(?:\s| |\u2552)r\.?)?(\s*[|}])/gi, '$1$2 $3 $4$5');
str = str.replace(/(\{{2}cytuj[^{]+\| *)(?:iss\.?|issue)( *=[^}]+\}{2})/gi, '$1wydanie$2');
str = str.replace(/(\{{2}cytuj[^}]+\| *)(?:pages?|seiten?|strona?)( *=[^}]+\}{2})/gi, '$1strony$2');
str = str.replace(/(\{{2}cytuj[^{]+\| *)(?:vol\.?|volume)( *=[^}]+\}{2})/gi, '$1wolumin$2');
str = str.replace(/(\{{2}cytuj[^{]+\| *nazwisko) *1( *=[^}]+\}{2})/gi, '$1$2');
str = str.replace(/(\{{2}cytuj[^{]+\| *imię) *1( *=[^}]+\}{2})/gi, '$1$2');
str = str.replace(/(\{{2}cytuj[^{]+\| *autor) *1( *=[^}]+\}{2})/gi, '$1$2');
str = str.replace(/(\{{2}cytuj[^{]+\| *autor link) *1( *=[^}]+\}{2})/gi, '$1$2');
str = str.replace(/(ywilno)[-–—−‒― ]+(prawn)/g, '$1$2');
str = str.replace(/(\| *(?:czas +trwania|długość) *= *o*k*\.* *\d+ *min)\./g, '$1');
str = str.replace(/((?:[\n (|]| )\d+[,.]?\d*)(€)/g, '$1 $2');
str = str.replace(/(\n *\| *[^\n=]+= *\[*\d{1,2}(?:\u2552| | )(?:stycznia|lutego|marca|kwietnia|maja|czerwca|lipca|sierpnia|września|października|listopada|grudnia)\]*(?: | )\[*\d{3,4}\]*)(?: | )r\.(?=\n)/gi, '$1');
str = str.replace(/(\n *\| *[^\n=]+= *\[*(?:styczeń|luty|marzec|kwiecień|maj|czerwiec|lipiec|sierpień|wrzesień|październik|listopad|grudzień)\]*(?: | )\[*\d{3,4}\]*)(?: | )r\.(?=\n)/gi, '$1'); // usuwa w infoboxie r. na koncu daty z samym miesiacem
str = str.replace(/(\n\{{2})Disambig(\}{2})/gi, '$1ujednoznacznienie$2');
str = str.replace(/(dniowo|nocno|środkowo)[-–—−‒― ]*(wschodni|zachodni)/gi, '$1-$2');
str = str.replace(/(domyśl)e(ć)/gi, '$1i$2');
str = str.replace(/(dopatrz)e(ć)/gi, '$1y$2');
str = str.replace(/(d)y(gitaliz)/gi, '$1i$2');
str = str.replace(/([a-ząćęłńóśźż]\]*)-(elekt|elekta|elektowi|elektem|elekcie|elekci|elektów|elektom|elektami|elektach)([\n ,;:.…!?'’”<)\]])/g, '$1 $2$3');
str = str.replace(/([Ff]izyczno)[-–—−‒― ]+[Gg](eograficzn)/g, '$1g$2');
str = str.replace(/(formalno)[-–—−‒― ]+(prawn)/gi, '$1-$2');
str = str.replace(/([!|] *([BG])\+ *(?:[!|]{2}) *\2)[-–—‒―]( *[!|])/g, '$1−$3');
str = str.replace(/([^'])\'{2}(\[{2}[^|\]]+\((?:gazeta|pismo)\)\|[^\]]+\]{2})\'{2}([^'])/g, '$1„$2”$3');
str = str.replace(/([\n (])(Do|do|obrębie|obszarze|Od|od|terenie|Z|z) +(\[{2}Generalne\u2552Gubernatorstwo\|Generaln)ej +Guberni\]{2}/g, '$1$2 $3ego Gubernatorstwa]]');
str = str.replace(/([\n (])(W|w) +(\[{2}Generalne\u2552Gubernatorstwo\|Generaln)ej +Guberni\]{2}/g, '$1$2 $3ym Gubernatorstwie]]');
str = str.replace(/(powierzchni[aąę]?(?: ok\.)?(?: | )?[-–—−‒― \d,.]+(?: | )?(?:tys\.|[bm]l[dn])?(?: | )?)\[{2}hektar(?:\|ha)?\]{2}(?:ami|ach|a|em|owi|om|ów|y|ze)?/gi, '$1ha');
str = str.replace(/(\|\+|\|-|[ !|])href *= *["|foosEpulKZ][- a-ząćęłńóśźż\u00C0-\u017F\u1E00-\u1FBC\d#.,:;()\/]+["|foosEpulKZ]/gi, '$1');
str = str.replace(/( \(?(?:\d[-–,.\d]*)) *([kMGT])hz(?![a-z])/g, '$1 $2Hz');
str = str.replace(/(\|\s*imię[\sr\d]*=\s*[A-ZĆŁÓŚŹŻ\u0410-\u042f])([A-ZĆŁÓŚŹŻ\u0410-\u042f])([A-ZĆŁÓŚŹŻ\u0410-\u042f]\.\s*[|}])/g, '$1.$2.$3');
str = str.replace(/(\|\s*imię[\sr\d]*=\s*[A-ZĆŁÓŚŹŻ\u0410-\u042f])([A-ZĆŁÓŚŹŻ\u0410-\u042f]\.\s*[|}])/g, '$1.$2');
str = str.replace(/(\| ?imię\d* ?= ?(?:[A-ZĆŁÓŚŹŻ][a-ząćęłńóśźż]{2,} )?[A-ZĆŁÓŚŹŻ\u0410-\u042f]\.) ([A-ZĆŁÓŚŹŻ\u0410-\u042f]\. ?[|}])/g, '$1$2');
str = str.replace(/(\| ?imię\d* ?= ?[A-ZĆŁÓŚŹŻ\u0410-\u042f]\.) ([A-ZĆŁÓŚŹŻ\u0410-\u042f]\.) ([A-ZĆŁÓŚŹŻ\u0410-\u042f]\. ?[|}])/g, '$1$2$3');
str = str.replace(/(\[{2}[Ii]nsurekcja\u2552[Kk]ościuszkowska\|)powstani[au] kościuszkowski(?:ego|m)/g, '$1insurekcji kościuszkowskiej');
str = str.replace(/(\| *)isben( *=)/gi, '$1isbn$2');
str = str.replace(/(IS[BS]N)[-–—−‒―](\d-*\d-*\d-*\d-*\d-*\d-*\d-*\d-*)/gi, '$1 $2');
str = str.replace(/(IS[BS]N):( )/gi, '$1$2');
str = str.replace(/([\n |]IS[BS]N[ =]+[-\d]+) *[-–—−‒―] *([-\d]+) *[-–—−‒―] *([-\d]+)/gi, '$1-$2-$3');
str = str.replace(/([\n |]IS[BS]N[ =]+[-\d]+) *[-–—−‒―] *([-\d]+) *[-–—−‒―] *([-\d]+)/gi, '$1-$2-$3');
str = str.replace(/([\n |]IS[BS]N[ =]+[-\d]+) *[-–—−‒―] *([-\d]+)/gi, '$1-$2');
str = str.replace(/(\{{2}IS[BS]N *\| *[-–—−‒―\dx]+\}{2})/gi, function(a, fil) {
fil = fil.replace(/(IS[BS]N) *(\|) */g, '$1$2');
fil = fil.replace(/[-–—−‒―]/g, '-');
return fil;});
str = str.replace(/((?:IS[BS]N [-x\d]+)|(?:\{{2}IS[BS]N\|[-x\d]+\}{2})) +(?:pp|p|str|ss|s)(\.) *(\d)/gi, '$1, s$2 $3');
str = str.replace(/((?:IS[BS]N [-x\d]+)|(?:\{{2}IS[BS]N\|[-x\d]+\}{2}))[,;]?(\n[^|}])/gi, '$1.$2');
str = str.replace(/;( (?:(?:IS[BS]N [-x\d]+)|(?:\{{2}IS[BS]N\|[-x\d]+\}{2}))\.(?:\n|(?:<\/ref>|<ref (?:group|name)[^>]+\/+>)))/gi, ',$1');
str = str.replace(/([^\n =(])(\{{2}ISBN\|)/gi, '$1 $2');
str = str.replace(/(\{{2}cytuj[^{}]+\| ?is[bs]n ?= ?)is[bs]n ?([^{}]+\}{2})/gi, '$1$2');
str = str.replace(/(\{{2}cytuj\s*(?:grę komputerową|książkę|odcinek|pismo|stronę)*\s*\|[^{}]+?\|\s*)\[*ISBN\]*(\s*)=*(\s*\d[^{}]*\}{2})/gi, '$1isbn$2=$3');
str = str.replace(/(\{{2}cytuj\s*(?:grę komputerową|książkę|odcinek|pismo|stronę)*\s*\|[^{}]+?\|\s*)\[*ISSN\]*(\s*)=*(\s*\d[^{}]*\}{2})/gi, '$1issn$2=$3');
str = str.replace(/(\[{2}[^(\]]+\(jezioro\)\|)((?:jeziora|jeziorem|jezioro|jeziorze) )([A-ZĄĆĘŁŃÓŚŹŻ][^\]]+\]{2})/gi, '$2$1$3');
str = str.replace(/reko-?(katolick)/g, 'recko$1');
str = str.replace(/(olsko|recko|taro|zymsko)[-–](katolick)/g, '$1$2');
str = str.replace(/(reko|taro)[-–](katolik)/g, '$1$2');
str = str.replace(/([\n |][(='‘’"„”“]*[Kk]ongresm)a/g, '$1e');
str = str.replace(/(\n \| *funkcja *= *)kongreswoman /gi, '$1Kongresmenka ');
str = str.replace(/k(onstytucj. 3 maja)/g, 'K$1');
str = str.replace(/(\bkpt)( | )/gi, '$1.$2');
str = str.replace(/(\d(?: | )km\/godz)([ \n,;:)\]<{])/gi, '$1.$2');
str = str.replace(/(\[{2}Krasnystaw)(\]{2})ie/g, '$1|Krasnymstawie$2');
str = str.replace(/\b(krwio)o(bieg)/gi, '$1$2');
str = str.replace(/([Kk]tó(?:r[aey]|rzy))(by)/g, '$1 $2');
str = str.replace(/(kulturalno|naukowo)[-–—−‒― ]+(badawcz|dydakt|oświatow|wydawnicz)/g, '$1-$2');
str = str.replace(/([^\n (/=>])(\{{2}lang\|)/gi, '$1 $2');
str = str.replace(/\b(lata?c?h? \d0)\'([^'])/gi, '$1.$2');
str = str.replace(/\b(lata?c?h? \d0. i \d0)\'([^'])/gi, '$1.$2');
str = str.replace(/(Lexis) +(Nexis)/g, '$1$2');
str = str.replace(/(\[{2})Liège\|Liege(\]{2})/g, '$1Liège$2');
str = str.replace(/ +lub\/i +/g, ' i/lub ');
str = str.replace(/\b(mecz)y\b/g, '$1ów');
str = str.replace(/((?:doradc|holding|koncern|konglomerat|magnat|patron|patronat|potenat|przedsiębiorc|przemysł|rynek|rynk)(?:a|u|y)? medi)aln(ego|y)/gi, '$1ow$2');
str = str.replace(/(\bmiejsko)[-– ]+(wiejsk)/g, '$1-$2');
str = str.replace(/(\{{2}cytuj[^}]+\| *miesiąc *= *)(styczeń|luty|marzec|kwiecień|maj|czerwiec|lipiec|sierpień|wrzesień|październik|listopad|grudzień)/gi, function (a, poc, fil) {
return poc + fil.toLowerCase();});
str = str.replace(/(\{{2}cytuj[^}]+\| *data *= *)(styczeń|luty|marzec|kwiecień|maj|czerwiec|lipiec|sierpień|wrzesień|październik|listopad|grudzień)/gi, function (a, poc, fil) {
return poc + fil.toLowerCase();});
str = str.replace(/([\n (]\'*[Mm]\.) *(in) *([,:])/g, '$1$2.$3');
str = str.replace(/([\n (]\'*[Mm]\.) *(in\.)( *)/g, '$1$2 ');
str = str.replace(/([\n (]\'*[Mm]\.in) /g, '$1. ');
str = str.replace(/([\n (]\'*[Mm]\.in\.) ([,:])\.* */g, '$1$2 ');
str = str.replace(/\bm\.in([,:])/g, 'm.in.$1');
str = str.replace(/(m\.in\.) +(\)|\{{2}(?:[Cc]ytuj |[ru])|<ref)/g, '$1$2');
str = str.replace(/(\d(?: | )[bm]l[dn])\.([,;:)])/g, '$1$2');
str = str.replace(/(\d(?: | )[bm]l[dn])\.((?: | )[a-zćłóśźż])/g, '$1$2');
str = str.replace(/([\n (])(do|dla|ku|nad?|od?|prze[dz]|pod?|u|wraz z|w|za?) (m\.in\.|np\.)([ :])/g, '$1$3 $2$4');
str = str.replace(/([Nn]adw)y(ręż)/g, '$1e$2');
str = str.replace(/(arodowo)[-–](wyzwoleńcz)/g, '$1$2');
str = str.replace(/\[{2}[Nn]aszej[ \u2552]ery\|(n\.e\.)\]{2}/g, '$1');
str = str.replace(/\[{2}[Pp]rzed[ \u2552]naszą[ \u2552]erą\|(p\.n\.e\.)\]{2}/g, '$1');
str = str.replace(/(\W[Nn]ie)(naj)/g, '$1 $2');
str = str.replace(/(N)•(m[^•])/g, '$1·$2');
str = str.replace(/([ (]m)etr(?:ac?h?|ów|y)?( +\[*[NPnp]\.p\.m\.)/g, '$1$2');
str = str.replace(/(\[{2})[NPnp]\.p\.m\.\|(m )([np]\.p\.m\.\]{2})/g, '$2$1$3');
str = str.replace(/(\d)(m(?: | )(?:\[{2})?[np]\.p\.m\.)/g, '$1 $2');
str = str.replace(/([^\d]\d)(?: | )(\d{3}(?: | )m(?: | )(?:\[{2})?[np]\.p\.m\.)/g, '$1$2');
str = str.replace(/(\n.+?\[{2}n\.p\.m\.\]{2})(.*(\n.+)*)/g, function(a, poc, fil, ins) {
fil = fil.replace(/\[{2}(n\.p\.m\.)\]{2}/g, '$1');
return poc + fil;});
str = str.replace(/(\n.+?\[{2}p\.p\.m\.\]{2})(.*(\n.+)*)/g, function(a, poc, fil, ins) {
fil = fil.replace(/\[{2}(p\.p\.m\.)\]{2}/g, '$1');
return poc + fil;});
str = str.replace(/(\{{2}Cytuj [^}]+\| ?data ?= ?)Nr/gi, '$1nr');
str = str.replace(/(\{{2}odn\|[^{}]+\|)[ps]+ *= *(\d[^{|}]+?)[,;.]*(\}{2})/g, '$1s=$2$3');
str = str.replace(/(\{{2}odn\|[^{}]+s=[^{|}]+) i( [\d–]+\}{2})/g, '$1,$2');
str = str.replace(/([\n („]ok) /g, '$1. ');
str = str.replace(/([\n („]ok\.)([^\n &:)])/g, '$1 $2');
str = str.replace(/([\n („>])Ok\. /g, '$1Około ');
str = str.replace(/( ['(]*[Oo]p\. ?)[Cc](it)\.*([,;:']?[\n )])/g, '$1c$2.$3');
str = str.replace(/([\n (]os)(\/km)/g, '$1.$2');
str = str.replace(/(\[{2}Płyta[ \u2552]gramofonowa\|\d{1,2})(?:["”]|foosEpulKL)/gi, '$1″');
str = str.replace(/((?: | )w\.)(p\.n\.e\.)/g, '$1 $2');
str = str.replace(/ pne\.?([\n ,;:!?'’”)\]])/g, ' p.n.e.$1');
str = str.replace(/[-—−‒―÷]((?:\[{2}\d+[ \u2552]|\d+(?: | ))(?:r\.(?: | ))?(?:p\.)?n\.e\.)/g, '–$1');
str = str.replace(/(\[{2})(\d{1,4})([ \u2552]p\.n\.e\.)(\]{2}[-–](?:\[{2})?\d{1,4}[ \u2552]p\.n\.e\.(?:\]{2})?)/g, '$1$2$3|$2$4');
str = str.replace(/([\n (]\d{1,4}\??)(?: | )p\.n\.e\.(?: | )?([-–])(?: | )?((?:\[{2})?\d{1,4}\??[ \u2552]p\.n\.e\.(?:\]{2})?)/g, '$1$2$3');
str = str.replace(/((?: | )p\.n\.e\.)([-–])(\d+(?: | )n\.e\.)/g, '$1 $2 $3');
str = str.replace(/(\[{2})([IVX]+)([ \u2552]wiek[ \u2552](?:p\.)?n\.e\.)(\]{2})[-– ]+(\[{2}[IVX]+[ \u2552]wiek[ \u2552](?:p\.)?n\.e\.\]{2})/g, '$1$2$3|$2$4–$5');
str = str.replace(/(południow|północ\]*n)((?:y|ego|emu|ym)\]*)[-–](\[*(?:wsch[oó]d|zach[oó]d))/gi, '$1$2 $3');
str = str.replace(/([ (]p)ó(łn\.)/g, '$1$2');
str = str.replace(/\b([Pp]ł?[dn])[-–. ]+(wsch|zach)\.?([,;:.)!?]?[\n ])/g, '$1.-$2.$3');
str = str.replace(/(popularno|fantastyczno)[-– ]+(naukow)/gi, '$1$2');
str = str.replace(/\b([Pp]o) +(za )/g, '$1$2');
str = str.replace(/(\()pod (red\.\))/g, '$1$2');
str = str.replace(/([^[])\[r(ed\.)\]([^\]])/gi, '$1(r$2)$3');
str = str.replace(/(Powstanie[ \u2552])['‘](44)/g, '$1’$2');
str = str.replace(/(nr\.? \d+)( poz\. \d)/gi, '$1,$2');
str = str.replace(/(\d)(?: | )*\[{2}Procent\|(%)\]{2}/gi, '$1$2');
str = str.replace(/(\d)(?: | )(%[ ,;:.…!?'‘’"„”“)<{])/g, '$1$2');
str = str.replace(/\bpseud\.((?:\]{2})?:? )/g, 'ps.$1');
str = str.replace(/(\[{2}Pseudonim\|ps)(\]{2})\./gi, '$1.$2');
str = str.replace(/([\n (]ps\.:?)(\')/g, '$1 $2');
str = str.replace(/([\n (]ps\.:?) *(["„”])/g, '$1 „');
str = str.replace(/((?:\[{2}Pseudonim\|ps\.\]{2}|ps\.):?(?: „[^”]+?”,)* )["„”“]?\'{2}["„”“]?([^']+?)["„”“]?\'{2}["„”“]?(, )["„”“]?\'{2}["„”“]?([^']+?)["„”“]?\'{2}["„”“]?(, )["„”“]?\'{2}["„”“]?([^']+?)["„”“]?\'{2}["„”“]?(, )["„”“]?\'{2}["„”“]?([^']+?)["„”“]?\'{2}["„”“]?/gi, '$1„$2”$3„$4”$5„$6”$7„$8”')
str = str.replace(/((?:\[{2}Pseudonim\|ps\.\]{2}|ps\.):?(?: „[^”]+?”,)* )["„”“]?\'{2}["„”“]?([^']+?)["„”“]?\'{2}["„”“]?(, )["„”“]?\'{2}["„”“]?([^']+?)["„”“]?\'{2}["„”“]?/gi, '$1„$2”$3„$4”')
str = str.replace(/((?:\[{2}Pseudonim\|ps\.\]{2}|ps\.):?(?: „[^”]+?”,)* )["„”“]?\'{2}["„”“]?([^']+?)["„”“]?\'{2}["„”“]?/gi, '$1„$2”')
str = str.replace(/ +pt\.?: */g, ' pt. ');
str = str.replace(/\b([Pp]ur)e(e)/g, '$1é$2');
str = str.replace(/([ (]p)\.(w\. )/g, '$1$2');
str = str.replace(/([\n („']\d{4} +r)([\n )|”'])/g, '$1.$2');
str = str.replace(/(\d )r(\. \d)/g, '$1foosEpulKA$2');
str = str.replace(/ r\. +(\[{2}[12]?\d{3}\]{2})\./g, ' $1 r.');
str = str.replace(/ r\. +(\[{2}[12]?\d{3}\]{2}) /g, ' $1 r. ');
str = str.replace(/ r\. +(\[{2}[12]?\d{3}\]{2})([\n,;:!?'”<)])/g, ' $1 r.$2');
str = str.replace(/foosEpulKA/g, 'r');
str = str.replace(/(\[{2}\d{1,4}\]{2})(r\.)/g, '$1 $2');
str = str.replace(/(\[{2}\d+)\|\d+( rok(?:iem|u))(\]{2})/g, '$1$3$2');
str = str.replace(/(\[{2}I\u2552rozbiór\u2552Polski\|)[Pp]ierwsz(?:y|ego|emu|ym)( roz)/g, '$1I$2');
str = str.replace(/(\[{2}II\u2552rozbiór\u2552Polski\|)[Dd]rug(?:i|iego|iemu|im)( roz)/g, '$1II$2');
str = str.replace(/(\[{2}III\u2552rozbiór\u2552Polski\|)[Tt]rzec(?:i|iego|iemu|im)( roz)/g, '$1III$2');
str = str.replace(/( rozdz\.) *(.)/g, '$1 $2');
str = str.replace(/(\[{2}[^\n\]]+?\|(?:I|II|III|IV) Rzecz)(pospolitej)/g, '$1y$2');
str = str.replace(/(\[{2}(?:I|II|III|IV)\u2552Rzeczpospolita\|Rzecz)(pospolitej)/g, '$1y$2');
str = str.replace(/((?:I|II|III|IV|ierwszej|rugiej|rzeciej|zwartej) Rzecz)(pospolitej ==)/g, '$1y$2');
str = str.replace(/(Rzecz)(pospolitej Ludowej ==)/g, '$1y$2');
str = str.replace(/(\[{2}Rzeczpospolita\u2552Obojga\u2552Narodów\|Rzecz)(pospolitej)/g, '$1y$2');
str = str.replace(/(\|Rzecz)(pospolitej Polskiej)/g, '$1y$2');
str = str.replace(/(\[{2}Rzeczpospolita\u2552(?:Polska|Szlachecka)\|Rzecz)(pospolitej)/g, '$1y$2');
str = str.replace(/(Rzeczpospolita\u2552Ludowa\|Polskiej Rzecz)(pospolitej)/g, '$1y$2');
str = str.replace(/(Prezydenci i premierzy Drugiej Rzecz)(pospolitej)/g, '$1y$2');
str = str.replace(/(\[{2}[^[|\]]*Rzeczypospolitej[^[|\]]*\|[^[|\]]*Rzecz)(pospolitej[^[|\]]*\]{2})/g, '$1y$2');
str = str.replace(/( [Ss])s?(\.)(\d+[-–]?\d*\.<\/ref>)/g, '$1$2 $3');
str = str.replace(/([ (](?:skala|skali) 1) *(:) */g, '$1$2');
str = str.replace(/( 1:\d{1,3})(\d{3})(000[^\d])/g, '$1 $2 $3');
str = str.replace(/( 1:\d{2,3})(000[^\d])/g, '$1 $2');
str = str.replace(/(społeczno) *[-–—−‒―]+ *([a-ząćęłńóśźż])/gi, '$1-$2');
str = str.replace(/(sportowo)[-–—−‒― ]+(pożarnicz|rehabilitacyjn|rekreacyjn|szkole?n|techniczn|treningow|turystyczn|użytkow|widowiskow|wychowawcz|wypoczynkow)/gi, '$1-$2');
str = str.replace(/(stan (?:na|w(?: | )dniu):? )\[*(\d{1,2}(?: | |\u2552)(?:stycznia|lutego|marca|kwietnia|maja|czerwca|lipca|sierpnia|września|października|listopada|grudnia))\]*( )\[*(\d{4})(\]{2})?/gi, '$1$2$3$4');
str = str.replace(/(Statystyczny Rzecz)(pospolitej Polskiej)/g, '$1y$2');
str = str.replace(/ +z +(\[{2}[^[|]+?\|Rzecz)(pospolitą)/g, ' z $1ą$2');
str = str.replace(/(\n[ #*:;]*\[https?:.+ )Oficjalna strona(\]\n)/g, '$1Strona oficjalna$2');
str = str.replace(/((?:[\n (]| )(?:obr|strz))(\/min)/g, '$1.$2');
str = str.replace(/((?:obr|strz)\.\/min)\.([,;:!?'’”{)])/g, '$1$2');
str = str.replace(/(szkol(?:no|eniowo))[-–—−‒― ]+(akrobacyjn|badawcz|bojow|gimnazjaln|łącznikow|myśliwsk|przedszkoln|sportow|treningow|wychowawcz|wyczynow|wypoczynk|zapasow)/gi, '$1-$2');
str = str.replace(/([\n >]['"„(]*(?:[Nn]a|[Oo]|[Pp]rzez|[Ww]) )tą /g, '$1tę ');
str = str.replace(/([\n |]['"„]*[Tt])ą( ['"„]*[-\wąćęłńóśźż]+?(?:ę|ść)['"”]*[\n ,;:.…!?)])/g, '$1ę$2');
str = str.replace(/([\n (][Tt]el)(\/[Ff]a(?:ks|x))/g, '$1.$2');
str = str.replace(/(, tym bardziej),( że )/g, '$1$2');
str = str.replace(/(\d) +tyś\./g, '$1 tys.');
str = str.replace(/(\[{2})(\d+)\|\2([^\]]+)(\]{2})/g, '$1$2$4$3');
str = str.replace(/([ (](?:ur|zm)\.) *(ok)oło( | )/g, '$1 $2.$3');
str = str.replace(/([ (](?:ur|zm))( | )(w(?: | )|(?:\[{2})?\d)/g, '$1.$2$3');
str = str.replace(/([ (](?:ur|zm)\.)((?:\[{2})?\d)/g, '$1 $2');
str = str.replace(/((?:\(|[-–,] )(?:ur|zm)\.) *w* *((?:ok\.(?: | ))?(?:\[{2})?\d{3,4}(?:\]{2})?)(?: | )*(?:r\.|roku)?(?=\)|, zm\.| –)/g, '$1 $2');
str = str.replace(/([ (](?:ur|zm)\.)(?: | )w((?: | )(?:\[{2})?\d{1,2}(?: | )(?:stycznia|lutego|marca|kwietnia|maja|czerwca|lipca|sierpnia|września|października|listopada|grudnia))/g, '$1$2')
str = str.replace(/(\((?:ur|zm)\.[ \u2552[?\dok.]+?(?:stycznia|lutego|marca|kwietnia|maja|czerwca|lipca|sierpnia|września|października|listopada|grudnia)*\]* ?\[*\d*\]*)(?: | )+(?:r\.|roku)([^\w])/g, '$1$2');
str = str.replace(/(\(ur\. +(?:ok\.(?: | )*)?(?:(?:\[{2})?(?:\d{1,2}[ \u2552](?:stycznia|lutego|marca|kwietnia|maja|czerwca|lipca|sierpnia|września|października|listopada|grudnia))(?:\]{2})? ?)?(?:\[{2})?\d{3,4}(?:\]{2})?) *[-–—−;] *(zm\.)/g, '$1, $2');
str = str.replace(/(\(ur\.(?: | )(?:(?:ok\.|przed|po)(?: | ))*(?:(?:\[{2})?\d{1,2}(?: |\u2552| )(?:stycznia|lutego|marca|kwietnia|maja|czerwca|lipca|sierpnia|września|października|listopada|grudnia)(?:\]{2})?(?: | ))?(?:\[{2})?\d{3,4}(?:(?: |\u2552| )(?:(?:p\.)?n\.e\.))?(?:\]{2})?(?: we? .+?)?(?:<ref(?: (?:group|name)[^\/>]+)?>[^<]+<\/ref>|<ref (?:group|name)[^\/>]+\/>|\{{2}(?:odn|[ru])\|[^}]+\}{2})*)(?:,| –)( zm\.(?: | )(?:(?:ok\.|przed|po)(?: | ))*(?:(?:\[{2})?\d{1,2}(?: |\u2552| )(?:stycznia|lutego|marca|kwietnia|maja|czerwca|lipca|sierpnia|września|października|listopada|grudnia)(?:\]{2})?(?: | ))?(?:\[{2})?\d{3,4}(?:(?: |\u2552| )(?:(?:p\.)?n\.e\.))?(?:\]{2})?)(?:(?: | )(?:roku|r\.))?([ )])/g, '$1,$2$3');
str = str.replace(/vis[-– ]+[aà][-– ]+vis/g, 'vis-à-vis');
str = str.replace(/\(w:\) */g, '[w:] ');
str = str.replace(/\(w\): */g, '[w:] ');
str = str.replace(/\[w\]: */g, '[w:] ');
str = str.replace(/\[w\}: */g, '[w:] ');
str = str.replace(/\', *\[w\.\] */g, '\', [w:] ');
str = str.replace(/\', *\[w\] */g, '\', [w:] ');
str = str.replace(/([^,;:.=]) (\[w:\]) */g, '$1, $2 ');
str = str.replace(/ (wrestling)/gi, '\x01$1');
str = str.replace(/([\n '"”(][Ww]) +(['"„]*(?:\[{2}[^|\]]+\|)?['"„]*(?:[FVWfvw][bcdgjklłmnpqrstvwxz]+[aąeęioóuy]))/g, '$1e $2');
str = str.replace(/([\n '"”(][Ww]) +(['"„]*\[{2}(?:[FVWfvw][bcdgjklłmnpqrstvwxz]+[aąeęioóuy])[^|\]]*\]{2})/g, '$1e $2');
str = str.replace(/\x01/gi, ' ');
str = str.replace(/\b(w\/g|wg\.) /g, 'wg ');
str = str.replace(/\bWg.? /g, 'Według ');
str = str.replace(/(\[{2}Wi-Fi)\|WiFi(\]{2})/g, '$1$2');
str = str.replace(/W\. +(Brytani)/g, 'Wlk. $1');
str = str.replace(/(widowiskowo)[-–—−‒― ]+(sportow)/gi, '$1-$2');
str = str.replace(/–(wiecz)/gi, '-$1');
str = str.replace(/( w)e( \[{2}Wiedeń\|Wiedniu\]{2})/gi, '$1$2');
str = str.replace(/(wietrzno)[-–—−‒― ]*[Dd](esantow)/g, '$1d$2');
str = str.replace(/([(| ]właś)ć\./g, '$1c.');
str = str.replace(/(\n\'{2,5}[^']+\'{2,5})( właśc\.)/g, '$1,$2');
str = str.replace(/(\[{2}I\u2552wojna\u2552światowa\|)pierwsz(?:a|ą|ej)( woj)/gi, '$1I$2');
str = str.replace(/(\[{2}II\u2552wojna\u2552światowa\|)drug(?:a|ą|iej)( woj)/gi, '$1II$2');
str = str.replace(/(wojn(?:a|ą|ę|ie|y) )30-(letni)/g, '$1trzydziesto$2');
str = str.replace(/([^\w][Ww]) +(skutek)/g, '$1$2');
str = str.replace(/(Wyd)\.( Nauk)(?:\.|owe)( PWN)/g, '$1awnictwo$2owe$3');
str = str.replace(/Wydawn?\. /g, 'Wyd. ');
str = str.replace(/Państwowe Wyd\. Naukowe/g, 'Państwowe Wydawnictwo Naukowe');
str = str.replace(/Uczelniane Wydawnictw[ao] Naukowo[-– ]+Dydaktyczne AGH/gi, 'Uczelniane Wydawnictwa Naukowo-Dydaktyczne AGH');
str = str.replace(/Wydawnictw[ao] Naukow[eo](?:[-– i]| )+Techniczne/gi , 'Wydawnictwa Naukowo-Techniczne');
str = str.replace(/(Wyd)[a-z.]+ (Artystyczne i(?: | )Filmowe|Komunikacji i(?: | )Łączności|Szkolne i(?: | )Pedagogiczne|Naukowo-Techniczne)/g, '$1awnictwa $2');
str = str.replace(/(Zakład Narodowy im\. Ossolińskich )[-–]( Wyd)(?:awn)?\./gi, '$1–$2awnictwo');
str = str.replace(/(\[{2}YouTube)\|youtube(\]{2})/gi, '$1$2');
str = str.replace(/( z) (['’‘"„”“«»[]*(?:\[{2}[^|\]]+\|)?St\.?[- \u2552])/g, '$1foosEpulKA$2');
str = str.replace(/([\n '"”(][Zz]) +(['"„]*(?:\[{2}[^|\]]+\|)?['"„]*(?:[Rr]z|[Ss][hz]|[Śś]|[Zz]|[Źź]|[Żż])[bcćdfgjklłmnńpqrsśtvwxzźż])/g, '$1e $2');
str = str.replace(/([\n '"”(][Zz]) +(['"„]*\[{2}(?:[Rr]z|[Ss][hz]|[Śś]|[Zz]|[Źź]|[Żż])[bcćdfgjklłmnńpqrsśtvwxzźż][^|\]]*\]{2})/g, '$1e $2');
str = str.replace(/([\n '"”(][Zz]) +(['"„]*(?:\[{2}[^|\]]+\|)?['"„]*(?:[Ss])(?:[bćfgjklłmnńpqrsśtvwxźż]|ch[^aeiouyäöü]))/g, '$1e $2');
str = str.replace(/([\n '"”(][Zz]) +(['"„]*\[{2}(?:[Ss])(?:[bćfgjklłmnńpqrsśtvwxźż]|ch[^aeiouyäöü])[^|\]]*\]{2})/g, '$1e $2');
str = str.replace(/([\n '"”(][Zz]) +(['"„]*(?:\[{2}[^|\]]+\|)?['"„]*(?:[Ww]s(?:ch|p|t)))/g, '$1e $2');
str = str.replace(/([\n '"”(][Zz]) +(['"„]*\[{2}(?:[Ww]s(?:ch|p|t))[^|\]]*\]{2})/g, '$1e $2');
str = str.replace(/([\n '"”(][Zz]) +(['"„]*(?:\[{2}[^|\]]+\|)?['"„]*(?:[Zz][bdgjlłmnrwz]))/g, '$1e $2');
str = str.replace(/([\n '"”(][Zz]) +(['"„]*\[{2}(?:[Zz][bdgjlłmnrwz])[^|\]]*\]{2})/g, '$1e $2');
str = str.replace(/foosEpulKA/g, ' ');
str = str.replace(/(Zasługi Rzecz)(pospolitej Polskiej)/gi, '$1y$2');
str = str.replace(/([\n '"„”(][Zz]) +((?:\[{2}|\[{2}[^\n\]]+?\|)?(?:Lwowa))/g, '$1e $2');
str = str.replace(/([\n (]['„]*[Zz])(wolna)/g, '$1 $2');
str = str.replace(/\bZ[Bb][Oo][Ww][Ii][Dd]\b/g, 'ZBoWiD');
str = str.replace(/(Zobacz też:)(\[)/gi, '$1 $2');
str = str.replace(/(\n==+ Zobacz) *(?:r[oó]wnie[zźż]|tak[zźż]e|te[zźż])? *(==)/gi, '$1 też $2');
str = str.replace(/(Związek Mostowców Rzecz)(pospolitej)/gi, '$1y$2');
str = str.replace(/(\n \|[^\n=]+= *)<!-- *(?:podpis grafiki|z http:\/\/) *--> *(?=\n)/gi, '$1');
str = str.replace(/(\| *(?:czasopismo|rozdział|tytuł|wydawca) *= *)["„”“]([^"„”“|}]+|\[{2}[^\]]+\]{2})["„”“]( *[|}])/gi, '$1$2$3');
str = str.replace(/(\| *(?:czasopismo) *= *)\'{2}([^'|}]+|\[{2}[^\]]+\]{2})\'{2}( *[|}])/gi, '$1$2$3');
str = str.replace(/(\{{2}cytuj (?:książkę|pismo)[^}]+?\| *(?:tytuł|seria) *= *)\'{2}([^'|}]+)\'{2}( *[|}])/gi, '$1$2$3');
str = str.replace(/(\n \| *(?:gęstość|liczba ludności|ląd|ludn|populacja|pow_dorzecza|powierzchnia|woda) *= *(?:ok\.)* *\d{2,3})(\d{3}[^\d ])/g, '$1 $2');
str = str.replace(/(\n \| *(?:gęstość|liczba ludności|ląd|ludn|populacja|pow_dorzecza|powierzchnia|woda) *= *(?:ok\.)* *\d{2,3})(\d{3}[^\d ])/g, '$1 $2');
str = str.replace(/(\{{2}cytuj (?:grę komputerową|książkę|odcinek|pismo|stronę)[^}]*?\| *strony *=[^|}]+)(?:str|s)\.([\n ]*[|}])/gi, '$1$2');
str = str.replace(/(\{{2}cytuj (?:grę komputerową|książkę|odcinek|pismo|stronę)[^}]*?\| *strony *= *)(?:str|s)\. */gi, '$1');
// 166
str = str.replace(/[Ff]oosEpulKX/g, '');
str = str.replace(/(\[{2}[^[\]|]*)\|/g, '$1\u2553');
str = str.replace(/(\{{2}cytuj (?:grę komputerową|książkę|odcinek|pismo|stronę)\s*(?:\|(?:\{{2}[^{}]*\}{2}|[^{|}])*?)*?\}{2})/gi, function(a, fil) {
fil = fil.replace(/(\|\s*(?:nazwisko|imię|autor|autor link|język)) (\d+[\sr]*=)/g, '$1$2');
fil = fil.replace(/(\|\s*)link autor(\d*\s*=\s*\|)/g, '$1autor link$2');
fil = fil.replace(/(\|\s*autor)(\d+)( link)(\s*=)/g, '$1$3$2$4');
fil = fil.replace(/(\|\s*s)(\s*=)/g, '$1trony$2');
return fil;});
str = str.replace(/(\{{2}cytuj pismo\s*\|(?:(?:\{{2}[^{}]*\}{2}|[^}])*?)\|\s*)(pismo\s*=(?:(?:\{{2}[^{}]*\}{2}|[^}])*)\}{2})/gi, '$1czaso$2');
str = str.replace(/(\{{2}cytuj (?:stronę)(?:\s*\|(?:\{{2}[^{}]*\}{2}|[^}])*?)?\s*\|\s*)archiveurl(\d*\s*=(?:(?:\{{2}[^{}]*\}{2}|[^}])*)\}{2})/gi, '$1archiwum$2');
str = str.replace(/(\{{2}cytuj (?:grę komputerową|książkę|odcinek|pismo|stronę)(?:\s*\|(?:\{{2}[^{}]*\}{2}|[^}])*?)?\s*\|\s*)authorlink(\d*\s*=(?:(?:\{{2}[^{}]*\}{2}|[^}])*)\}{2})/gi, '$1autor link$2');
str = str.replace(/(\{{2}cytuj(?: (?:grę komputerową|książkę|odcinek|pismo|stronę))?(?:\s*\|(?:\{{2}[^{}]*\}{2}|[^}])*?)?\s*\|\s*)quote(\d*\s*=(?:(?:\{{2}[^{}]*\}{2}|[^}])*)\}{2})/gi, '$1cytat$2');
str = str.replace(/(\{{2}cytuj(?:\s*\|(?:\{{2}[^{}]*\}{2}|[^}])*?)?\s*\|\s*)(?:date|datum)(\d*\s*=(?:(?:\{{2}[^{}]*\}{2}|[^}])*)\}{2})/gi, '$1data$2');
str = str.replace(/(\{{2}cytuj(?: (?:grę komputerową|książkę|odcinek|pismo|stronę))?(?:\s*\|(?:\{{2}[^{}]*\}{2}|[^}])*?)?\s*\|\s*)(?:date|datum)(\d*\s*=(?:(?:\{{2}[^{}]*\}{2}|[^}])*)\}{2})/gi, '$1data$2');
str = str.replace(/(\{{2}cytuj(?: (?:grę komputerową|książkę|odcinek|pismo|stronę))?(?:\s*\|(?:\{{2}[^{}]*\}{2}|[^}])*?)?\s*\|\s*)(?:access-?date|zugriff)(\d*\s*=(?:(?:\{{2}[^{}]*\}{2}|[^}])*)\}{2})/gi, '$1data dostępu$2');
str = str.replace(/(\{{2}cytuj (?:grę komputerową|książkę|odcinek|pismo|stronę)(?:\s*\|(?:\{{2}[^{}]*\}{2}|[^}])*?)?\s*\|\s*)(?:first|imie)(\d*\s*=(?:(?:\{{2}[^{}]*\}{2}|[^}])*)\}{2})/gi, '$1imię$2');
str = str.replace(/(\{{2}cytuj (?:grę komputerową|książkę|odcinek|pismo|stronę)(?:\s*\|(?:\{{2}[^{}]*\}{2}|[^}])*?)?\s*\|\s*)lang(?:uage)?(\d*\s*=(?:(?:\{{2}[^{}]*\}{2}|[^}])*)\}{2})/gi, '$1język$2');
str = str.replace(/(\{{2}cytuj (?:grę komputerową|książkę|odcinek|pismo|stronę)(?:\s*\|(?:\{{2}[^{}]*\}{2}|[^}])*?)?\s*\|\s*)(?:location|ort)(\d*\s*=(?:(?:\{{2}[^{}]*\}{2}|[^}])*)\}{2})/gi, '$1miejsce$2');
str = str.replace(/(\{{2}cytuj (?:grę komputerową|książkę|odcinek|pismo|stronę)(?:\s*\|(?:\{{2}[^{}]*\}{2}|[^}])*?)?\s*\|\s*)last(\d*\s*=(?:(?:\{{2}[^{}]*\}{2}|[^}])*)\}{2})/gi, '$1nazwisko$2');
str = str.replace(/(\{{2}cytuj(?: (?:stronę))?(?:\s*\|(?:\{{2}[^{}]*\}{2}|[^}])*?)?\s*\|\s*)publisher(\d*\s*=(?:(?:\{{2}[^{}]*\}{2}|[^}])*)\}{2})/gi, '$1opublikowany$2');
str = str.replace(/(\{{2}cytuj(?: (?:stronę))?(?:\s*\|(?:\{{2}[^{}]*\}{2}|[^}])*?)?\s*\|\s*)work(\d*\s*=(?:(?:\{{2}[^{}]*\}{2}|[^}])*)\}{2})/gi, '$1praca$2');
str = str.replace(/(\{{2}cytuj (?:grę komputerową|książkę|odcinek|pismo|stronę)(?:\s*\|(?:\{{2}[^{}]*\}{2}|[^}])*?)?\s*\|\s*)(?:jahr|year)(\d*\s*=(?:(?:\{{2}[^{}]*\}{2}|[^}])*)\}{2})/gi, '$1rok$2');
str = str.replace(/(\{{2}cytuj (?:grę komputerową|książkę|odcinek|pismo|stronę)(?:\s*\|(?:\{{2}[^{}]*\}{2}|[^}])*?)?\s*\|\s*)series(\d*\s*=(?:(?:\{{2}[^{}]*\}{2}|[^}])*)\}{2})/gi, '$1seria$2');
str = str.replace(/(\{{2}cytuj(?: (?:książkę|pismo))?(?:\s*\|(?:\{{2}[^{}]*\}{2}|[^}])*?)?\s*\|\s*)(?:publisher|verlag)(\d*\s*=(?:(?:\{{2}[^{}]*\}{2}|[^}])*)\}{2})/gi, '$1wydawca$2');
str = str.replace(/(\{{2}cytuj (?:grę komputerową|książkę|odcinek|pismo|stronę)(?:\s*\|(?:\{{2}[^{}]*\}{2}|[^}])*?)?\s*\|\s*)archive-?date(\d*\s*=(?:(?:\{{2}[^{}]*\}{2}|[^}])*)\}{2})/gi, '$1zarchiwizowano$2');
str = str.replace(/(\{{2}cytuj książkę[^{}]+\| *)autor( *=(?:(?:\[{2}[^[|\]]+\|[^[|\]]+\]{2})|[^|])+\(red\.\) *\|)/gi, '$1inni$2');
str = str.replace(/(\{{2}cytuj (?:książkę)\s*\|(?:\{{2}[^{}]+\}{2}|\{[^{}]+\}|[^{}]|<math>.+?<\/math>)+\}{2})/gi, function(a, fil) {
fil = fil.replace(/(\|\s*(data|issn)\s*=\s*)(?=\||\}{2})/g, '');
return fil;});
str = str.replace(/(\{{2}cytuj (?:pismo)\s*\|(?:\{{2}[^{}]+\}{2}|\{[^{}]+\}|[^{}]|<math>.+?<\/math>)+\}{2})/gi, function(a, fil) {
fil = fil.replace(/(\|\s*(adres czasopisma|isbn|miejsce|odpowiedzialność|oznaczenie|wydawca)\s*=\s*)(?=\||\}{2})/g, '');
return fil;});
str = str.replace(/(\{{2}cytuj (?:stronę)\s*\|(?:\{{2}[^{}]+\}{2}|\{[^{}]+\}|[^{}]|<math>.+?<\/math>)+\}{2})/gi, function(a, fil) {
fil = fil.replace(/(\|\s*(oznaczenie|praca|strony)\s*=\s*)(?=\||\}{2})/g, '');
return fil;});
str = str.replace(/(\{{2}cytuj (?:grę komputerową|książkę|odcinek|pismo|stronę)\s*\|(?:\{{2}[^{}]+\}{2}|\{[^{}]+\}|[^{}]|<math>.+?<\/math>)+\}{2})/gi, function(a, fil) {
fil = fil.replace(/(\|\s*(arxiv|bibcode|cytat|część|tytuł części|doi|doietykieta|format|id|inni|język\d+| jstor|lccn|miesiąc|oclc|pmc|pmid|seria|tom|tytuł tomu)\s*=\s*)(?=\||\}{2})/g, '');
return fil;});
// 172
str = str.replace(/(\{{2}cytuj (?:grę komputerową|książkę|odcinek|pismo|stronę)\s*(?:\|(?:\{{2}[^{}]*\}{2}|[^{|}])*?)*?\}{2})/gi, function(a, fil) {
fil = fil.replace(/(\|\s*imię(\d*)\s*=[^|}]*)(\|\s*nazwisko\2\s*=[^|}]*)/g, '$3$1');
return fil;});
str = str.replace(/(\{{2}cytuj (?:grę komputerową|książkę|odcinek|pismo|stronę)\s*(?:\|(?:\{{2}[^{}]*\}{2}|[^{|}])*?)*?\}{2})/gi, function(a, fil) {
fil = fil.replace(/(\|\s*imię(\d*) r\s*=[^|}]*)(\|\s*nazwisko\2 r\s*=[^|}]*)/g, '$3$1');
return fil;});
str = str.replace(/(\{{2}cytuj (?:grę komputerową|książkę|odcinek|pismo|stronę)\s*(?:\|(?:\{{2}[^{}]*\}{2}|[^{|}])*?)*?\}{2})/gi, function(a, fil) {
fil = fil.replace(/(\|\s*autor(\d*)\s*=(?:\{{2}[^{}]*\}{2}|[^|}])*)(\|\s*nazwisko\2\s*=(?:\{{2}[^{}]*\}{2}|[^|}])*\|\s*imię\2\s*=(?:\{{2}[^{}]*\}{2}|[^|}])*)/g, '$3$1');
return fil;});
str = str.replace(/(\{{2}cytuj (?:grę komputerową|książkę|odcinek|pismo|stronę)\s*(?:\|(?:\{{2}[^{}]*\}{2}|[^{|}])*?)*?\}{2})/gi, function(a, fil) {
fil = fil.replace(/(\|\s*nazwisko(\d*)\s*=\s?[^\s|](?:\{{2}[^{}]*\}{2}|[^|}])*\|\s*imię\2\s*=\s?[^\s|](?:\{{2}[^{}]*\}{2}|[^|}])*)(\|\s*autor\2\s*=(?:\{{2}[^{}]*\}{2}|[^|}])*)/g, '$1');
return fil;});
// 170
str = str.replace(/(\{{2}cytuj (?:pismo)\s*)((?:\|(?:\{{2}[^{}]*\}{2}|[^|}])*?)*?)(\|\s*czasopismo\s*=(?:\{{2}[^{}]*\}{2}|[^|}])*)((?:\|(?:\{{2}[^{}]*\}{2}|[^|}])*?)*?\}{2})/gi, '$1$3$2$4');
str = str.replace(/(\{{2}cytuj (?:książkę)\s*)((?:\|(?:\{{2}[^{}]*\}{2}|[^|}])*?)*?)(\|\s*inni\s*=(?:\{{2}[^{}]*\}{2}|[^|}])*)((?:\|(?:\{{2}[^{}]*\}{2}|[^|}])*?)*?\}{2})/gi, '$1$3$2$4');
str = str.replace(/(\{{2}cytuj (?:książkę|pismo)\s*)((?:\|(?:\{{2}[^{}]*\}{2}|[^|}])*?)*?)(\|\s*url\s*=(?:\{{2}[^{}]*\}{2}|[^|}])*)((?:\|(?:\{{2}[^{}]*\}{2}|[^|}])*?)*?\}{2})/gi, '$1$3$2$4');
str = str.replace(/(\{{2}cytuj (?:książkę|pismo)\s*)((?:\|(?:\{{2}[^{}]*\}{2}|[^|}])*?)*?)(\|\s*tytuł\s*=(?:\{{2}[^{}]*\}{2}|[^|}])*)((?:\|(?:\{{2}[^{}]*\}{2}|[^|}])*?)*?\}{2})/gi, '$1$3$2$4');
str = str.replace(/(\{{2}cytuj (?:książkę|pismo)\s*)((?:\|(?:\{{2}[^{}]*\}{2}|[^|}])*?)*?)((?:\|\s*(?:autor\d*|autor link\d*|imię\d*|nazwisko\d*)\s*=(?:\{{2}[^{}]*\}{2}|[^|}])*)+)((?:\|(?:\{{2}[^{}]*\}{2}|[^|}])*?)*?\}{2})/gi, '$1$3$2$4');
str = str.replace(/(\{{2}cytuj (?:stronę)\s*)((?:\|(?:\{{2}[^{}]*\}{2}|[^|}])*?)*?)((?:\|\s*(?:autor\d*|autor link\d*|imię\d*|nazwisko\d*)\s*=(?:\{{2}[^{}]*\}{2}|[^|}])*)+)((?:\|(?:\{{2}[^{}]*\}{2}|[^|}])*?)*?\}{2})/gi, '$1$3$2$4');
str = str.replace(/(\{{2}cytuj (?:stronę)\s*)((?:\|(?:\{{2}[^{}]*\}{2}|[^|}])*?)*?)(\|\s*tytuł\s*=(?:\{{2}[^{}]*\}{2}|[^|}])*)((?:\|(?:\{{2}[^{}]*\}{2}|[^|}])*?)*?\}{2})/gi, '$1$3$2$4');
str = str.replace(/(\{{2}cytuj (?:stronę)\s*)((?:\|(?:\{{2}[^{}]*\}{2}|[^|}])*?)*?)(\|\s*url\s*=(?:\{{2}[^{}]*\}{2}|[^|}])*)((?:\|(?:\{{2}[^{}]*\}{2}|[^|}])*?)*?\}{2})/gi, '$1$3$2$4');
// 171
str = str.replace(/(\{{2}cytuj (?:grę komputerową|książkę|odcinek|pismo|stronę)\s*(?:\|(?:\{{2}[^{}]*\}{2}|[^|}])*?)*?)[ \u2552]+(\}{2})/gi, '$1$2');
str = str.replace(/(\{{2}cytuj (?:grę komputerową|książkę|odcinek|pismo|stronę)\s*(?:\|(?:\{{2}[^{}]*\}{2}|[^|}])*?)*?)(\n*\s*\|\s*data dostępu\s*=(?:\{{2}[^{}]*\}{2}|[^|}])*?)((?:\n*\s*\|(?:\{{2}[^{}]*\}{2}|[^|}])*?)*?)(\n*\s*\}{2})/gi, '$1$3$2$4');
str = str.replace(/(\{{2}cytuj (?:grę komputerową|książkę|odcinek|pismo|stronę)\s*(?:\|(?:\{{2}[^{}]*\}{2}|[^|}])*?)*?)(\n*\s*\|\s*odn\s*=(?:\{{2}[^{}]*\}{2}|[^|}])*?)((?:\n*\s*\|(?:\{{2}[^{}]*\}{2}|[^|}])*?)*?)(\n*\s*\}{2})/gi, '$1$3$2$4');
str = str.replace(/\u2553/g, '|');
// 168
str = str.replace(/(\{{2}cytuj pismo[^{]*?\| *autor\d* *=[^|}]+[^.](?:\.{2})?)\.((?: *\| *autor link\d* *=[^|}]*)? *\| *tytuł)/gi, '$1$2');
str = str.replace(/(\{{2}cytuj (?:książkę|pismo)[^}]*?\| *(?:data|strony)[^|}]+)(?:\.{3}|…)([\n ]*[|}])/gi, '$1..$2');
str = str.replace(/(\{{2}cytuj (?:stronę)[^}]*?\| *(?:data|opublikowany|strony)[^|}]+)(?:\.{3}|…)([\n ]*[|}])/gi, '$1..$2');
str = str.replace(/\.{2}/g, '\u2553');
str = str.replace(/(\{{2}cytuj (?:książkę|pismo)[^}]*?\| *(?:data|strony|tytuł)[^|}]+?)[,:]+([\n ]*[|}])/gi, '$1$2');
str = str.replace(/(\{{2}cytuj (?:książkę|pismo)[^}]*?\| *(?:data|strony)[^|}]+?)[.]+([\n ]*[|}])/gi, '$1$2');
str = str.replace(/url/g, '\u2554');
str = str.replace(/(\{{2}cytuj (?:książkę|pismo)[^}]*?\| *(?:tytuł) *=[^|}]+?)[.]([\n ]*\|[\n ]*[^\n \u2554][^=|}]+=)/gi, '$1$2');
str = str.replace(/\u2554/g, 'url');
str = str.replace(/(\{{2}cytuj (?:stronę)[^}]*?\| *(?:autor|data|opublikowany|strony)[^|}]+?)[,:.]+([\n ]*[|}])/gi, '$1$2');
str = str.replace(/\u2553/g, '..');
str = str.replace(/(\{{2}cytuj (grę komputerową|książkę|odcinek|pismo|stronę))([^\n}]+)(\}{2})/gi, function(a, poc, ins, fil, kon) {
fil = fil.replace(/ +=/g, ' =');
fil = fil.replace(/= +/g, '= ');
return poc + fil + kon;});
str = str.replace(/(\n +\|.+?= )(?=\n)/g, '$1foosEpulKX');
str = str.replace(/(\n[!|] *)j(ednostka.+\n\|-\n[!|] *)p(opulacja.+\n\|-\n[!|] *)g(ęstość zaludnienia<br *\/*>)[([](mieszk\.\/km²)[)\]]/gi, '$1J$2P$3G$4[$5]');
str = str.replace(/(foopROteZa\n+\'{3,5}[^']+\'{3,5} )jest to( )/g, '$1–$2');
str = str.replace(/(\n)-([^-])/g, '$1–$2');
str = str.replace(/(\n[ \u2552]\|zdjęcie[ \u2552]+=.+\.(?:gif|jpe?g|og[agv]|png|svg|tiff?))/gi, function(a, fil) {
fil = fil.replace(/%C4%84/g, 'Ą');
fil = fil.replace(/%C4%86/g, 'Ć');
fil = fil.replace(/%C4%98/g, 'Ę');
fil = fil.replace(/%C5%81/g, 'Ł');
fil = fil.replace(/%C5%83/g, 'Ń');
fil = fil.replace(/%C3%93/g, 'Ó');
fil = fil.replace(/%C5%9A/g, 'Ś');
fil = fil.replace(/%C5%B9/g, 'Ź');
fil = fil.replace(/%C5%BB/g, 'Ż');
fil = fil.replace(/%C4%85/g, 'ą');
fil = fil.replace(/%C4%87/g, 'ć');
fil = fil.replace(/%C4%99/g, 'ę');
fil = fil.replace(/%C5%82/g, 'ł');
fil = fil.replace(/%C5%84/g, 'ń');
fil = fil.replace(/%C3%B3/g, 'ó');
fil = fil.replace(/%C5%9B/g, 'ś');
fil = fil.replace(/%C5%BA/g, 'ź');
fil = fil.replace(/%C5%BC/g, 'ż');
return fil;});
// UNLOCKI
str = str.replace(/foosEpulKB/g, ')');
str = str.replace(/foosEpulKC/g, '\'');
str = str.replace(/foosEpulKD/g, '-');
str = str.replace(/foosEpulKE/g, '−');
str = str.replace(/foosEpulKG/g, '`');
str = str.replace(/foosEpulKK/g, '.');
str = str.replace(/foosEpulKL/g, '"');
str = str.replace(/foosEpulKM/g, '—');
str = str.replace(/foosEpulKN/g, '–');
str = str.replace(/foosEpulKP,/g, ',');
str = str.replace(/foosEpulKP/g, ',');
str = str.replace(/\u2552/g, ' ');
str = str.replace(/foosEpulKW/g, 'x');
str = str.replace(/foosEpulKY/g, '”');
str = str.replace(/foosEpulKZ/g, '"');
// LAST
str = str.replace(/(<code>[\s\S]+?<\/code>|<graph>[\s\S]+?<\/graph>|<math[^>]*>[\s\S]+?<\/math>|<pre>[\s\S]+?<\/pre>|<(?:source|syntaxhighlight)[^>]*>[\s\S]+?<\/(?:source|syntaxhighlight)>)/gi, function(a, fil) {
fil = fil.replace(/(\n)([#*:;])/g, '$1\u2553$2');
return fil;});
str = str.replace(/(\n[#*:;]+)([^ #*:;])/g, '$1 $2');
str = str.replace(/(\n[#*:;]+ ), /g, '$1');
str = str.replace(/\u2553/g, '');
// CODEFIX
str = str.replace(/(\n\|-)([<{]|align|bgcolor|border|class|colspan|rowspan|style|valign|width)/g, '$1 $2');
str = str.replace(/(\n *\|)! ([^\n<>[\]{|}]+\|[^|])/g, '$1$2');
str = str.replace(/(\n\|)!align="?center"?([\n |])/g, '$1$2');
str = str.replace(/(\n *!) *(?:style="text-align: ?center;?"|align *= *"?(?:left|center|right)"?) *[!|] */g, '$1 ');
str = str.replace(/(\n *!) *(?:style="text-align: ?center;?"|align *= *"?(?:left|center|right)"?) */g, '$1');
str = str.replace(/(\n *![ =a-z\d"#%:;-]+) (?:style="text-align: ?center;?"|align *= *"?(?:left|center|right)"?)/g, '$1');
str = str.replace(/(\n *! *style=")text-align: ?center; *([a-z])/g, '$1$2');
str = str.replace(/(\{\|) +(class)/g, '$1 $2');
str = str.replace(/(\{\|)+/g, '$1');
str = str.replace(/(\{\|)\|/g, '$1');
str = str.replace(/(\{\| ) +/g, '$1');
str = str.replace(/(\n \| )( *)([^=]+)/g, '$1$3$2');
str = str.replace(/(\n \|) ([^\n=]+=)/g, '$1$2');
str = str.replace(/(\n +\|[^\n=]+?) ?= */g, '$1 = ');
str = str.replace(/(\n *\|) +(\'*)-+(?=\'*[\n ])/g, '$1 $2–');
str = str.replace(/(<\/?) *(small) *(>)/g, '$1$2$3');
// 150
str = str.replace(/\{{2}/g, '\u2553');
str = str.replace(/\}{2}/g, '\u2554');
str = str.replace(/(\u2553([^\u2553\u2554]|\u2553[^\u2553\u2554]*?\u2554|(\u2553([^\u2553\u2554]|\u2553[^\u2553\u2554]*?\u2554)*\u2554)|(\u2553([^\u2553\u2554]|\u2553[^\u2553\u2554]*?\u2554|(\u2553([^\u2553\u2554]|\u2553[^\u2553\u2554]*?\u2554)*\u2554))*\u2554))*\u2554)/g, function(a, fil) {
fil = fil.replace(/\|/g, '\u2555');
return fil;});
str = str.replace(/(\n[!|])([–—−‒―÷?…])/g, '$1 $2');
str = str.replace(/(\n[!|] )[‒―]/g, '$1–');
str = str.replace(/(\n!)-/g, '$1 –');
str = str.replace(/(\|{2})(?=[^\n ])/g, '$1 ');
str = str.replace(/(\n *!.+)/g, function(a, fil) {
fil = fil.replace(/(!{2})(?=[^\n ])/g, '$1 ');
return fil;});
str = str.replace(/([^\n]) *(\|{2}) */g, '$1 $2 ');
str = str.replace(/(\n *!.+)/g, function(a, fil) {
fil = fil.replace(/([^\n ])(!{2})/g, '$1 $2');
return fil;});
str = str.replace(/(!{2}|\|{2}) +([^\n[{!|]+[!|][^!|])/g, '$1$2');
// 164
str = str.replace(/((?:\n[!|]|!{2}|\|{2})[^\n[!|\]]+?) +(?=\|[^|])/g, '$1');
str = str.replace(/((?:\n[!|]|!{2}|\|{2})[^\n[!|\]]+\|) *([^\n |])/g, '$1 $2');
str = str.replace(/\u2555/g, '|');
str = str.replace(/\u2554/g, '}}');
str = str.replace(/\u2553/g, '{{');
str = str.replace(/(\n\||\|{2}) +\| +/g, '$1 ');
// 156
str = str.replace(/(\{{2}[ru]\|[^\n}]+\}{2})/gi, function(a, fil) {
fil = fil.replace(/[‘’]/g, '\'');
fil = fil.replace(/["„”“]/g, '');
return fil;});
str = str.replace(/(<ref.*?>)/gi, function(a, fil) {
fil = fil.replace(/[‘’]/g, '\'');
fil = fil.replace(/[„”“]/g, '');
return fil;});
// LATKI
str = str.replace(/„– „ /g, '„–” ');
str = str.replace(/([^=])\n\* *(\n\n)/g, '$1$2');
str = str.replace(/(Br|Rh|\+\/)[-–]([\n ,;:.…!?&|'’”<)\]])/g, '$1−$2');
str = str.replace(/(\n *\| *[^\n"„“”]+?\d)”(\n)/g, '$1"$2');
str = str.replace(/ +(\'*\n)/g, '$1');
str = str.replace(/(\n#) +(patrz|redirect|tam)/gi, '$1$2');
str = str.replace(/(\n<!--\n)\n+/g, '$1');
str = str.replace(/( ={2}\n)(={2} )/g, '$1\n$2');
str = str.replace(/( ={3}\n)(={2,3} )/g, '$1\n$2');
str = str.replace(/( ={4}\n)(={2,4} )/g, '$1\n$2');
str = str.replace(/( ={5}\n)(={2,5} )/g, '$1\n$2');
str = str.replace(/( ={6}\n)(={2,6} )/g, '$1\n$2');
str = str.replace(/(\{{2}[Bb]ibliografia)\n\|([#*])/g, '$1|\n$2');
str = str.replace(/–(\d+px)/g, '-$1');
str = str.replace(/(\d shift:\()–(\d)/g, '$1-$2');
str = str.replace(/(Zobacz też =+\n)\* (\[{2}Plik:)/g, '$1$2');
str = str.replace(/ +(\n)/g, '$1');
str = str.replace(/(\n \|stopni[ENSW]2) (=)/g, '$1$2');
str = str.replace(/\b((?:ur|zm)\.)(\?)/g, '$1 $2');
str = str.replace(/(\n\{{2}Układ wielokolumnowy.+)(\n)(\|)/g, '$1$3$2');
str = str.replace(/(\n \|[^\n=]+=.*?) *[,:]+ *(\n *[|}])/g, '$1$2');
str = str.replace(/(\n \|[^\n=]+=.*?) *[,:]+ *(\n *[|}])/g, '$1$2');
str = str.replace(/(\{{2}Inne znaczenia\|[^\n}]+\}{2})/g, function(a, fil) {
fil = fil.replace(/\'{3}/g, '');
return fil;});
str = str.replace(/<!-- św. i bł. w Kościele (?:sort. po imieniu|sortowani są wg imienia) -->/g, '<!-- św. i bł. w Kościele są sortowani po imieniu -->');
str = str.replace(/\n{2}( <!-- św. i bł. w Kościele są sortowani po imieniu -->)([\s\S]+?\[{2}Kategoria:Błogosławieni katoliccy\|.+?\]{2})/g, '$2$1');
str = str.replace(/([ !|]bgcolor) *= *([a-z])/gi, '$1=$2');
str = str.replace(/((?:bgcolor|colspan|rowspan) *= *)["„”“]([#a-f\d]+|[ #]*\{{2}.+?\}{2})["„”“]/gi, '$1"$2"');
str = str.replace(/(\{{2}wzór\|(?:<math[^>]*>.+?<\/math>\s*)*<math[^>]*>.+?<\/math>)(\|\d+\}{2})([.,;:])/g, '$1$3$2');
str = str.replace(/([^\\],(?:\{\}|\\qq?uad|\\[ ,;])*<\/math>),+/g, '$1');
// 178
str = str.replace(/(\{{2}(?:[Mm]ini )?(?:[Pp]rzypisy|[Uu]wagi).+?|<references.*?>)(<ref )/g, '$1\n$2');
str = str.replace(/(\{{2}(?:[Mm]ini )?(?:[Pp]rzypisy|[Uu]wagi).*(?:\n.+)+<\/ref>(?:\n*\| *l\. *kolumn *= *\d)?)\n*(\}{2}\n)/g, '$1\n$2');
str = str.replace(/(\{{2}[Pp]rzypisy-lista)(\|)((?:\n|(?:<!-- *)?<ref.+?<\/ref>(?: *-->)?)+?)(\|l\. kolumn *= *\d)\s*(\}{2})/g, '$1$4$2$3$5');
str = str.replace(/(\{{2}(?:[Mm]ini )?(?:[Pp]rzypisy|[Uu]wagi).+?[\s\S]+?\n\}{2}|<references.*?>[\s\S]+?<\/references>)/g, function(a, fil) {
fil = fil.replace(/((?: \/>|<\/ref>)(?: *-->)?)[\n ]*((?:<!-- *)?<ref)/g, '$1\n$2');
return fil;});
str = str.replace(/[\n ]*(<\/references>)[\n ]*/g, '\n$1\n\n');
str = str.replace(/(\n=+ Zobacz też =+\n(\{{2}[^\n}]+\}{2}\n)*)((\*+ \[{2}[^\n\]]+\]{2}.*[,;.]?\n)+)(\n)/g, function(a, poc, pocb, fil, filb, kon) {
fil = fil.replace(/[,;.]\n/g, '\n');
return poc + fil + kon;});
// 175
str = str.replace(/(\n==)[ =]*(Zobacz też|Uwagi|Przypisy|Bibliografia|Linki zewnętrzne)[ =]*(==\n)/gi, '$1 $2 $3');
str = str.replace(/(\n== (?:Przypisy|Uwagi) ==)(?:[\n ])*(\{{2}(?:przypisy|uwagi)\}{2})(?:[\n ])*/gi, '$1\n$2\n\n');
str = str.replace(/\n+(== (?:Uwagi|Przypisy|Bibliografia|Linki zewnętrzne) ==[\s\S]+?)\n+(== Zobacz też ==[\s\S]+?)\n\n+/gi, '\n\n$2\n\n$1\n\n');
str = str.replace(/\n+(== (?:Przypisy|Bibliografia|Linki zewnętrzne) ==[\s\S]+?)\n+(== Uwagi ==[\s\S]+?)\n\n+/gi, '\n\n$2\n\n$1\n\n');
str = str.replace(/\n+(== (?:Bibliografia|Linki zewnętrzne) ==[\s\S]+?)\n+(== Przypisy ==[\s\S]+?)\n\n+/gi, '\n\n$2\n\n$1\n\n');
str = str.replace(/\n+(== (?:Linki zewnętrzne) ==[\s\S]+?)\n+(== Bibliografia ==[\s\S]+?)\n\n+/gi, '\n\n$2\n\n$1\n\n');
str = str.replace(/\n+(== Linki zewnętrzne ==[\s\S]+?)\n+(== Literatura (?:dodatkowa|uzupełniająca) ==[\s\S]+?)\n\n+/g, '\n\n$2\n\n$1\n\n');
str = str.replace(/(\[{2}.+?\]{2})/gi, function(a, fil) {
fil = fil.replace(/ +/g, ' ');
return fil;});
str = str.replace(/ +(<br *\/*>)/g, '$1');
str = str.replace(/(\| *(?:group|grupa) *= *)„(uwaga)”( *\|)/g, '$1"$2"$3');
str = str.replace(/foosEpulKF/g, '|');
str = str.replace(/[Ff]oosEpulKX/g, '');
// OSTRZEZENIA
str = str.replace(/(<timeline>[\s\S]+?<\/timeline>)/g, function(a, fil) {
fil = fil.replace(/[„”]/g, '"');
return fil;});
str = str.replace(/ /g, '\u2553');
str = str.replace(/([,;:.][\u2553 ][,;:.])([\u2553\n '])/g, '$1<!-- SPRAWDŹ TO MIEJSCE! (BIAŁE WEWNĄTRZ INTERPUNKCJI) -->$2');
str = str.replace(/([,;]\))/g, '$1<!-- SPRAWDŹ TO MIEJSCE! (INTERPUNKCJA PRZED NAWIASEM) -->');
str = str.replace(/(\.\'*\]{2,}\'*\.)/g, '$1<!-- SPRAWDŹ TO MIEJSCE! (ZA DUŻO KROPEK) -->');
str = str.replace(/([\u2553 ],,)/g, '$1<!-- SPRAWDŹ TO MIEJSCE! („?) -->');
str = str.replace(/(\{{2}cytat\|)„((?:[^{}„”]|\{{2}[^{}]+\}{2}|„[^„”]+”)+)”((?:\{{2}[^{}]+\}{2}|<ref(?: +(?:group|name)[^\/>]+)?>[^<]+<\/ref>)*\}{2})/gi, '$1$2$3');
str = str.replace(/([^-–—−\u2553\n '+=([{}|#>\/])(„)/g, '$1<!-- SPRAWDŹ TO MIEJSCE! (ODSTĘP?) -->$2');
str = str.replace(/(”)([^-–—−\u2553\n ,;:.…!?'+={})\]|#†<\/])/g, '$1<!-- SPRAWDŹ TO MIEJSCE! (ODSTĘP? „?) -->$2');
str = str.replace(/([\n ]„)([\n ])/g, '$1<!-- SPRAWDŹ TO MIEJSCE! -->$2');
str = str.replace(/(„)<!-- SPRAWDŹ TO MIEJSCE! --> ([^\n„"]+”)/g, '$1$2');
str = str.replace(/((?:<\/ref>|<ref (?:group|name)[^>]+\/+>)„)/g, '$1<!-- SPRAWDŹ TO MIEJSCE! (spacja lub górny cudz.?)-->');
str = str.replace(/(’’)/g, '$1<!-- SPRAWDŹ TO MIEJSCE! (”?) -->');
str = str.replace(/(-–|–-|-−|−-)/g, '$1<!-- SPRAWDŹ TO MIEJSCE! (DYWIZ I INNA KRESKA) -->');
str = str.replace(/(‒)/g, '$1<!-- SPRAWDŹ TO MIEJSCE! (znak po lewej to kreska liczbowa, czyli figure dash, #2012) -->');
str = str.replace(/(<math[^>]*>[\s\S]+?<\/math>|http.+?[\s<\]|}]|\{{2}familytree[\s\S]+?\}{2})/g, function(a, fil) {
fil = fil.replace(/\(/g, '\x01');
fil = fil.replace(/\)/g, '\x02');
return fil;});
str = str.replace(/\(\)/g, '\x01\x02');
str = str.replace(/\(([^()]+)\)/g, '\x01$1\x02');
str = str.replace(/\(([^()]+)\)/g, '\x01$1\x02');
str = str.replace(/\(([^()]+)\)/g, '\x01$1\x02');
str = str.replace(/\(([^()]+)\)/g, '\x01$1\x02');
str = str.replace(/\(([^()]+)\)/g, '\x01$1\x02');
str = str.replace(/\(([^()]+)\)/g, '\x01$1\x02');
str = str.replace(/(\n \|SMILES += .+)/g, function (a, fil) {
fil = fil.replace(/\(/g, '\x01');
fil = fil.replace(/\)/g, '\x02');
return fil;});
str = str.replace(/([\n '>|„][A-Za-zŁł\d*]{1,3})\)/g, '$1\x02');
str = str.replace(/([()])/g, '$1<!-- SPRAWDŹ TO MIEJSCE! (NIESPAROWANE NAWIASY OKRĄGŁE) -->');
str = str.replace(/<!-- SPRAWDŹ TO MIEJSCE! \(NIESPAROWANE NAWIASY OKRĄGŁE\) -->([()]<!-- SPRAWDŹ TO MIEJSCE! \(NIESPAROWANE NAWIASY OKRĄGŁE\) -->)/g, '$1');
str = str.replace(/(:\))<!-- SPRAWDŹ TO MIEJSCE! \(NIESPAROWANE NAWIASY OKRĄGŁE\) -->/g, '$1');
str = str.replace(/\x02/g, ')');
str = str.replace(/\x01/g, '(');
str = str.replace(/\[([^[\]]*)\]/g, '\u2554$1\u2555');
str = str.replace(/\[([^[\]]*)\]/g, '\u2554$1\u2555');
str = str.replace(/\[([^[\]]*)\]/g, '\u2554$1\u2555');
str = str.replace(/\[([^[\]]*)\]/g, '\u2554$1\u2555');
str = str.replace(/\[([^[\]]*)\]/g, '\u2554$1\u2555');
str = str.replace(/\[([^[\]]*)\]/g, '\u2554$1\u2555');
str = str.replace(/\[([^[\]]*)\]/g, '\u2554$1\u2555');
str = str.replace(/\[([^[\]]*)\]/g, '\u2554$1\u2555');
str = str.replace(/\[([^[\]]*)\]/g, '\u2554$1\u2555');
str = str.replace(/\[([^[\]]*)\]/g, '\u2554$1\u2555');
str = str.replace(/\[(plik[\s\S]+?)\]/gi, '\u2554$1\u2555');
str = str.replace(/\[(\u2554plik[\s\S]+?)\]/gi, '\u2554$1\u2555');
str = str.replace(/\[([^[\]]*)(?:]|])/g, '\u2554$1\u2556');
str = str.replace(/(<math[^>]*>[\s\S]+?<\/math>)/g, function(a, fil) {
fil = fil.replace(/<!-- SPRAWDŹ TO MIEJSCE! \(INTERPUNKCJA PRZED NAWIASEM\) -->/g, '');
fil = fil.replace(/\[/g, '\u2554');
fil = fil.replace(/\]/g, '\u2555');
return fil;});
str = str.replace(/([[\]])/g, '$1<!-- SPRAWDŹ TO MIEJSCE! (NIESPAROWANE NAWIASY KWADRATOWE) -->');
str = str.replace(/<!-- SPRAWDŹ TO MIEJSCE! \(NIESPAROWANE NAWIASY KWADRATOWE\) -->([[\]]<!-- SPRAWDŹ TO MIEJSCE! \(NIESPAROWANE NAWIASY KWADRATOWE\) -->)/g, '$1');
str = str.replace(/\u2556/g, ']');
str = str.replace(/\u2555/g, ']');
str = str.replace(/\u2554/g, '[');
str = str.replace(/((?:<ref>|<ref (?:group|name)[^\/>]+>)[-–—−‒―÷'‘’"„”“′″‴,;:.…!?#*<>^()][ \u2552\u2553])/g, '$1<!-- SPRAWDŹ TO MIEJSCE! (COŚ + BIAŁE NA POCZ. PRZYPISU) -->');
str = str.replace(/([ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅬⅭⅮⅯ℃℉])/g, '$1<!-- SPRAWDŹ TO MIEJSCE! (ZAMIEŃ NIEUŻYWANE ZNAKI UNIKODU NA PROSTSZY ZAPIS) -->');
str = str.replace(/<([^<>]+\/)>/g, '\x01$1\x02');
str = str.replace(/<([^<>]+)([^<>]*)>([\s\S]*?)<(\/\1)>/g, '\x01$1$2\x02$3\x01$4\x02');
str = str.replace(/<([^<>]+)([^<>]*)>([\s\S]*?)<(\/\1)>/g, '\x01$1$2\x02$3\x01$4\x02');
str = str.replace(/<([^<>]+)([^<>]*)>([\s\S]*?)<(\/\1)>/g, '\x01$1$2\x02$3\x01$4\x02');
str = str.replace(/<([^<>]+)([^<>]*)>([\s\S]*?)<(\/\1)>/g, '\x01$1$2\x02$3\x01$4\x02');
str = str.replace(/<([^<>]+)([^<>]*)>([\s\S]*?)<(\/\1)>/g, '\x01$1$2\x02$3\x01$4\x02');
str = str.replace(/<([^<>]+)([^<>]*)>([\s\S]*?)<(\/\1)>/g, '\x01$1$2\x02$3\x01$4\x02');
str = str.replace(/<([^<>]+)([^<>]*)>([\s\S]*?)<(\/\1)>/g, '\x01$1$2\x02$3\x01$4\x02');
str = str.replace(/(<\/[^<>]+>)/g, '$1<!-- SPRAWDŹ TO MIEJSCE! (TAG ZAMYKAJĄCY BEZ OTWIERAJĄCEGO?) -->');
str = str.replace(/\x02/g, '>');
str = str.replace(/\x01/g, '<');
str = str.replace(/([^A-Za-z\u00C0-\u02AF\u1E00-\u1FBC.\/[\]_#+-=’]([A-Za-z\u00C0-\u02AF\u1E00-\u1FBC]+) \2)([^A-Za-z\u00C0-\u02AF\u1E00-\u1FBC@\d-])/gi, '$1<!-- SPRAWDŹ TO MIEJSCE! (POWTÓRZENIE?) -->$3');
str = str.replace(/([A-Za-z\u00C0-\u02AF]+) (\1)<!-- SPRAWDŹ TO MIEJSCE! \(POWTÓRZENIE\?\) --> (\1)/gi, '$1 $2 $3');
str = str.replace(/([A-Za-z\u00C0-\u02AF]+) (\1) (\1)<!-- SPRAWDŹ TO MIEJSCE! \(POWTÓRZENIE\?\) -->/gi, '$1 $2 $3');
str = str.replace(/([A-Z][a-z]+) (\1)<!-- SPRAWDŹ TO MIEJSCE! \(POWTÓRZENIE\?\) -->/g, '$1 $2');
str = str.replace(/([AIOUWZ] [AIOUWZ])<!-- SPRAWDŹ TO MIEJSCE! \(POWTÓRZENIE\?\) -->([\s\S])/g, '$1$2');
str = str.replace(/([AIOUWZ] [aiouwz])<!-- SPRAWDŹ TO MIEJSCE! \(POWTÓRZENIE\?\) -->([\s\S])/g, '$1$2');
str = str.replace(/([aiouwz] [AIOUWZ])<!-- SPRAWDŹ TO MIEJSCE! \(POWTÓRZENIE\?\) -->([\s\S])/g, '$1$2');
str = str.replace(/(\'\'|")([a-z]+) (\2)<!-- SPRAWDŹ TO MIEJSCE! \(POWTÓRZENIE\?\) -->(\1)/gi, '$1$2 $3$4');
str = str.replace(/([a-z]+) (\1)<!-- SPRAWDŹ TO MIEJSCE! \(POWTÓRZENIE\?\) -->([,.:;!?]*(?:\'{2}|”))/gi, '$1 $2$3');
str = str.replace(/(„)([a-z]+) (\2)<!-- SPRAWDŹ TO MIEJSCE! \(POWTÓRZENIE\?\) -->/gi, '$1$2 $3');
str = str.replace(/(‘)([a-z]+) (\2)<!-- SPRAWDŹ TO MIEJSCE! \(POWTÓRZENIE\?\) -->(’)/gi, '$1$2 $3$4');
str = str.replace(/(\()([a-z]+) (\2)<!-- SPRAWDŹ TO MIEJSCE! \(POWTÓRZENIE\?\) -->(\))/gi, '$1$2 $3$4');
str = str.replace(/(\[{2}[^|\]]*?)([^|\]]+) (\2)<!-- SPRAWDŹ TO MIEJSCE! \(POWTÓRZENIE\?\) -->(\]{2})/g, '$1$2 $3$4');
str = str.replace(/([Pp]lik:)<!-- SPRAWDŹ TO MIEJSCE! \(ODSTĘP\?\) -->(„)/g, '$1$2');
str = str.replace(/,,<!-- SPRAWDŹ TO MIEJSCE! \(„\?\) -->([^\n„]+”)/g, '„$1');
str = str.replace(/( to to)<!-- SPRAWDŹ TO MIEJSCE! \(POWTÓRZENIE\?\) -->(,)/g, '$1$2');
str = str.replace(/<!-- SPRAWDŹ TO MIEJSCE! \(POWTÓRZENIE\?\) -->(.*?\.(?:gif|jpe?g|og[agv]|png|svg|tiff?))/g, '$1');
str = str.replace(/(\|tytuł = [- a-z’]+)<!-- SPRAWDŹ TO MIEJSCE! \(POWTÓRZENIE\?\) -->/gi, '$1');
str = str.replace(/<!-- SPRAWDŹ TO MIEJSCE! \(POWTÓRZENIE\?\) -->([\]])/gi, '$1');
str = str.replace(/(\n\[{2}Kategoria:.+)<!-- SPRAWDŹ TO MIEJSCE! \(POWTÓRZENIE\?\) -->/gi, '$1');
str = str.replace(/(\n!)<!-- SPRAWDŹ TO MIEJSCE! \(ODSTĘP\?\) -->(„)/gi, '$1 $2');
str = str.replace(/(\|n=\[)<!-- SPRAWDŹ TO MIEJSCE! \(NIESPAROWANE NAWIASY KWADRATOWE\) -->(\||\}{2})/gi, '$1$2');
str = str.replace(/(\[{2}[^\n[\]]+)<!-- SPRAWDŹ TO MIEJSCE! \(POWTÓRZENIE\?\) -->/gi, '$1');
str = str.replace(/,<!-- SPRAWDŹ TO MIEJSCE! \(ODSTĘP\?\) -->„/gi, ', „');
str = str.replace(/([:;]-\))<!-- SPRAWDŹ TO MIEJSCE! \(NIESPAROWANE NAWIASY OKRĄGŁE\) -->/g, '$1');
str = str.replace(/(\{{2}SgKP.+?)<!-- SPRAWDŹ TO MIEJSCE! \(NIESPAROWANE NAWIASY OKRĄGŁE\) -->(.*?\}{2})/g, '$1$2');
str = str.replace(/(\()<!-- SPRAWDŹ TO MIEJSCE! \(NIESPAROWANE NAWIASY OKRĄGŁE\) -->(\[?htt?p:\/\/)/g, '$1$2');
str = str.replace(/(none|solid)( \1)<!-- SPRAWDŹ TO MIEJSCE! \(POWTÓRZENIE\?\) -->/g, '$1$2');
str = str.replace(/(<math[^>]*>[\s\S]+?<\/math>)/g, function(a, fil) {
fil = fil.replace(/<!-- SPRAWDŹ TO MIEJSCE! \(.+?\) -->/g, '');
return fil;});
str = str.replace(/(<!-- SPRAWDŹ TO MIEJSCE! [^\n>]*-->) *<!-- SPRAWDŹ TO MIEJSCE! [^\n>]*-->/g, '$1');
str = str.replace(/\u2553/g, ' ');
str = str.replace(/([a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u017F])(<math>)/gi, '$1<!-- SPRAWDŹ TO MIEJSCE! (BRAK SPACJI?) -->$2');
str = str.replace(/(<\/math>)([a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u017F])/gi, '$1<!-- SPRAWDŹ TO MIEJSCE! (BRAK SPACJI?) -->$2');
str = str.replace(/(<\/math>[-–=+])([\s])/gi, '$1<!-- SPRAWDŹ TO MIEJSCE! (BRAK SPACJI?) -->$2');
// ODWOLANIA OSTRZEZEN
str = str.replace(/((?:[|[)(?:\[{2}[^[\]]+\]{2}|[^\]])*\])<!-- SPRAWDŹ TO MIEJSCE! \(NIESPAROWANE NAWIASY KWADRATOWE\) -->/g, '$1');
str = str.replace(/(Plik:[^\n|\]]+?)<!-- SPRAWDŹ TO MIEJSCE![^>]+?>/g, '$1');
str = str.replace(/(\[{2}[a-z]+:)<!-- SPRAWDŹ TO MIEJSCE![^>]+?>/g, '$1');
str = str.replace(/(&.{2,6};(?:.{2,6};)?\))<!-- SPRAWDŹ TO MIEJSCE! \(INTERPUNKCJA PRZED NAWIASEM\) -->/g, '$1');
str = str.replace(/(\.{3})<!-- SPRAWDŹ TO MIEJSCE! \(ODSTĘP\?\) -->(„)/g, '$1$2');
str = str.replace(/<!-- SPRAWDŹ TO MIEJSCE! \(ODSTĘP\? „\?\) -->(י)/g, '$1');
str = str.replace(/(\| *nawiasy *= *[[\]])<!-- SPRAWDŹ TO MIEJSCE! \(NIESPAROWANE NAWIASY KWADRATOWE\) -->/g, '$1');
str = str.replace(/\u251C/g, ' ');
str = str.replace(/foosE56pulKA/g, '\u2556');
str = str.replace(/foosE55pulKA/g, '\u2555');
str = str.replace(/foosE54pulKA/g, '\u2554');
str = str.replace(/foosE53pulKA/g, '\u2553');
str = str.replace(/foosE52pulKA/g, '\u2552');
str = str.replace(/foosE1CpulKA/g, '\u251C');
str = str.replace(/\\righd/g, '\\right.');
str = str.replace(/\[{2}([^|\]])([^|\]]*)\|([^\]])\2([a-ząćęłńóśźż]*)\]{2}/g, function (a, w1_1, w_rest, w2_1, poza) {
return (w1_1.toUpperCase()==w2_1.toUpperCase()) ? '[['+w2_1+w_rest+']]'+poza : a;});
str = str.replace(/\[{2}( *(?:plik|file):)/gi, 'foosEpulKA$1');
str = str.replace(/(\[{2})([ A-Za-zĄĆĘŁŃÓŚŹŻąćęłńóśźż]+)(-)([ A-Za-zĄĆĘŁŃÓŚŹŻąćęłńóśźż]+)(\|)\2 \4(\]{2})/g, '$1$2$3$4$6');
str = str.replace(/(\[{2})([ A-Za-zĄĆĘŁŃÓŚŹŻąćęłńóśźż]+)(-)([ A-Za-zĄĆĘŁŃÓŚŹŻąćęłńóśźż]+)(-)([ A-Za-zĄĆĘŁŃÓŚŹŻąćęłńóśźż]+)(\|)\2 \4 \6(\]{2})/g, '$1$2$3$4$5$6$8');
str = str.replace(/(<ref(?: +(?:group|name)[^\/>]+)?>[^<]+<\/ref>)/gi, function(a, fil) {
fil = fil.replace(/\[{2}/g, 'foosEpulKal');
fil = fil.replace(/\]{2}/g, 'foosEpulKar');
return fil;});
str = str.replace(/(\[{2}[^#\d][^|\]]+\|)([^\]]+)\]{2}(.+?)(?:\1)(\2)\]{2}(.+?)(?:\1)(\2)\]{2}(.+?)(?:\1)(\2)\]{2}/g, '$1$2]]$3$4$5$6$7$8');
str = str.replace(/(\[{2}[^#\d][^|\]]+\|)([^\]]+)\]{2}(.+?)(?:\1)(\2)\]{2}(.+?)(?:\1)(\2)\]{2}/g, '$1$2]]$3$4$5$6');
str = str.replace(/(\[{2}[^#\d][^|\]]+\|)([^\]]+)\]{2}(.+?)(?:\1)(\2)\]{2}(.+?)(?:\1)(\2)\]{2}/g, '$1$2]]$3$4$5$6');
str = str.replace(/(\[{2}[^#\d][^|\]]+\|)([^\]]+)\]{2}(.+?)(?:\1)(\2)\]{2}/g, '$1$2]]$3$4');
str = str.replace(/(\[{2}[^#\d][^|\]]+\|)([^\]]+)\]{2}(.+?)(?:\1)(\2)\]{2}/g, '$1$2]]$3$4');
str = str.replace(/(\[{2}[^#\d][^|\]]+\|)([^\]]+)\]{2}(.+?)(?:\1)(\2)\]{2}/g, '$1$2]]$3$4');
str = str.replace(/\[{2}([^#\d][^|\]]+)\]{2}(.+?)\[{2}(\1)\]{2}(.+?)\[{2}(\1)\]{2}(.+?)\[{2}(\1)\]{2}(.+?)\[{2}(\1)\]{2}/gi, '[[$1]]$2$3$4$5$6$7$8$9');
str = str.replace(/\[{2}([^#\d][^|\]]+)\]{2}(.+?)\[{2}(\1)\]{2}(.+?)\[{2}(\1)\]{2}(.+?)\[{2}(\1)\]{2}/gi, '[[$1]]$2$3$4$5$6$7');
str = str.replace(/\[{2}([^#\d][^|\]]+)\]{2}(.+?)\[{2}(\1)\]{2}(.+?)\[{2}(\1)\]{2}/gi, '[[$1]]$2$3$4$5');
str = str.replace(/\[{2}([^#\d][^|\]]+)\]{2}(.+?)\[{2}(\1)\]{2}(.+?)\[{2}(\1)\]{2}/gi, '[[$1]]$2$3$4$5');
str = str.replace(/\[{2}([^#\d][^|\]]+)\]{2}(.+?)\[{2}(\1)\]{2}/gi, '[[$1]]$2$3');
str = str.replace(/\[{2}([^#\d][^|\]]+)\]{2}(.+?)\[{2}(\1)\]{2}/gi, '[[$1]]$2$3');
str = str.replace(/\[{2}([^#\d][^|\]]+)\]{2}(.+?)\[{2}(\1)\]{2}/gi, '[[$1]]$2$3');
str = str.replace(/foosEpulKar/g, ']]');
str = str.replace(/foosEpulKal/g, '[[');
str = str.replace(/foosEpulKA/gi, '[[');
// przypisy+uwagi > uwagi+przypisy
str = str.replace(/((?:\{{2}r\|[^{}]+\}{2}|\{{2}odn[^{}]+\}{2}|<ref(?: name[^\/>]+)?>.+?<\/ref>|<ref name[^\/>]+\/>)+)((?:\{{2}u\|[^{}]+\}{2}|<ref group[^\/>]+>.+?<\/ref>|<ref group[^\/>]+\/>)+)/gi, '$2$1');
// usuwa puste w infoboxie
str = str.replace(/(\{{2}państwo infobox(?:[^{}]|\{{2}[^{}]*\}{2})+\}{2})/gi, function(a, fil) {
fil = fil.replace(/(\n \|[nps]\d+ *=.*\n \|[nps]\d+_flaga *=.*)(\n \|[nps]\d+ *= \n \|[nps]\d+_flaga *= )+(?=\n)/g, '$1');
return fil;});
str = str.replace(/(\{{2}cytuj pismo\s*\|\s*tytuł\s*=\s*Powierzchnia i ludność w przekroju terytorialnym w.+?\|\s*url\s*=.*?\|\s*czasopismo\s*=)\s*(\|\s*wydawca\s*=\s*Główny Urząd Statystyczny\s*\|\s*miejsce\s*=\s*Warszawa\s*\|\s*data\s*=.*?\|\s*issn\s*=\s*1505-5507\}{2})/g, '$1 Powierzchnia i Ludność w Przekroju Terytorialnym $2');
str = str.replace(/(\{{2}(?:album muzyczny|czasopismo|obraz|singel|utwór muzyczny) infobox(?:\n.+)+\n\}{2}(?:\n__BEZSPISU__)?(?:\n(?:\{{2}.+\}{2}|\[{2}Plik.+))*\n+)[„”“]?(\'{3})(?:\'{2})?[„”“]?([^'„”“]+?)[”“]?(\'{3})(?:\'{2})?[”“]?/gi, '$1$2$3$4');
str = str.replace(/(\{\| class="wikitable[- a-z]*"\n! )#([\n ])/g, '$1Lp.$2');
str = str.replace(/(\[{2}(\d{1,2}) (?:stycznia|lutego|marca|kwietnia|maja|czerwca|lipca|sierpnia|września|października|listopada|grudnia))\|\2(\]{2}) (stycznia|lutego|marca|kwietnia|maja|czerwca|lipca|sierpnia|września|października|listopada|grudnia)/g, '$1$3');
str = str.replace(/( \|tytuł = (?:\[{2}[^[\]]+\]{2}|[^[|\]])+? )-( (?:\[{2}[^[\]]+\]{2}|[^[|\]])+? )-( (?:\[{2}[^[\]]+\]{2}|[^[|\]])+\|)/g, '$1–$2–$3');
str = str.replace(/( \|tytuł = (?:\[{2}[^[\]]+\]{2}|[^[|\]])+? )-( (?:\[{2}[^[\]]+\]{2}|[^[|\]])+\|)/g, '$1–$2');
str = str.replace(/([„“])(\'{5})((?:„[^\n\'"„”“]+”|[^\n\'"„”“])+)(\'{5})(”)/g, '$2$1$3$5$4');
str = str.replace(/([„“])(\'{3})((?:„[^\n\'"„”“]+”|[^\n\'"„”“])+)(\'{3})(”)/g, '$2$1$3$5$4');
str = str.replace(/([„“])(\'{2})((?:„[^\n\'"„”“]+”|[^\n\'"„”“])+)(\'{2})(”)/g, '$2$1$3$5$4');
str = str.replace(/(\n\* )\[(http)(.+?) http\3\]([\n ])/g, '$1$2$3$4');
str = str.replace(/(\n\* )\[(http)(.+?) http\3\]([\n ])/g, '$1$2$3$4');
str = str.replace(/(\|name=)„(uwaga\d*)”(\|)/g, '$1"$2"$3');
str = str.replace(/(\[{2}Plik:.+?) *\| *(?:alt|link) *=(\]{2})/g, '$1$2');
str = str.replace(/(\[{2}Plik:.+?) *\| *(?:alt|link) *=(\]{2})/g, '$1$2');
str = str.replace(/(\{{2}odn[^}]+?) *\| *strony *= */g, '$1|s=');
str = str.replace(/\| N\/o([\n ])/gi, '| Nr$1');
str = str.replace(/(\n *\|(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec|Year)_(?:Hi|Lo|MEAN)_°C += +-?\d+)\.(\d)/g, '$1,$2');
str = str.replace(/(\n *\|(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec|Year)_(?:REC_(?:Hi|Lo))_°C += +-?\d+)\.(\d)/g, '$1,$2');
str = str.replace(/(\n *\|(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec|Year)_Precip_(?:mm|days) += +\d+)\.(\d)/g, '$1,$2');
str = str.replace(/(\n *\|(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec|Year)_Rain_days += +\d+)\.(\d)/g, '$1,$2');
str = str.replace(/(\n *\|(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec|Year)_Snow_cm = \d+)\.(\d)/g, '$1,$2');
str = str.replace(/\|<nowiki>-<\/nowiki>/g, '| –');
str = str.replace(/\|<nowiki>\+<\/nowiki>/g, '| +');
str = str.replace(/(\n\|\+.+):(\n[!|])/g, '$1$2');
str = str.replace(/(\n[#*]* *'''[^']+)(''')(:)/g, '$1$3$2');
str = str.replace(/ cellspacing="?\d+"?(.+?(?:border-collapse: *collapse|rules *= *"?(?:all|cols|rows)"?))/g, '$1');
str = str.replace(/((?:border-collapse: *collapse|rules *= *"?(?:all|cols|rows)"?).+?) cellspacing="?\d+"?/g, '$1');
str = str.replace(/(style=".*(border|margin|padding).+?[;"])/gi, function(a, fil) {
fil = fil.replace(/([: ]0)(em|ex|pt|px)([ ;"])/gi, '$1$3');
fil = fil.replace(/([: ]0)(em|ex|pt|px)([ ;"])/gi, '$1$3');
fil = fil.replace(/(: ?0) 0 0 0([;"])/gi, '$1$2');
fil = fil.replace(/(: ?0) 0([;"])/gi, '$1$2');
return fil;});
str = str.replace(/ cellPadovading=0/g, '');
str = str.replace(/([ !|])align *= *cleft([ !|])/g, '$1$2');
str = str.replace(/(\n *(?:\{\||[!|]).+?) class="?bright"?/g, '$1');
str = str.replace(/([ !|])(?:v?align|bgcolor|bordercolor|border|cellpadding|cellspacing|class|colspan|height|rowspan|scope|style|width) *= *""[,;:.]*([\n !|])/g, '$1$2');
str = str.replace(/([ !|]) *(?:v?align|bgcolor|bordercolor|border|cellpadding|cellspacing|class|colspan|height|rowspan|scope|style|width) *= *[,;:.]*([\n!|])/g, '$1$2');
str = str.replace(/(\n\|) *\| *(\n)/g, '$1$2');
str = str.replace(/<ref name="">/g, '<ref>');
str = str.replace(/(\n[!|]) ((?:v?align|bgcolor|bordercolor|border|cellpadding|cellspacing|class|colspan|height|nowrap|rowspan|scope|style|width)=)/g, '$1$2');
str = str.replace(/([!|] *\'*(?:Konkurencja|Złoto|Srebro|Brąz)\'*):(\'*(?:\n| [!|]))/g, '$1$2');
str = str.replace(/(\[{2}Tempo \(muzyka\)\|)['’](\]{2})/gi, '$1`$2');
str = str.replace(/¹\/<sub>/g, '<sup>1</sup>/<sub>');
str = str.replace(/²\/<sub>/g, '<sup>2</sup>/<sub>');
str = str.replace(/³\/<sub>/g, '<sup>3</sup>/<sub>');
str = str.replace(/([ !|]align) *(=) *((?:left|center|right)[\n !|])/g, '$1$2$3');
str = str.replace(/(\n\|) *<center>(.+?)<\/center>/g, '$1align=center| $2');
str = str.replace(/(\n\|[^\n|]+?)(\| )<center>(.+?)<\/center>/g, '$1 align=center$2$3');
str = str.replace(/ *\| *group *= *["„”“] *uwaga *["„”“] *\| *name *= *["„”“](.+?)["„”“] *\}{2}/g, '|group="uwaga"|name="$1"}}');
str = str.replace(/ąc że /g, 'ąc, że ');
str = str.replace(/(\n *\|gatunek *=.+?blues) (rock)/g, '$1-$2');
str = str.replace(/(\{{2}cytuj \|[^{]*autor = )„([^|}]+)”( *[|}])/gi, '$1"$2"$3');
str = str.replace(/(#) ((?:PATRZ|REDIRECT) \[{2})/gi, '$1$2');
str = str.replace(/ (mieszkańców|osoby|osób)/gi, ' $1');
str = str.replace(/(\|lang=)„([a-z]+)”(\}{2})/g, '$1"$2"$3');
str = str.replace(/(\|group=)„(uwaga)”(\}{2})/g, '$1"$2"$3');
str = str.replace(/([!|] ?Imię i )N(azwisko)/g, '$1n$2');
str = str.replace(/(\.) (<ref)/gi, '$1$2');
str = str.replace(/<sub><\/sub>/gi, '');
str = str.replace(/<sup><\/sup>/gi, '');
str = str.replace(/(\{{2}Auto infobox(?:\{{2}[^{}]+\}{2}|[^{}])+\n \|ładowność +=.+)\n \|wyposażenie dodatkowe *=.+(\n \|modele bliźniacze +=)/gi, '$1$2');
str = str.replace(/(Źródł[ao])((?:<ref.+?<\/ref>)+)(:)/gi, '$1$3 $2');
str = str.replace(/((\{{2}odn\|[^{}]+)(\|s=[^{}]+)(\}{2}))/gi, function(a, fil, insa, insb, insc) {
insb = insb.replace(/(\d)-(\d)/g, '$1–$2');
return insa + insb + insc;});
str = str.replace(/(\n== Linki zewnętrzne ==(\n+\*.+)+)/gi, function(a, fil, ins) {
fil = fil.replace(/\n\n+/g, '\n');
return fil;});
str = str.replace(/(\n \|układ osi += [ABCDEoT\d'’´′]+)/gi, function(a, fil) {
fil = fil.replace(/['’´′]/g, '′');
return fil;});
str = str.replace(/<\/math>/g, '\x02');
str = str.replace(/(\()(<math[^>]*>)([^\x02]+)(\x02)(\)[.,;:]*)/g, '$2$1$3$5$4');
str = str.replace(/\'{3}( *<math[^\x02]+\x02 *)\'{3}/g, '$1');
str = str.replace(/([^'])\'{2}( *<math[^\x02]+\x02 *)\'{2}([^'])/g, '$1$2$3');
str = str.replace(/\x02/g, '<\/math>');
str = str.replace(/(:)(<\/math>)/g, '{$1}$2');
str = str.replace(/ +(<\/math>)/g, '$1');
str = str.replace(/(<\/math>[ ,.]*)\n+(gdzie):?\n+([*:])/gi, '$1\n\n$2:\n$3');
str = str.replace(/(\{\{pionowo[^\n\}]+width=\d+)/gi, '$1px');
str = str.replace(/(\{{2}Numerowanie w tabeli.+)/gi, function(a, fil) {
fil = fil.replace(/[„”]/g, '"');
fil = fil.replace(/<!--.+?>/g, '');
return fil;});
str = str.replace(/<!-- *NIE *DODAWAJ *NIEPOTRZEBNYCH, *W *TYM *REKLAMOWYCH *LINKÓW *-->/g, '<!-- NIE DODAWAJ NIEPOTRZEBNYCH, W TYM REKLAMOWYCH LINKÓW -->');
str = str.replace(/<!-- *WIKIPEDIA *NIE *JEST *ZBIOREM *LINKÓW *-->/g, '<!-- WIKIPEDIA NIE JEST ZBIOREM LINKÓW -->');
str = str.replace(/<!-- *ANI *MIEJSCEM *NA *TWOJĄ *\(LUB *CZYJĄKOLWIEK\) *REKLAMĘ *!! *! *-->/g, '<!-- ANI MIEJSCEM NA TWOJĄ (LUB CZYJĄKOLWIEK) REKLAMĘ!!! -->');
str = str.replace(/<!-- *umieść *go *(?:najpierw|wpierw) *na *stronie *dyskusji *tego *artykułu. *Linki *-->/g, '<!-- umieść go najpierw na stronie dyskusji tego artykułu. Linki -->');
str = str.replace(/<!-- *WCZEŚNIEJ *przeczytaj *http:\/\/pl.wikipedia.org\/wiki\/WP:LZ *-->/g, '<!-- WCZEŚNIEJ przeczytaj http://pl.wikipedia.org/wiki/WP:LZ -->');
str = str.replace(/<!-- *WIKIPEDIA *NIE *JEST *ZBIOREM *LINKÓW *-->\n<!-- Jeśli chcesz dodac tutaj link, do strony -->\n<!-- musi mieć ona odpowiedni "PAGE RANK". -->/g, '<!-- WIKIPEDIA NIE JEST ZBIOREM LINKÓW -->\n<!-- Jeśli chcesz dodac tutaj link, do strony -->\n<!-- musi mieć ona odpowiedni "PAGE RANK". -->');
str = str.replace(/\n@<ref name/gi, '\n<ref name');
str = str.replace(/FoosEpulKQ/g, '');
str = str.replace(/\n+foopROteZb/g, '');
str = str.replace(/foopROteZa\n+/g, '');
str = str.replace(/^\n+/g, '');
return str;
}
wp_sk.mm_rTempldecode = function(a,name,end)
{
try
{
name=decodeURIComponent(name)
a='{{'+name+end;
}
catch(err){}
return a.replace(/_/g,' ');
}
});
// </nowiki>