MediaWiki:Monobook.js
E Wikisource
Note - After saving, you may have to bypass your browser's cache to see the changes. Mozilla / Firefox / Safari: hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (Command-R on a Macintosh); Konqueror: click Reload or press F5; Opera: clear the cache in Tools → Preferences; Internet Explorer: hold Ctrl while clicking Refresh, or press Ctrl-F5.
/* <pre> */ /* tooltips and access keys */ ta = new Object(); ta['pt-userpage'] = new Array('.','Pagina usoris mea'); ta['pt-anonuserpage'] = new Array('.','The user page for the ip you\'re editing as'); ta['pt-mytalk'] = new Array('n','Disputatum meum'); ta['pt-anontalk'] = new Array('n','Discussion about edits from this ip address'); ta['pt-preferences'] = new Array('','Praeferentiae meae'); ta['pt-watchlist'] = new Array('l','Paginae quae custodis'); ta['pt-mycontris'] = new Array('y','Index conlationum mearum'); ta['pt-login'] = new Array('o','Te conventum aperire hortamur, non autem requisitum'); ta['pt-anonlogin'] = new Array('o','Te conventum aperire hortamur, non autem requisitum'); ta['pt-logout'] = new Array('o','Finire conventum'); ta['ca-talk'] = new Array('t','Disputatio de hac pagina'); ta['ca-edit'] = new Array('e','Hanc paginam recensere potes'); ta['ca-addsection'] = new Array('+','Huic disputationi adnotare'); ta['ca-viewsource'] = new Array('e','Haec pagina protecta est'); ta['ca-history'] = new Array('h','Historia huius paginae'); ta['ca-protect'] = new Array('=','Protegere hanc paginam'); ta['ca-delete'] = new Array('d','Delere hanc paginam'); ta['ca-undelete'] = new Array('d','Reficere hanc pagina deleta'); ta['ca-move'] = new Array('m','Movere hanc paginam'); ta['ca-watch'] = new Array('w','Custodire hanc paginam'); ta['ca-unwatch'] = new Array('w','Decustodire hanc paginam'); ta['search'] = new Array('f','Quaerere hanc wiki'); ta['p-logo'] = new Array('','Pagina prima'); ta['n-mainpage'] = new Array('z','Invisere paginae primae'); ta['n-portal'] = new Array('','De Wikipedia'); ta['n-currentevents'] = new Array('','Eventa novissima'); ta['n-recentchanges'] = new Array('r','Index mutationum recentum'); ta['n-randompage'] = new Array('x','Invisere paginae fortuitae'); ta['n-help'] = new Array('','Adiutatum de hanc wiki'); ta['n-sitesupport'] = new Array('','Adiuvare hanc wiki'); ta['t-whatlinkshere'] = new Array('j','Index paginarum quae hic nectunt'); ta['t-recentchangeslinked'] = new Array('k','Mutationes recentes in paginis quae hic nectunt'); ta['feed-rss'] = new Array('','RSS feed de hanc pagina'); ta['feed-atom'] = new Array('','Atom feed de hanc pagina'); ta['t-contributions'] = new Array('','Index conlationum huius usoris'); ta['t-emailuser'] = new Array('','Mittere cursum publicum electronicum huic usoro'); ta['t-upload'] = new Array('u','Onerare fascicula'); ta['t-specialpages'] = new Array('q','Index paginarum specialium'); ta['ca-nstab-main'] = new Array('c','Videre paginam'); ta['ca-nstab-user'] = new Array('c','Videre paginam usoris'); ta['ca-nstab-media'] = new Array('c','Videre mediorum paginam'); ta['ca-nstab-special'] = new Array('','Haec paginam specialis est, paginam ipsam tibi recensere not licet'); ta['ca-nstab-wp'] = new Array('a','Videre projecti paginam'); ta['ca-nstab-image'] = new Array('c','Videre paginam imaginem'); ta['ca-nstab-mediawiki'] = new Array('c','Videre the system message'); ta['ca-nstab-template'] = new Array('c','Videre formula'); ta['ca-nstab-help'] = new Array('c','Videre paginam adiutatam'); ta['ca-nstab-category'] = new Array('c','Videre paginam categoriam'); // ============================================================ // BEGIN Enable multiple onload functions // setup onload functions this way: // aOnloadFunctions[aOnloadFunctions.length] = function_name; // without brackets! if (!window.aOnloadFunctions) { var aOnloadFunctions = new Array(); } window.onload = function() { if (window.aOnloadFunctions) { for (var _i=0; _i<aOnloadFunctions.length; _i++) { aOnloadFunctions[_i](); } } } // END Enable multiple onload functions // ============================================================ function addLoadEvent(func) { if (window.addEventListener) window.addEventListener("load", func, false); else if (window.attachEvent) window.attachEvent("onload", func); } //options d'affichage. //Cookies function SetCookie(name,value) { document.cookie = name + "=" + escape(value); } function GetCookie(name) { var i =0; while (i < document.cookie.length) { if (document.cookie.substr(i,name.length) == name) { var valend = document.cookie.indexOf(";",i+name.length+1); if (valend == -1) { valend = document.cookie.length; } return unescape(document.cookie.substring(i+name.length+1,valend)); } i = document.cookie.indexOf(" ", i) + 1; if (i == 0) break; } } function OptionText() { var indexNavigationBar = 0; // iterate over all < span >-elements until class "OptionText" is found for( var i=0; SpanElem = document.getElementsByTagName("span")[i]; i++ ) { // if found an option span if (SpanElem.className == "OptionText") { //SpanElem.style.display = 'none'; OptionTitle = SpanElem.title; OptionStyle = SpanElem.firstChild.getAttribute('style'); //check if option was already encountered... if(!document.getElementById(OptionTitle)){ //read cookie var DisplayOptionDefault = true; CookieDisplayOption = GetCookie ("Display"+OptionTitle) if (CookieDisplayOption ) { if (CookieDisplayOption == "false") DisplayOptionDefault = false; } var PageDisplay = document.createElement("li"); PageDisplay.setAttribute('id', OptionTitle); var PageDisplayLink = document.createElement("a"); OptionText = document.createTextNode("Désactiver "+OptionTitle); PageDisplayLink.appendChild(OptionText); PageDisplayLink.setAttribute('href','javascript:displayOptionText("'+OptionTitle+'","' + OptionStyle +'", '+DisplayOptionDefault+');'); PageDisplay.appendChild(PageDisplayLink); var optlist = document.getElementById("optlist"); if(!optlist) { var displayOptions = document.createElement("div"); displayOptions.style.marginTop = "0.7em"; displayOptions.innerHTML = '<h5>optiones<\/h5><div class="pBody"><ul id="optlist"></ul><\/div>'; document.getElementById("p-tb").appendChild(displayOptions); optlist = document.getElementById("optlist"); } optlist.appendChild(PageDisplay); displayOptionText(OptionTitle,OptionStyle,DisplayOptionDefault); } } } } function displayOptionText(optiontitle, optionstyle, bool) { SetCookie ("Display"+optiontitle,bool); var PageDisplayLink = document.getElementById(optiontitle).firstChild;; // iterate over all < span >-elements for( var i=0; SpanElem = document.getElementsByTagName("span")[i]; i++ ) { // if found an option text if ((SpanElem.className == "OptionText") && (SpanElem.title == optiontitle)) { if(bool==true ) { SpanElem.setAttribute('style',optionstyle); PageDisplayLink.firstChild.data = (optiontitle); PageDisplayLink.setAttribute('href', 'javascript:displayOptionText("'+optiontitle+'","'+optionstyle+'", false);'); } if(bool==false) { SpanElem.setAttribute('style','null'); PageDisplayLink.firstChild.data = (optiontitle); PageDisplayLink.setAttribute('href', 'javascript:displayOptionText("'+optiontitle+'","'+optionstyle+'", true);'); } } } } addOnloadHook(OptionText); function BilingualLink() { if( wgNamespaceNumber != 0) return; var doc_url = document.URL; var url = ''; // iterate over all <li>-elements for(var j=0; b = document.getElementsByTagName("li")[j]; j++) { if(b.className.substring(0,10) == "interwiki-" ) { var lang = b.className.substring(10,b.className.length); if( doc_url.indexOf('?title=') != -1 ) { var qm = doc_url.indexOf('&match='); if( qm != -1 ) url = doc_url.substring(0,qm)+"&match="+lang; else url = doc_url+"&match="+lang; } else { var qm = doc_url.indexOf('?'); if( qm != -1 ) url = doc_url.substring(0,qm)+"?match="+lang; else url = doc_url+"?match="+lang; } b.innerHTML = b.innerHTML+"<a href='"+url+"'> ⇔</a>"; } } } addOnloadHook(BilingualLink); function tabulae() { //tabula secunda if( document.getElementById("infoedit") ) { var b = document.getElementById("ca-talk"); if (b) { b.childNodes[0] = "Fons"; } } } addLoadEvent(tabulae); // BEGIN Dynamic Navigation Bars // set up the words in your language var NavigationBarHide = '▲ Cela'; var NavigationBarShow = '▼ Ostende'; // set up max count of Navigation Bars on page, // if there are more, all will be hidden // NavigationBarShowDefault = 0; // all bars will be hidden // NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden var NavigationBarShowDefault = 0; // shows and hides content and picture (if available) of navigation bars // Parameters: // indexNavigationBar: the index of navigation bar to be toggled function toggleNavigationBar(indexNavigationBar) { var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); if (!NavFrame || !NavToggle) { return false; } // if shown now if (NavToggle.firstChild.data == NavigationBarHide) { for ( var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) { if (NavChild.className == 'NavPic') { NavChild.style.display = 'none'; } if (NavChild.className == 'NavContent') { NavChild.style.display = 'none'; } if (NavChild.className == 'NavToggle') { NavChild.firstChild.data = NavigationBarShow; } } // if hidden now } else if (NavToggle.firstChild.data == NavigationBarShow) { for ( var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) { if (NavChild.className == 'NavPic') { NavChild.style.display = 'block'; } if (NavChild.className == 'NavContent') { NavChild.style.display = 'block'; } if (NavChild.className == 'NavToggle') { NavChild.firstChild.data = NavigationBarHide; } } } } // adds show/hide-button to navigation bars function createNavigationBarToggleButton() { var indexNavigationBar = 0; // iterate over all < div >-elements for( var i=0; NavFrame = document.getElementsByTagName("div")[i]; i++ ) { // if found a navigation bar if (NavFrame.className == "NavFrame") { indexNavigationBar++; var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');'); var NavToggleText = document.createTextNode(NavigationBarHide); NavToggle.appendChild(NavToggleText); // add NavToggle-Button as first div-element // in < div class="NavFrame" > NavFrame.insertBefore( NavToggle, NavFrame.firstChild ); NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); } } // if more Navigation Bars found than Default: hide all if (NavigationBarShowDefault < indexNavigationBar) { for( var i=1; i<=indexNavigationBar; i++ ) { toggleNavigationBar(i); } } } aOnloadFunctions[aOnloadFunctions.length] = createNavigationBarToggleButton; // END Dynamic Navigation Bars /* add menu for selecting subsets of secial characters */ /***** must match MediaWiki:Edittools *****/ function addCharSubsetMenu() { var specialchars = document.getElementById('specialchars'); if (specialchars) { var menu = "<select style=\"display:inline\" onChange=\"chooseCharSubset(selectedIndex)\">"; menu += "<option>Latinae litterae</option>"; menu += "<option>Wiki</option>"; menu += "<option>Graecae antiquae litterae</option>"; menu += "<option>Graecae novae (monotonicae) litterae</option>"; menu += "<option>Cirillicae litterae</option>"; menu += "<option>Arabae litterae</option>"; menu += "<option>Hebraicae litterae</option>"; menu += "<option>Armenae litterae</option>"; menu += "<option>Hieroglificae litterae</option>"; menu += "<option>Vietnamitae litterae</option>"; menu += "<option>IPA</option>"; menu += "<option>Mathematica signa</option>"; menu += "</select>"; specialchars.innerHTML = menu + specialchars.innerHTML; /* default subset - try to use a cookie some day */ chooseCharSubset(0); } } /* select subsection of special characters */ function chooseCharSubset(s) { var l = document.getElementById('specialchars').getElementsByTagName('p'); for (var i = 0; i < l.length ; i++) { l[i].style.display = i == s ? 'inline' : 'none'; l[i].style.visibility = i == s ? 'visible' : 'hidden'; } } addLoadEvent(addCharSubsetMenu); function interwikiExtra() { // iterate over all <span>-elements for(var i=0; a = document.getElementsByTagName("span")[i]; i++) { // if found a linkInfo span if(a.className == "interwiki-info") { // iterate over all <li>-elements var count=0; for(var j=0; b = document.getElementsByTagName("li")[j]; j++) { if(b.className == "interwiki-" + a.id) { b.innerHTML = b.innerHTML + " "+a.title; if(a.title == "(to)") { b.title = "Textus originalis"; } } else if(b.className == "interwiki-" + a.id.substr(0,a.id.length-1)) { count = count+1; if(a.id.charAt(a.id.length-1) == count) { b.innerHTML = b.innerHTML + " "+a.title; } } } } if(a.className == "AutreVersion") { c = document.getElementById("p-lang"); e = c.getElementsByTagName("ul")[0]; p = a.title.indexOf("|"); e.innerHTML = e.innerHTML + "<li class=\"interwiki-fr\"><a href='" + a.title.substr(0,p) + "'>Français</a> " + a.title.substr(p+1,a.title.length-1) +"</li>"; } } } addLoadEvent(interwikiExtra); // INIZIO Collegamenti Interprogetto (codice adattato da de:wikt:Mediawiki:monobook.js) document.write('<style type="text/css">#interProject {display: none; speak: none;} #p-tb .pBody {padding-right: 0;}<\/style>'); function iProject() { if (document.getElementById("interProject")) { var iProject = document.getElementById("interProject").innerHTML; var interProject = document.createElement("div"); interProject.style.marginTop = "0.7em"; interProject.innerHTML = '<h5>Alii incepti<\/h5><div class="pBody">'+iProject+'<\/div>'; document.getElementById("p-tb").appendChild(interProject); } } hookEvent("load", iProject); // FINE Collegamenti Interprogetto document.write('<script type="text/javascript" src="http://wikisource.org/wiki/MediaWiki:Page.js?action=raw&ctype=text/javascript&dontcountme=s"></script>'); /*** *Expressions régulières *Auteur: ThomasV, Pathoschild *Note : cet outil utilise la syntaxe javascript : on utilise $ (et pas \) pour appeler un groupe dans la chaîne de remplacement. *Tutoriel : http://www.regular-expressions.info/tutorial.html ****/ /* create form */ function custom() { /* if already open */ if(document.getElementById('regexform')) customremove() else { editbox = document.getElementById('wpTextbox1'); /* container */ regexform = document.createElement('div'); regexform.setAttribute('id','regexform'); editbox.parentNode.insertBefore(regexform,editbox.parentNode.firstChild); /* form tag */ var formform = document.createElement('form'); formform.setAttribute('id','regexformform'); formform.setAttribute('onSubmit','customgo(); return false;'); regexform.appendChild(formform); // add input boxes var newinput = document.createElement('input'); newinput.setAttribute('id','formsearch'); newlabel = document.createElement('label'); newlabel.setAttribute('for','formsearch'); newlabel.appendChild(document.createTextNode("Substituere")); formform.appendChild(newlabel); formform.appendChild(newinput); var newinput = document.createElement('input'); newinput.setAttribute('id','formreplace'); newlabel = document.createElement('label'); newlabel.setAttribute('for','formreplace'); newlabel.appendChild(document.createTextNode(' par ')); formform.appendChild(newlabel); formform.appendChild(newinput); // go! link var go_button = document.createElement('input'); go_button.setAttribute('type',"submit"); go_button.setAttribute('title',"go!"); go_button.setAttribute('value',"go!"); formform.appendChild(go_button); } } /* run patterns */ function customgo() { /* get search and replace strings */ search = document.getElementById('formsearch').value; search = search.replace(/\\n/g, '\n'); replace = document.getElementById('formreplace').value; replace = replace.replace(/\\n/g, '\n'); /* convert input to regex */ // without delimiters if(!search.match(/^\s*\/[\s\S]*\/[a-z]*\s*$/i)) { search = new RegExp(search,'g'); } // with delimiters else { // break into parts var regpattern = search.replace(/^\s*\/([\s\S]*)\/[a-z]*\s*$/i,'$1'); var regmodifiers = search.replace(/^\s*\/[\s\S]*\/([a-z]*)\s*$/,'$1'); // filter invalid flags regmodifiers = regmodifiers.replace(/[^gim]/ig,''); search = new RegExp(regpattern, regmodifiers); } /* perform */ editbox.value = editbox.value.replace(search,replace); } /* remove form */ function customremove() { regexform.parentNode.removeChild(regexform); patterncount = -1; } /******************* *** create button ********************/ function add_regexp_button(){ toolbar = document.getElementById("toolbar"); if(toolbar){ var image = document.createElement("img"); image.width = 23; image.height = 22; image.border = 0; image.className = "mw-toolbar-editbutton"; image.style.cursor = "pointer"; image.alt = "regexp"; image.title = "Expression régulière"; image.src = "http://upload.wikimedia.org/wikipedia/commons/a/a0/Button_references_alt.png"; image.onclick = custom; toolbar.appendChild(image); } } addOnloadHook(add_regexp_button) /********************* Indicateurs de qualité Auteur: ThomasV *********************/ function pageQuality() { var a = document.getElementById("ca-nstab-main"); if(!a) return; var q = document.getElementById("textquality") if( q ) { var t = q.className; var new_img = document.createElement("img"); if(t == 'Textes validés') new_img.setAttribute("src", "http://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Compar%C3%A9.png/10px-Compar%C3%A9.png"); else new_img.setAttribute("src", "/wiki/Special:Filepath/"+t.substring(0,t.length-1)+'%25.png'); new_img.setAttribute("title", "/wiki/Special:Filepath/"+t.substring(0,t.length-1)+'%25.png'); a.firstChild.appendChild(new_img); } if( document.getElementById("Author") ) a.firstChild.innerHTML = "Auteur"; for( var i=0; spanElem = document.getElementsByTagName("span")[i]; i++ ) { if (spanElem.className == "pagequality") { t = spanElem.title; var new_img = document.createElement("img"); new_img.setAttribute("src", "/wiki/Special:Filepath/"+t.substring(0,t.length-1)+'%25.png'); new_img.setAttribute("title", "/wiki/Special:Filepath/"+t.substring(0,t.length-1)+'%25.png'); if(wgCanonicalNamespace == "Pagina") { a.firstChild.appendChild(new_img); } else { s1 = spanElem.parentNode.previousSibling; opttext = s1.firstChild.firstChild; img = opttext.firstChild.nextSibling.nextSibling.nextSibling; next = img.nextSibling; opttext.removeChild(img); opttext.insertBefore(new_img,next); } } } } addOnloadHook(pageQuality); /**** *Mode édition *****/ if(wgAction=='edit' || wgAction=='submit') { /* *Boutons Qualité *Auteur: ThomasV */ function addQuality(form,value){ var text=""; switch(value){ case "0%": text = "Emendandum"; break; case "25%": text = "Textus infectus"; break; case "50%": text = "Textus non paratum"; break; case "75%": text = "Perfectus et paratum"; break; case "100%": text = "Bis lectus et emendatum"; break; } form.elements["wpSummary"].value="/* "+text+" */"; s = form.elements["wpTextbox1"].value; if(wgCanonicalNamespace == "Pagina") { prefix="Pagina"; s = s.replace(/\{\{PaginaQuality\|(.*?)\}\}/gi,"") } else { prefix="Text"; s = s.replace(/\{\{TextQuality\|(.*?)\}\}/gi,"") } form.elements["wpTextbox1"].value="{"+"{"+prefix+"Quality|"+value+"}"+"}"+s; } function addQualityButtons(){ if( wgNamespaceNumber !=0 ) return; var ig = document.getElementById("wpWatchthis"); if(ig) { var f = document.createElement("span"); f.innerHTML = ' <input type="radio" name="quality" value="25%" onclick="addQuality(this.form,this.value)"><img src = "/wiki/Special:Filepath/25%25.png">'+'<input type="radio" name="quality" value="50%" onclick="addQuality(this.form,this.value)"><img src = "/wiki/Special:Filepath/50%25.png">'+'<input type="radio" name="quality" value="75%" onclick="addQuality(this.form,this.value)"><img src = "/wiki/Special:Filepath/75%25.png">'+'<input type="radio" name="quality" value="100%" onclick="addQuality(this.form,this.value)"><img src = "/wiki/Special:Filepath/100%25.png"> Niveau d\’avancement du texte'; ig.parentNode.insertBefore(f,ig.nextSibling.nextSibling.nextSibling) } } addOnloadHook(addQualityButtons); //============================================================ // Insertion de nouveaux boutons dans la barre d'outils //============================================================ //Remplit la variable mwCustomEditButtons (voir /skins-1.5/commons/wikibits.js) pour ajouter des boutons à la barre d'outils function addCustomButton(imageFile, speedTip, tagOpen, tagClose, sampleText) { mwCustomEditButtons[mwCustomEditButtons.length] = {"imageFile": imageFile, "speedTip": speedTip, "tagOpen": tagOpen, "tagClose": tagClose, "sampleText": sampleText}; } addCustomButton('http://upload.wikimedia.org/wikipedia/commons/8/8f/Button_poeme.png','Poesis','<poem>','</poem>',''); addCustomButton('http://upload.wikimedia.org/wikipedia/commons/3/37/Btn_toolbar_commentaire.png','Commentaire','<!--','-->','Insérer votre commentaire'); addCustomButton('http://upload.wikimedia.org/wikipedia/commons/c/c8/Button_redirect.png','Redirectio','#REDIRECT \[\[','\]\]','nom de la destination'); addCustomButton('http://upload.wikimedia.org/wikipedia/commons/b/b4/Button_category03.png','Categoria','\[\[Categoria:','\]\]','nom de la catégorie'); addCustomButton('http://upload.wikimedia.org/wikipedia/en/5/5f/Button_center.png','Texte centré','\{\{subst\:Centrer\}\}','</div>','Texte centré'); addCustomButton('http://upload.wikimedia.org/wikipedia/en/5/58/Button_small.png','Texte plus petit','<small>','</small>',''); addCustomButton('http://upload.wikimedia.org/wikipedia/commons/5/56/Button_big.png','Texte plus grand','<big>','</big>',''); addCustomButton('http://upload.wikimedia.org/wikipedia/en/8/80/Button_upper_letter.png','Superscriptus','<sup>','</sup>',''); addCustomButton('http://upload.wikimedia.org/wikipedia/commons/4/4b/Button_nbsp.png','Espace insécable',' \;','',''); addCustomButton('http://upload.wikimedia.org/wikipedia/en/1/13/Button_enter.png','Aller à la ligne','<br />','',''); addCustomButton('http://upload.wikimedia.org/wikipedia/commons/7/78/Button_titre.png','Titre de page','\{\{Titulus\|','\|\|\}\}',''); addCustomButton('http://upload.wikimedia.org/wikipedia/commons/c/c4/Button_ref.png','Notam addere','<ref>','</ref>',''); addCustomButton('http://upload.wikimedia.org/wikipedia/commons/9/9a/Button_references.png','Liste des références','<references />','',''); //Ressemble à la fonction de /skins-1.5/commons/wikibits.js pour insérer un autre lien que insertTags function marque_tab() { var toolbar = document.getElementById('toolbar'); if (!toolbar) return false; var textbox = document.getElementById('wpTextbox1'); if (!textbox) return false; if (!document.selection && textbox.selectionStart == null) return false; var image = document.createElement("img"); image.width = 23; image.height = 22; image.src = 'http://upload.wikimedia.org/wikipedia/commons/0/04/Button_array.png'; image.border = 0; image.alt = 'Tableau'; image.title = 'Tableau'; image.style.cursor = "pointer"; image.onclick = function() { popupTableau(); return false; } toolbar.appendChild(image); } addOnloadHook(marque_tab); } /* endif edition*/ /* </pre> */