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.4

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

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



//Adds Wp/be/ prefix to all internal links except Category, Image, Media interwiki and already fixed links.

function fixlinks(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]; // [[dog|dogs]]
      var a = n_arr[1]; // dog
	  var z = n_arr[2]; // |
      var b = n_arr[3]; // dogs

  if (a.indexOf(":") >=0)
      { 
		// Skip links with : in name, e.g. [[Category:]], [[Image:]], interwiki etc...

      } else {
		
		// Add Wp/be/ prefix if nessesary, capitalize first letter after Wp/be/  e.g. [[Wp/be/dog|d]] -> [[Wp/be/Dog|d]]

		var k = n.replace(/\[\[(Wp\/be\/)?(.)([^[\|]*)(\|)?([^[]*?)?\]\]/i, 
			function (tmp, p1, p2, p3, p4, p5) { // 5 possible bracket captures go to p1 - p5
				var ret = "[[" 
				if (p1) {ret += p1} else {ret += "Wp/be/"}
				ret += p2.toUpperCase();
				if (p3) {
				  ret += p3 + "|"
				  if (p4 && p5) {ret += p5} else {ret += p2 + p3}
				  } else {if (p4 && p5) {ret += p5} else {ret += p2}}
				return ret+"]]";
			}		
		); 
		str = str.replace(n, k);
	  
	  } 
	}
  }

  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;
 }