User:Yaroslav Zolotaryov/monobook.js

From Wikimedia Incubator

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
//Script version 0.2

 function format() {
    var txt = document.editform.wpTextbox1;

    txt.value = fixlinks(txt.value);
 }



 //Adds Test-WP\chal\ prefix to all internal links except Category, Image, Media interwiki and already fixed links.

 function fixlinks(str) {  
        str = str.replace(/\[\[([^(?:Category)|(?:Image)|(?:Media)|(?:Test-WP\/chal\/)|(?:(?:\a-zA-Z){2,3}:)])(.+?)(\|.*?)?\]\]/gi, "[[Test-WP/chal/$1$2$3]]");
	str = str.replace(/\[\[Test-WP\/chal\/([^\|]+?)\]\]/gi, "[[Test-WP/chal/$1|$1]]");
        return str;
  }

 addOnloadHook(function () {
  if(document.forms.editform) {
       addTab('javascript:format()', 'format', 'ca-format', 'Format article', '');
  }
 });

 
 function addTab(url, name, id, title, key){
     var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
     return addlilink(tabs, url, name, id, title, key)
 };


 function addlilink(tabs, url, name, id, title, key){
     var na = document.createElement('a');
     na.href = url;
     na.appendChild(document.createTextNode(name));
     var li = document.createElement('li');
     if(id) li.id = id;
     li.appendChild(na);
     tabs.appendChild(li);
     if(id)
     {
         if(key && title)
         {
             ta[id] = [key, title];
         }
         else if(key)
         {
             ta[id] = [key, ''];
         }
         else if(title)
         {
             ta[id] = ['', title];
         }
     }
     // re-render the title and accesskeys from existing code in wikibits.js
     akeytt();
     return li;
 }