Użytkownik:Sp5uhe/formatowanie-test.js
Z Wikicytatów, wolnej kolekcji cytatów
Uwaga: Zmiany po zapisaniu nowych ustawień mogą nie być widoczne. Należy wyczyścić zawartość pamięci podręcznej przeglądarki internetowej.
- Mozilla, Firefox lub Safari – przytrzymaj wciśnięty Shift i kliknij na Odśwież lub wciśnij Ctrl‐F5 lub Ctrl‐R (Cmd‐Shift‐R na Macintoshu)
- Konqueror – kliknij przycisk Odśwież lub wciśnij F5
- Opera – wyczyść pamięć podręczną w menu Narzędzia → Preferencje
- Internet Explorer – przytrzymaj Ctrl i kliknij na Odśwież lub wciśnij Ctrl‐F5
/*<pre><nowiki>*/ //… ... function mkBRnew(str, select) { } // Dodaje opis w opisie zmian, o ile takiego nie bylo function dodajOpis(opis) { var wpS = document.forms.editform.wpSummary; wpS.value=trim(wpS.value); if (wpS.value.indexOf(opis)<0) if (wpS.value.substring(wpS.value.length,wpS.value.length-2)=="*\/") wpS.value = wpS.value +" "+ opis; else if (wpS.value.length>0) wpS.value = wpS.value +", "+ opis; else wpS.value = opis; } // Jeśli tekst jest zaznaczony, to wstawia łamanie wiersza zamiast każdego końca wiersza // Jeśli tekst nie jest zaznaczony to usuwa końce wiersza za znakiem <br /> function mkBR() { var tagOpen="aaa"; var tagClose="bbb"; //var sampleText="SMPL"; var txtarea; if (document.editform) { txtarea = document.editform.wpTextbox1; } else { // some alternate form? take the first one we can find var areas = document.getElementsByTagName('textarea'); txtarea = areas[0]; } var txtareaorg=txtarea; // IE if (document.selection && !is_gecko) { var theSelection = document.selection.createRange().text; if (!theSelection) { var txt = document.editform.wpTextbox1; var org; do { org=trim(txt.value); txt.value = txt.value.replace(/<br \/>\r?\n([^\s])/gi, "<br />$1"); txt.value = txt.value.replace(/(\*[^\n\r]*)\r?\n([^\=\*\:\n\r])/gi, "$1<br />$2"); } while (org != trim(txt.value)); txt.value = trim(txt.value); // exit; } else { txtarea.focus(); var subst=theSelection; var org; do { org=trim(subst); subst = subst.replace(/<br \/>\r?\n([^\s])/gi, "<br />$1"); subst = subst.replace(/(\*[^\n\r]*)\r?\n([^\=\*\:\n\r])/gi, "$1<br />$2"); subst = subst.replace(/\r?\n([^\s])/gi, "<br \/>$1"); } while (org != trim(subst)); document.selection.createRange().text = subst; } // Mozilla } else if(txtarea.selectionStart || txtarea.selectionStart == '0') { var replaced = false; var startPos = txtarea.selectionStart; var endPos = txtarea.selectionEnd; if (endPos-startPos) { replaced = true; } var scrollTop = txtarea.scrollTop; var myText = (txtarea.value).substring(startPos, endPos); if (!myText) { var org; do { org=trim(txtarea.value); txtarea.value = txtarea.value.replace(/<br \/>\r?\n([^\s])/gi, "<br />$1"); txtarea.value = txtarea.value.replace(/(\*[^\n\r]*)\r?\n([^\=\*\:\n\r])/gi, "$1<br />$2"); } while (org != trim(txtarea.value)); txtarea.value = trim(txtarea.value); } else { var subst=myText; var org; do { org=trim(subst); subst = subst.replace(/<br \/>\r?\n([^\s])/gi, "<br />$1"); subst = subst.replace(/(\*[^\n\r]*)\r?\n([^\=\*\:\n\r])/gi, "$1<br />$2"); subst = subst.replace(/\r?\n([^\s])/gi, "<br \/>$1"); } while (org != trim(subst)); txtarea.value = txtarea.value.substring(0, startPos) + subst + txtarea.value.substring(endPos, txtarea.value.length); } txtarea.focus(); //set new selection if (replaced) { // var cPos = startPos+(tagOpen.length+myText.length+tagClose.length); var cPos = startPos+(txtarea.length-txtareaorg.length); txtarea.selectionStart = cPos; txtarea.selectionEnd = cPos; } else { txtarea.selectionStart = startPos;//+tagOpen.length; txtarea.selectionEnd = startPos;//+tagOpen.length+myText.length; } txtarea.scrollTop = scrollTop; // All other browsers get no toolbar. // There was previously support for a crippled "help" // bar, but that caused more problems than it solved. } // reposition cursor if possible if (txtarea.createTextRange) { txtarea.caretPos = document.selection.createRange().duplicate(); } dodajOpis("łamanie wierszy"); } /* var txt = document.editform.wpTextbox1; var sels=txt.selectionStart; var sele=txt.selectionEnd; if (sele>sels) { str=txt.value.substring(sels,sele); var org; do { org=trim(str); str = str.replace(/<br \/>\r?\n([^\s])/gi, "<br />$1"); str = str.replace(/(\*[^\n\r]*)\r?\n([^\=\*\:\n\r])/gi, "$1<br />$2"); str = str.replace(/\r?\n([^\s])/gi, "<br \/>$1"); } while (org != trim(str)); // var seln=sele - (str.length-txt.value.length); txt.value = txt.value.substring(0,sels) + str + txt.value.substring(sele); // txt.selectionStart=sels; // txt.selectionEnd=seln; txt.scrollTop=10;//txt.scrollHeight*(lineNo-10)/allLines; txt.focus(); } else { var org; do { org=trim(txt.value); txt.value = txt.value.replace(/<br \/>\r?\n([^\s])/gi, "<br />$1"); txt.value = txt.value.replace(/(\*[^\n\r]*)\r?\n([^\=\*\:\n\r])/gi, "$1<br />$2"); } while (org != trim(txt.value)); } txt.value = trim(txt.value); } */ function rmBR() { var txt = document.editform.wpTextbox1; txt.value = txt.value.replace(/<br>/gi, "<br \/>"); txt.value = txt.value.replace(/<br\/>/gi, "<br \/>"); txt.value = txt.value.replace(/<br \/>([^\r\n])/gi, "<br \/>\n$1"); txt.value = trim(txt.value); dodajOpis("łamanie wierszy"); } function format() { var txt = document.editform.wpTextbox1; var old = txt.value; txt.value = whitespace(txt.value); txt.value = interpunkcja(txt.value); txt.value = catFixer(txt.value); txt.value = entities(txt.value); txt.value = fixheadings(txt.value); txt.value = fixsyntax(txt.value); txt.value = linkfixer(txt.value, false); //txt.value = imagefixer(txt.value); txt.value = whitespace(txt.value); txt.value = linksimplifyer(txt.value); // txt.value = lamiemyInterWiki(txt.value); txt.value = konceWiersza(txt.value); // txt.value = zobaczKonceWiersza(txt.value); txt.value = wielkoscZnakow(txt.value); txt.value = sortujKategorie(txt.value); txt.value = trim(txt.value); if (txt.value != trim(old)) dodajOpis("formatowanie automatyczne"); } function zobaczKonceWiersza(str){ str = str.replace(/\n/gm, "!!!NNN!!!"); str = str.replace(/\r/gm, "!!!RRR!!!"); return trim(str); } // "Nazwa używana w linku", // Nazwa do sortowania // Ta tablica musi już być posortowana // Kolejność sortowania za pywikipedia/family.py zgodnie z self.alphabetic // Ponieważ pywikipedia/families/wikipedia_family.py zgodnie z self.interwiki_putfirst jest 'pl': self.alphabetic // Dane za http://meta.wikimedia.org/wiki/Interwiki_sorting_order var Jezyki=[ 'aa','af','ak','als','am','ang','ab','ar','an','arc','roa-rup','frp','as', 'ast','gn','av','ay','az','bm','bn','zh-min-nan','map-bms','ba','be','be-x-old', 'bh','bi','bar','bo','bs','br','bg','bxr','ca','cv','ceb','cs','ch', 'ny','sn', 'tum','cho','co','za','cy','da','pdc','de','dv','nv','dz','mh', 'et','el','eml','en','es','eo','eu','ee','fa','fo','fr','fy','ff','fur','ga', 'gv','gd','gl','ki','glk','gu','got','zh-classical','hak','xal','ko','ha','haw','hy','hi','ho','hsb','hr', 'io','ig','ilo','bpy','id','ia','ie','iu','ik','os','xh','zu','is','it','he', 'jv','kl','pam','kn','kr','ka','ks','csb','kk','kw','rw','ky','rn', 'sw','kv','kg','ht','kj','ku','lad','lbe','lo','la','lv','lb','lij','lt', 'li','ln','jbo','lg','lmo','hu','mk','mg','ml','mt','mi','mr','mzn','ms','cdo', 'mo','mn','mus','my','nah','na','fj','nl','nds-nl','cr','ne','new','ja','nap', 'ce','pih','no','nn','nrm','nov','oc','or','om','ng','hz','ug','uz','pa','pi', 'pag','pap','ps','km','pms','nds','pl','pt','ty','ksh','ro','rmy','rm', 'qu','ru','se','sm','sa','sg','sc','sco','st','tn','sq','ru-sib','scn', 'si','simple','sd','ss','sk','sl','cu','so','sr','sh','su','fi','sv','tl', 'ta','kab','roa-tara','tt','te','tet','th','vi','ti','tg','tpi','to','chr','chy','ve', 'tr','tk','tw','udm','bug','uk','ur','vec','vo','fiu-vro','wa', 'vls','war','wo','wuu','ts','ii','yi','yo','zh-yue','cbk-zam','diq','zea','bat-smg','zh', 'zh-tw','zh-cn']; function sortujKategorie(str){ var kat=""; while (str.search(/\[\[Kategoria\:[^\n\[\]]*\]\]/gmi) != -1) { var p=str.search(/\[\[Kategoria\:[^\n\[\]]*\]\]/gmi); var f=str.match(/(\[\[Kategoria\:[^\n\[\]]*\]\])/gmi)[0]; kat=kat+"\n"+f; str=str.substring(0,p)+" "+str.substring(p+f.length,str.length); } var ilink=""; var i; for (i=0; i<Jezyki.length; i++ ) { var sr="\\[\\["+Jezyki[i]+"\\:[\^\\n\[\\]]*\\]\\]"; while (str.search(sr,"gmi") != -1) { var p=str.search(sr,"gmi"); var f=str.match(sr,"gmi")[0]; ilink=ilink+"\n"+f; str=str.substring(0,p)+" "+str.substring(p+f.length,str.length); } } str=konceWiersza(str)+"\n\n"+kat+"\n"+ilink; return trim(str); } function wielkoscZnakow(str){ str = str.replace(/^\x2a\x2a ?Autor\:/gmi, "** Autor:"); str = str.replace(/^\x2a\x2a ?Opis\:/gmi, "** Opis:"); str = str.replace(/^\x2a\x2a ?Pochodzenie\:/gmi, "** Opis:"); str = str.replace(/^\x2a\x2a ?Komentarz\:/gmi, "** Opis:"); str = str.replace(/^\x2a\x2a ?[ŹŻZ]r[óou]d[łl][oó]\:/gmi, "** Źródło:"); str = str.replace(/^\x2a\x2a ?Postać\:/gmi, "** Postać:"); str = str.replace(/^\x2a\x2a ?Zobacz też\:/gmi, "** Zobacz też:"); str = str.replace(/^\x2a\x2a ?Postacie?\:/gmi, "** Postacie:"); str = str.replace(/\[\[Image\: */gmi, "[[Grafika:"); str = str.replace(/\[\[Grafika\: */gmi, "[[Grafika:"); str = str.replace(/\[\[Grafika\: *Grafika\: */gmi, "[[Grafika:"); str = str.replace(/\[\[Grafika\: *Image\: */gmi, "[[Grafika:"); str = str.replace(/\[\[Image\: *Image\: */gmi, "[[Grafika:"); str = str.replace(/\[\[Image\: *Grafika\: */gmi, "[[Grafika:"); // Inne // Wymieniamy w linkach [[w:pl: na [[w: str = str.replace(/\[\[w\:pl\:/gi, "[[w:"); return trim(str); } function konceWiersza(str){ // Usuwamy podwójne wiersze przed ** str = str.replace(/\n*(\n\x2a\x2a)/gm, "$1"); // Wstawiamy podwójne wiersze przed * str = str.replace(/([^\n\=])(\n)(\x2a[^\x2a])/gm, "$1$2$2$3"); str = str.replace(/\=[\n\r]*([\n])\x2a/gm, "=$1*"); // Usuwamy podwójny koniec wiersza przed pierwszą * var l="\n"; l=l.length; if (str.indexOf("\n\n*")+l*2==str.indexOf("*")) str = str.substring(0,str.indexOf("\n\n*"))+str.substring(str.indexOf("\n\n*")+l); // Zamiana Zobacz też na '''Zobacz też:''' str = str.replace(/^Zobacz te.\:?$/gm, "'''Zobacz też:'''"); str = str.replace(/^\=\=\=Zobacz te.\=\=\=$/gm, "==Zobacz też=="); // Usuwamy podwójne wiersze, jeśli wczesniej była sekwencja Zobacz też:'' var org; do { org=str; str = str.replace(/(Zobacz te.)\:?(\'\'\'[^=]*)\n(\n\x2a)/gm, "$1:$2$3"); // Usuwamy podwójne wiersze, jeśli wczesniej była sekwencja ==Zobacz też=='' str = str.replace(/\=\=Zobacz te.\:?\=\=([^=]*)\n(\n\x2a)/gm, "==Zobacz też==$1$2"); } while (org != str); return trim(str); } function interpunkcja(str){ var org; do { org=str; // ((?:^[^\n\[]+)|(?:\][^\n\[^\]]+)) na początku wiersza zabezpiecza przed zmianą w [ ] // ((?:^[^\n\[\{]?)|(?:\][^\n\[\]\{]+)|(?:\}[^\n\{\}\[]+)) [ ] oraz { } // Usuwamy spację przed znakiem interpunkcyjnym str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))([a-zA-ZąśżźćęńółĄŚŻŹĆĘŃÓŁ]+)(?: +)([\.\,\;\!\?\)\:])/gm, "$1$2$3"); // Usuwamy spację za znakiem interpunkcyjnym str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))(\()(?: +)([a-zA-ZąśżźćęńółĄŚŻŹĆĘŃÓŁ]+)/gm, "$1$2$3"); // Wstawiamy spację przed znakiem interpunkcyjnym str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))([a-zA-ZąśżźćęńółĄŚŻŹĆĘŃÓŁ]+)(\()([^\)\n]+( ))/gm, "$1$2 $3$4$5"); // Wstawiamy spację za znakiem interpunkcyjnym str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))([\.\,\;\!\?\)\:])([a-zA-ZąśżźćęńółĄŚŻŹĆĘŃÓŁ]*)([a-zA-ZąśżźćęńółĄŚŻŹĆĘŃÓŁ]+)/gm, "$1$2 $3$4"); // Usuwamy spacje w wielokropku str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))(\.)(?: +)(\.)/gm, "$1$2$3"); // Usuwamy spację w znacznikach formatowania str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))([\'\}])(?: +)(\')/gm, "$1$2$3"); // Usuwamy spację w znacznikach formatowania str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))(\')(?: +)([\{])/gm, "$1$2$3"); // Usuwamy spację w znacznikach formatowania str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))(\{)(?: +)(\{)/gm, "$1$2$3"); str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))(\})(?: +)(\})/gm, "$1$2$3"); // Usuwamy spacje przed i za : jeśli przed i za jest cyfra (formatowanie czasu), przecinek dla liczb str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))(\d)(?: *)([\:])(?: +)(\d)/gm, "$1$2$3$4"); str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))(\d)(?: +)([\:])(\d)/gm, "$1$2$3$4"); // str = str.replace(/\.\.\./g, "..."); // Myślniki przerabiamy na Unicode str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))(\&mdash\;)/gm, "$1\u2014"); str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))(\&ndash\;)/gm, "$1\u2013"); // Myślnik w tekście cytatu oraz tekstach opisu // str = str.replace(/((?:^[^\[\{]*)|(?:\][^\[\]\{]*)|(?:\}[^\{\}\[]*))(.*)[\-\u2014]/g, "$1$2\u2013"); // Myślnik w tekście cytatu oraz tekstach opisu, ale nie pomiędzy cyframi //str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))(.*[^0-9\x2a ]) *[\u2014] *([^0-9 ])/gm, "$1$2 \u2014 $3"); //Wszystkie myślniki poza [] i {} str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))[\u002d\u2014\u2212] /gm, "$1\u2013 "); //Usuwanie spacji w zakresach str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))([^0-9\[\{\u2013 ]) ?[\u2013] ?([^\n0-9 ])/gm, "$1$2 \u2013 $3"); // Myślnik w zakresie dat 1-1 str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))(\d) ?[\u002d\u2014\u2013] ?(\d)/gm, "$1$2\u2013$3"); // p.n.e. n.p.m. str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))(.\.) ?(.\.) ?(.\.)/gm, "$1$2$3$4"); // n.e. str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))(.\.) ?(.\.)/gm, "$1$2$3"); // '''[[...]]''' (...) to str = str.replace(/^(\'{3,5}\[\[[^\n\[\]]*\]\]\'{3,5}(?: \([^\n\)]*\))?) ?(?:(?:to)|(?:[\u002d\u2013\u2014\u2212]))/gmi, "$1,"); // Myślnik za myślnikiem w znaczniku formatowania str = str.replace(/[\-\u2014\u2013] ?[\-\u2014\u2013] ?[\-\u2014\u2013] ?[\-\u2014\u2013]/g, "----"); str = str.replace(/[\-\u2014\u2013] ?[\-\u2014\u2013]/g, "--"); str = str.replace(/\< ?\! ?[\-\u2014\u2013] ?[\-\u2014\u2013]/g, "<!--"); str = str.replace(/[\-\u2014\u2013] ?[\-\u2014\u2013] ?\>/g, "-->"); // usuwamy right jeśli jest thumb str = str.replace(/(\[\[Grafika\:[^\]]*\|thumb[^\]]*)\|right/gi, "$1"); str = str.replace(/(\[\[Grafika\:[^\]]*)\|right([^\]]*\|thumb)/gi, "$1$2"); // usuwamy px jeśli jest thumb str = str.replace(/(\[\[Grafika\:[^\]]*\|thumb[^\]]*)\|\d\d?\d?px/gi, "$1"); str = str.replace(/(\[\[Grafika\:[^\]]*)\|\d\d?\d?px([^\]]*\|thumb)/gi, "$1$2"); // podwójne odstępy między wierszami bez sensu str = str.replace(/(\]\]\n)\n(\[\[)/gm, "$1$2"); str = str.replace(/(\]\]\n)\n(\'{3,5}\[\[)/gm, "$1$2"); // URL-e str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))([a-zA-Z]*\.) ?(pl|com|net|gov|de)/gmi, "$1$2$3"); str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))([a-zA-Z]*\.) ?([a-zA-Z]*\.)(pl|com|net|gov|de)/gmi, "$1$2$3$4"); str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))([a-zA-Z]*\.) ?([a-zA-Z]*\.)([a-zA-Z]*\.)(pl|com|net|gov|de)/gmi, "$1$2$3$4$5"); str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))([a-zA-Z]*\.) ?([a-zA-Z]*\.)([a-zA-Z]*\.)([a-zA-Z]*\.)(pl|com|net|gov|de)/gmi, "$1$2$3$4$5$6"); // Poprawa dat str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))(\d\d\d\d)[\-\u2013\u2014\. ](?:01|1|i)[\-\u2013\u2014\. ](\d\d)/gmi, "$1$3 stycznia $2"); str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))(\d\d\d\d)[\-\u2013\u2014\. ](?:02|2|ii)[\-\u2013\u2014\. ](\d\d)/gmi, "$1$3 lutego $2"); str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))(\d\d\d\d)[\-\u2013\u2014\. ](?:03|3|iii)[\-\u2013\u2014\. ](\d\d)/gmi, "$1$3 marca $2"); str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))(\d\d\d\d)[\-\u2013\u2014\. ](?:04|4|iv)[\-\u2013\u2014\. ](\d\d)/gmi, "$1$3 kwietnia $2"); str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))(\d\d\d\d)[\-\u2013\u2014\. ](?:05|5|v)[\-\u2013\u2014\. ](\d\d)/gmi, "$1$3 maja $2"); str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))(\d\d\d\d)[\-\u2013\u2014\. ](?:06|6|vi)[\-\u2013\u2014\. ](\d\d)/gmi, "$1$3 czerwca $2"); str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))(\d\d\d\d)[\-\u2013\u2014\. ](?:07|7|vii)[\-\u2013\u2014\. ](\d\d)/gmi, "$1$3 lipca $2"); str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))(\d\d\d\d)[\-\u2013\u2014\. ](?:08|8|viii)[\-\u2013\u2014\. ](\d\d)/gmi, "$1$3 sierpnia $2"); str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))(\d\d\d\d)[\-\u2013\u2014\. ](?:09|9|ix)[\-\u2013\u2014\. ](\d\d)/gmi, "$1$3 września $2"); str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))(\d\d\d\d)[\-\u2013\u2014\. ](?:10|10|x)[\-\u2013\u2014\. ](\d\d)/gmi, "$1$3 października $2"); str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))(\d\d\d\d)[\-\u2013\u2014\. ](?:11|11|xi)[\-\u2013\u2014\. ](\d\d)/gmi, "$1$3 listopada $2"); str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))(\d\d\d\d)[\-\u2013\u2014\. ](?:12|12|xii)[\-\u2013\u2014\. ](\d\d)/gmi, "$1$3 grudnia $2"); str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))(\d\d)[\-\u2013\u2014\. ](?:01|1|i)[\-\u2013\u2014\. ](\d\d\d\d)/gmi, "$1$2 stycznia $3"); str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))(\d\d)[\-\u2013\u2014\. ](?:02|2|ii)[\-\u2013\u2014\. ](\d\d\d\d)/gmi, "$1$2 lutego $3"); str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))(\d\d)[\-\u2013\u2014\. ](?:03|3|iii)[\-\u2013\u2014\. ](\d\d\d\d)/gmi, "$1$2 marca $3"); str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))(\d\d)[\-\u2013\u2014\. ](?:04|4|iv)[\-\u2013\u2014\. ](\d\d\d\d)/gmi, "$1$2 kwietnia $3"); str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))(\d\d)[\-\u2013\u2014\. ](?:05|5|v)[\-\u2013\u2014\. ](\d\d\d\d)/gmi, "$1$2 maja $3"); str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))(\d\d)[\-\u2013\u2014\. ](?:06|6|vi)[\-\u2013\u2014\. ](\d\d\d\d)/gmi, "$1$2 czerwca $3"); str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))(\d\d)[\-\u2013\u2014\. ](?:07|7|vii)[\-\u2013\u2014\. ](\d\d\d\d)/gmi, "$1$2 lipca $3"); str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))(\d\d)[\-\u2013\u2014\. ](?:08|8|viii)[\-\u2013\u2014\. ](\d\d\d\d)/gmi, "$1$2 sierpnia $3"); str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))(\d\d)[\-\u2013\u2014\. ](?:09|9|ix)[\-\u2013\u2014\. ](\d\d\d\d)/gmi, "$1$2 września $3"); str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))(\d\d)[\-\u2013\u2014\. ](?:10|10|x)[\-\u2013\u2014\. ](\d\d\d\d)/gmi, "$1$2 października $3"); str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))(\d\d)[\-\u2013\u2014\. ](?:11|11|xi)[\-\u2013\u2014\. ](\d\d\d\d)/gmi, "$1$2 listopada $3"); str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))(\d\d)[\-\u2013\u2014\. ](?:12|12|xii)[\-\u2013\u2014\. ](\d\d\d\d)/gmi, "$1$2 grudnia $3"); // Usuwam 0 sprzed pierwszej liczby str = str.replace(/((?:^[^\n\[\{]*)|(?:\][^\n\[\]\{]*)|(?:\}[^\n\{\}\[]*))0(\d (?:stycznia|lutego|marca|kwietnia|maja|czerwca|lipca|sierpnia|września|października|listopada|grudnia) \d\d\d\d)/gmi, "$1$2"); } while (org != str); return trim(str); } function whitespace(str){ str = str.replace(/\t/g, " "); // Standaryzujemy końce wiersza str = str.replace(/(\r)(\n)/gm, "$2"); str = str.replace(/\r/gm, "\n"); str = str.replace(/(\r)(\n)/gm, "$2"); str = str.replace(/^ ? ? (\n)/gm, "$1"); str = str.replace(/(\n\n)\n+/gm, "$1"); str = str.replace(/== ? ?\n(\n)==/gm, "==$1=="); str = str.replace(/\n(\n\* ?\[?http)/gm, "$1"); str = str.replace(/^ ? ? (\n)/gm, "$1"); str = str.replace(/\n(\n\*)/gm, "$1"); str = str.replace(/[ \t][ \t]+/g, " "); str = str.replace(/([=\n]\n)\n+/gm, "$1"); str = str.replace(/ *(\n)/gm, "$1"); //* bullet points str = str.replace(/^([\*#]+) /gm, "$1"); str = str.replace(/^([\*#]+)/gm, "$1 "); //==Headings== str = str.replace(/^(={1,4}) ?(.*?) ?(={1,4})$/gm, "$1$2$3"); //dash — spacing str = str.replace(/ ?(–|–|–|–|–) ?/g, "$1"); str = str.replace(/ ?(—|—|—|—|—) ?/g, "$1"); str = str.replace(/([^1-9])(—|—|—|—|—|–|–|–|–|–)([^1-9])/g, "$1 $2 $3"); //Spacje na końcach i początkach wierszy str = str.replace(/ ? ?<br \/> ? ?/gi, "<br />"); str = str.replace(/^ /g, ""); str = str.replace(/ $/g, ""); return trim(str); } function entities(str){ //str = str.replace(//g, ""); str = str.replace(/–|–|–/g, "–"); str = str.replace(/—|—|—/g, "—"); // str = str.replace(/(cm| m|km|mi)<sup>2</sup>/g, "$1²"); str = str.replace(/²/g, "²"); str = str.replace(/°/g, "°"); return trim(str); } //Fix ==See also== and similar section common errors. function fixheadings(str) { if( !str.match(/= ?See also ?=/) ) str = str.replace(/(== ?)(see also:?|related topics:?|related articles:?|internal links:?|also see:?)( ?==)/gi, "$1See also$3"); str = str.replace(/(== ?)(external links?:?|outside links?|web ?links?:?|exterior links?:?)( ?==)/gi, "$1External links$3"); str = str.replace(/(== ?)(references?:?)( ?==)/gi, "$1References$3"); str = str.replace(/(== ?)(sources?:?)( ?==)/gi, "$1Sources$3"); str = str.replace(/(== ?)(further readings?:?)( ?==)/gi, "$1Further reading$3"); return str; } function catFixer(str){ str = str.replace(/\[\[ ?[Cc]ategory ?: ?/g, "[[Kategoria:"); str = str.replace(/\[\[ ?[Kk]ategoria ?: ?/g, "[[Kategoria:"); return trim(str); } //fixes many common syntax problems function fixsyntax(str) { //replace html with wiki syntax if( !str.match(/'<\/?[ib]>|<\/?[ib]>'/gi) ) { str = str.replace(/<i>(.*?)<\/i>/gi, "''$1''"); str = str.replace(/<b>(.*?)<\/b>/gi, "'''$1'''"); } str = str.replace(/<br\/>/gi, "<br />"); str = str.replace(/<br>/gi, "<br />"); str = str.replace(/ ? ?<br \/> ? ?/gi, "<br />"); return trim(str); } //formats links in standard fashion function linkfixer(str, checkImages) { str = str.replace(/\]\[/g, "] ["); var m = str.match(/\[?\[[^\]]*?\]\]?/g); if (m) { for (var i = 0; i < m.length; i++) { var x = m[i].toString(); var y = x; //internal links only if ( !y.match(/^\[?\[http:\/\//i) && !y.match(/^\[?\[image:/i) ) { if (y.indexOf(":") == -1 && y.substr(0,3) != "[[_" && y.indexOf("|_") == -1) { if (y.indexOf("|") == -1) y = y.replace(/_/g, " "); else y = y.replace( y.substr(0, y.indexOf("|")), y.substr(0, y.indexOf("|")).replace(/_/g, " ")); } y = y.replace(/ ?\| ?/, "|").replace("|]]", "| ]]"); } str = str.replace(x, y); } } //repair bad internal links str = str.replace(/\[\[ ?([^\]]*?) ?\]\]/g, "[[$1]]"); str = str.replace(/\[\[([^\]]*?)( |_)#([^\]]*?)\]\]/g, "[[$1#$3]]"); //repair bad external links str = str.replace(/\[?\[http:\/\/([^\]]*?)\]\]?/gi, "[http://$1]"); str = str.replace(/\[http:\/\/([^\]]*?)\|([^\]]*?)\]/gi, "[http://$1 $2]"); return trim(str); } //fixes images function imagefixer(str) { //remove external images str = str.replace(/\[?\[image:http:\/\/([^\]]*?)\]\]?/gi, "[http://$1]"); str = str.replace(/\[?\[grafika:http:\/\/([^\]]*?)\]\]?/gi, "[http://$1]"); //fix links within internal images var m = str.match(/\[?\[image:[^\[\]]*?(\[?\[[^\]]*?\]*?[^\[\]]*?)*?\]+/gi); if (m) { for (var i = 0; i < m.length; i++) { var x = m[i].toString(); var y = x; y = y.replace(/^\[\[i/i, "I").replace(/\]\]$/, ""); y = y.replace(/(\[[^\]]*?)$/, "$1]"); y = linkfixer(y, true); y = "[[" + y + "]]"; str = str.replace(x, y); } } var m = str.match(/\[?\[grafika:[^\[\]]*?(\[?\[[^\]]*?\]*?[^\[\]]*?)*?\]+/gi); if (m) { for (var i = 0; i < m.length; i++) { var x = m[i].toString(); var y = x; y = y.replace(/^\[\[g/i, "G").replace(/\]\]$/, ""); y = y.replace(/(\[[^\]]*?)$/, "$1]"); y = linkfixer(y, true); y = "[[" + y + "]]"; str = str.replace(x, y); } } return trim(str); } //simplifies some links e.g. [[Dog|dog]] to [[dog]] and [[Dog|dogs]] to [[dog]]s function linksimplifyer(str){ var m = str.match(/\[\[([^\[]*?)\|([^\[]*?)\]\]/g); if (m) { for (var i = 0; i < m.length; i++) { var n_arr = m[i].toString().match(/\[\[([^\[]*?)\|([^\[]*?)\]\]/); var n = n_arr[0]; var a = n_arr[1]; var b = n_arr[2]; if (b.indexOf(a) == 0 || b.indexOf(TurnFirstToLower(a)) == 0) { var k = n.replace(/\[\[([^\]\|]*?)\|(\1)([a-zA-ZąśżźćęńółĄŚŻŹĆĘŃÓŁ]*?)\]\]/i, "[[$2]]$3"); str = str.replace(n, k); } } } str = str.replace(/\[\[([^\]\|]+)\|([^\]\|]+)\]\]([A-Za-z\'][A-Za-z]*)([\.\,\;\:\"\!\?\s\n])/g, "[[$1|$2$3]]$4"); return str; } //trim start and end, trim spaces from the end of lines function trim(str) { str = str.replace(/ $/gm, ""); return str.replace(/^\s*|\s*$/g, ""); } //turns first character to lowercase function TurnFirstToLower(input) { if (input != "") { var input = trim(input); var temp = input.substr(0, 1); return temp.toLowerCase() + input.substr(1, input.length); } else return ""; } //entities that should never be unicoded function noUnicodify(str) { str = str.replace(" & ", " & "); str = str.replace("&", "&amp;").replace("&lt;", "&amp;lt;").replace("&gt;", "&amp;gt;").replace("&quot;", "&amp;quot;").replace("&apos;", "&amp;apos;"); str = str.replace("−", "&minus;").replace("×", "&times;"); str = str.replace(" ", "&nbsp;").replace(" ", "&thinsp;").replace("­", "&shy;"); str = str.replace("′", "&prime;"); str = str.replace(/&(#0?9[13];)/, "&$1"); str = str.replace(/&(#0?12[345];)/, "&$1"); return str; } function addFormatButton() { editingTools = document.getElementById('toolbar'); if (editingTools != null) { FormatTextButton = "<a href=\"javascript:document.forms.editform.wpSave.click();\"><img src=\"http://upload.wikimedia.org/wikipedia/commons/9/90/Button_save_changes.png\" alt=\"Zapisz\" title=\"Zapisz zmiany\"></a>"; editingTools.innerHTML = editingTools.innerHTML + FormatTextButton; FormatTextButton = "<a href=\"javascript:document.forms.editform.wpPreview.click();\"><img src=\"http://upload.wikimedia.org/wikipedia/commons/e/e9/Button_preview.png\" alt=\"Podgląd\" title=\"Pokaż podgląd\"></a>"; editingTools.innerHTML = editingTools.innerHTML + FormatTextButton; FormatTextButton = "<a href=\"javascript:format();\"><img src=\"http://upload.wikimedia.org/wikipedia/commons/c/c1/Button_wikiquote.png\" alt=\"Formatuj\" title=\"Formatuj tekst\"></a>"; editingTools.innerHTML = editingTools.innerHTML + FormatTextButton; FormatTextButton = "<a href=\"javascript:mkBR();\"><img src=\"http://upload.wikimedia.org/wikipedia/commons/c/c5/Button_br.png\" alt=\"Wstaw znaczniki br\" title=\"Wstaw znaczniki br\"></a>"; editingTools.innerHTML = editingTools.innerHTML + FormatTextButton; FormatTextButton = "<a href=\"javascript:rmBR();\"><img src=\"http://upload.wikimedia.org/wikipedia/commons/f/f3/Button_brrm.png\" alt=\"Usuń br\" title=\"Usuń znaczniki br\"></a>"; editingTools.innerHTML = editingTools.innerHTML + FormatTextButton; } } addOnloadHook(function () { if(document.forms.editform) { // Dodaje zakładkę na górze obok Edytuj // addPortletLink('p-cactions', 'javascript:format()', 'formatuj', 'ca-format', 'Format article', '', document.getElementById('ca-edit')); // Dodaje przycisk do toolbara addFormatButton(); for (var i = 0; i < mwEditButtons.length; i++) if (mwEditButtons[i].imageId=='mw-editbutton-image') { mwEditButtons[i].tagClose='|thumb|'+wgTitle+']]'; } addButton('http://upload.wikimedia.org/wikipedia/commons/b/b4/Button_category03.png','Kategoria','[[Kategoria:','|'+wgTitle+']]','tu wstaw',''); } }); /***************************************************************************************************************************/ function przyciskiOpis() { // stop before starting if (window.przyciskiOpisDone) return; // sprawdzenie, czy to jest pole edycji z opisem zmian (nie jest takie jako nagłówek) var el = document.getElementById('wpSummaryLabel'); if (el) { if (el.innerHTML.indexOf('Opis zmian')==-1) return; // stop } else return; // stop // dodanie elementu okalającego przyciski bezpośrednio za opisem zmian var el = document.getElementById('wpSummary').nextSibling; var opisBtns = document.createElement('span'); opisBtns.id = 'userSummaryButtonsA' el.parentNode.insertBefore(document.createElement('br'), el) el.parentNode.insertBefore(opisBtns, el) // dodawanie przycisków // var kl = 'userButtonsStyle'; var kl = ''; // klasa jest niepotrzebna (wszystkie <a> w #userSummaryButtonsA ustawione poprzez CSS) if (opisBtns) { // drobne różne przyciskiDodaj(opisBtns, 'lit.', 'dodajOpis("lit.")', kl, 'Poprawiono literówkę'); przyciskiDodaj(opisBtns, 'int.', 'dodajOpis("int.")', kl, 'Poprawiono interpunkcję'); przyciskiDodaj(opisBtns, 'format.', 'dodajOpis("formatowanie")', kl, 'Przeformatowano'); przyciskiDodaj(opisBtns, 'notka', 'dodajOpis("notka")', kl, 'Poprawiono/dodano notkę'); przyciskiDodaj(opisBtns, 'sort.', 'dodajOpis("sortowanie")', kl, 'Posortowano cytaty alfabetycznie lub chronologicznie'); przyciskiDodaj(opisBtns, 'grafika', 'dodajOpis("grafika")', kl, 'Poprawiono/dodano grafikę'); przyciskiDodaj(opisBtns, 'ogonki', 'dodajOpis("polskie znaki")', kl, 'Poprawa polskich znaków'); // opisBtns.appendChild(document.createTextNode(' ')); // odstęp // drobne około wikizacyjne przyciskiDodaj(opisBtns, 'linki-zew', 'dodajOpis("linki zewnętrzne")', kl, 'Poprawiono/dodano linki zewnętrzne'); przyciskiDodaj(opisBtns, 'linki-popr', 'dodajOpis("poprawa linków")', kl, 'Poprawiono linki zewnętrzne/wewnętrzne'); przyciskiDodaj(opisBtns, 'interwiki', 'dodajOpis("[[Pomoc:Interwiki|interwiki]]")', kl, 'Poprawiono/dodano linki do innych wersji Wikipedii'); przyciskiDodaj(opisBtns, 'kat.', 'dodajOpis("kat.")', kl, 'Poprawiono/dodano kategorię'); // przyciskiDodaj(opisBtns, 'wikizacja', 'dodajOpis("[[Wikipedia:Terminologia#W|wikizacja]]")', kl, // 'Wikizacja artykułu (dodanie linków wewnętrznych, podział na sekcje itp.)'); opisBtns.appendChild(document.createTextNode(' ')); // odstęp // drobne około techniczne przyciskiDodaj(opisBtns, 'stub', 'dodajOpis("stub (zalążek)")', kl, 'Ten artykuł to stub'); przyciskiDodaj(opisBtns, 'redir', 'dodajOpis("redir (przekierowanie)")', kl, 'Poprawiono/dodano redirect'); przyciskiDodaj(opisBtns, 'disamb', 'dodajOpis("disambig (ujednoznacznienie)")', kl, 'Poprawiono/dodano stronę ujednoznaczniającą'); przyciskiDodaj(opisBtns, 'szablon', 'dodajOpis("szablon")', kl, 'Poprawiono/dodano szablon'); // przyciskiDodaj(opisBtns, 'infobox', 'dodajOpis("infobox")', kl, // 'Poprawiono/uzupełnienio/dodano infobox'); opisBtns.appendChild(document.createElement('br')); // drobne inne przyciskiDodaj(opisBtns, 'dr.meryt.', 'dodajOpis("drobne merytoryczne")', kl, 'Drobne zmiany merytoryczne'); przyciskiDodaj(opisBtns, 'dr.red.', 'dodajOpis("drobne redakcyjne")', kl, 'Drobne zmiany redakcyjne'); przyciskiDodaj(opisBtns, 'dr.tech.', 'dodajOpis("drobne techniczne")', kl, 'Drobne zmiany techniczne'); opisBtns.appendChild(document.createTextNode(' ')); // odstęp // do użytkownika i około administracyjne przyciskiDodaj(opisBtns, 'witaj', 'dodajOpis("witaj")', kl, 'Dodano powitanie dla użytkownika'); przyciskiDodaj(opisBtns, 'test', 'dodajOpis("test")', kl, 'Dodano ostrzeżenie dla użytkownika'); przyciskiDodaj(opisBtns, 'npa', 'dodajOpis("[[WC:NPA|npa]]")', kl, 'Zgłoszono artykuł jako podejrzany o naruszenie praw autorskich'); przyciskiDodaj(opisBtns, 'sdu', 'dodajOpis("[[WC:SDU|sdu]]")', kl, 'Zgłoszono artykuł do usunięcia'); przyciskiDodaj(opisBtns, 'ek', 'dodajOpis("[[WC:EK|ek]]")', kl, 'Zgłoszono artykuł do ekspresowego (s)kasowania'); przyciskiDodaj(opisBtns, 'rev.', 'dodajOpis("przywrócenie poprzedniej wersji")', kl, 'przywrócenie poprzedniej wersji'); przyciskiDodaj(opisBtns, 'rev.długi', 'dodajOpis("*)Przywrócono poprzednią wersję, jej autor to [[Użytkownik:?|?]]. Autor wycofanej edycji to [[Specjalna:Contributions/?|?]]")', kl, 'przywrócenie poprzedniej wersji - długi opis jak przy automatycznym'); przyciskiDodaj(opisBtns, 'integracja', 'dodajOpis("integracja (autorzy: [[Użytkownik:]], [[Użytkownik:]]...")', kl, 'Integracja artykułu z innym - podaj autorów wklejanego tekstu!'); opisBtns.appendChild(document.createTextNode(' ')); // odstęp // insze do dyskusji i głosowań przyciskiDodaj(opisBtns, 'głos', 'dodajOpis("głos")', kl, 'Oddano głos'); przyciskiDodaj(opisBtns, 'komentarz', 'dodajOpis("komentarz")', kl, 'Dodano komentarz w dyskusji lub do głosu'); // odstęp przed własnymi opisBtns.appendChild(document.createTextNode(' ')); // odstęp // document.editform.wpMinoredit.onclick = onMinorEditClick; } } /* Parametry: * elUserBtns - element okalający, do którego dodać przycisk * pTekst - tekst w środku przycisku * pAkcja - akcja (w formie tekstowej) jaką wykonać przy naciśnięciu; może być ciągiem poleceń * pKlasa - klasa jeśli konieczna * pOpis - opis widoczny w dymku przy przycisku */ function przyciskiDodaj(elUserBtns, pTekst, pAkcja, pKlasa, pOpis) { var nowyBtn = document.createElement('a'); // atrybuty nowyBtn.appendChild(document.createTextNode(pTekst)); nowyBtn.title = pOpis; if (pKlasa != '') nowyBtn.className = pKlasa ; nowyBtn.onclick = new Function(pAkcja); // dodanie przycisku elUserBtns.appendChild(nowyBtn); } var clickedMinor = false; function onMinorEditClick() { if (this.checked && !clickedMinor) { dodajOpis("drobne"); clickedMinor = true; } } if (document.URL.indexOf("action=edit") > 0 || document.URL.indexOf("action=submit") > 0) { if (wgCanonicalNamespace != "Special") { addOnloadHook(przyciskiOpis); } } document.write('<link rel="stylesheet" type="text/css" href=" \ http://pl.wikiquote.org/w/index.php?title=U%C5%BCytkownik:Sp5uhe/formatowanie-test.css \ &action=raw&ctype=text/css&dontcountme=s">'); /*</nowiki></pre>*/