User:Paracel63/global.js

From Meta, a Wikimedia project coordination wiki

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.
// Wiki-Labels [[File:User:EpochFail/WikiLabels.js]] (workaround for [[phab:T35355]])
mw.loader.load('//meta.wikimedia.org/w/index.php?title=MediaWiki:Gadget-WikiLabels-loader.js&action=raw&ctype=text/javascript');

mw.loader.load('//meta.wikimedia.org/w/index.php?title=User:Petr_Matas/AnimatedHistory.js&action=raw&ctype=text/javascript');

// WEF persondata editor - tipsare: Jan Ainali
mediaWiki.loader.load( '//ru.wikipedia.org/w/index.php?title=MediaWiki:WEF_PersonEditor.js&action=raw&ctype=text/javascript&maxage=86400&smaxage=21600' );
 
// WEF link editor - tipsare: Jan Ainali
mediaWiki.loader.load( '//ru.wikipedia.org/w/index.php?title=MediaWiki:WEF_ExternalLinks.js&action=raw&ctype=text/javascript&maxage=86400&smaxage=21600' );

// [[:sv:Användare:Paracel63/common.js]] – Colour matching brackets in a copy of the edit box.
// On a suggestion by [[:en:User:Billinghurst]] <- [[:en:User:ais523]] <- [[:en:User:Absidy]].
// Original code: https://en.wikipedia.org/w/index.php?title=User:Ais523/bracketmatch.js&action=raw&ctype=text/javascript
// Suggestion: https://www.mediawiki.org/wiki/User_talk:Paracel63

function(){
  var p=document.getElementById('wikiPreview');
  if(p==null) p=document.getElementById('viewsourcetext');
  if(p)
    p.innerHTML+="<div id='bm_parseres'><a href='javascript:bm_parsebrackets();'>Parse</a></div>";
  try
  {
    var edh=document.getElementsByClassName('editHelp')[0];
    if(bm_useparsebutton)
      edh.innerHTML='<input id="bm_parsebutton" name="bm_parsebutton"'+
        ' type="button" tabindex="6" value="Show parsed" title="Show how braces parse in this text" '+
        ' onclick="bm_showparsed()"/>&nbsp;&nbsp;'+edh.innerHTML;
  } catch(x) {}
});

function bm_parsebrackets()
{
  var t=document.getElementById('wpTextbox1').value;
  var a=sajax_init_object();
  var p='action=expandtemplates&generatexml=1&format=json&callback=bm_callback&text='+encodeURIComponent(t);
  a.open('POST', mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php');
  a.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  a.setRequestHeader("Content-length", p.length);
  a.setRequestHeader("Connection", "close");
  a.onreadystatechange=function(){bm_apirespond(a)};
  a.send(p);
}

function bm_showparsed()
{
  bm_parsebrackets();
  return 0;
}

function bm_apirespond(a)
{
  try
  {
    if(a.readyState==4)
      eval(a.responseText);
  }
  catch(e)
  {
    document.getElementById('bm_parseres').innerHTML=
      "Could not parse due to a server error. <a href='javascript:bm_parsebrackets();'>Parse</a>";
  }
}

var colang;

function bm_hexdigit(n)
{
  var i=Math.floor(n);
  if(i<10) return i+'';
  if(i==10) return 'A';
  if(i==11) return 'B';
  if(i==12) return 'C';
  if(i==13) return 'D';
  if(i==14) return 'E';
  if(i==15) return 'F';
}

function bm_tohex(n)
{
  var i=Math.floor(n);
  return bm_hexdigit(i/16)+bm_hexdigit(i%16);
}

function bm_gencol(ang)
{
  var r=Math.sin(ang)+1;
  var g=Math.sin(ang+3.14159*2/3)+1;
  var b=Math.sin(ang-3.14159*2/3)+1;
  return bm_tohex(r*127.5)+bm_tohex(g*127.5)+bm_tohex(b*127.5);
}

function bm_callback(o)
{
  var subs={"tplarg":"{{{",
            "/tplarg":"}}}",
            "template":"{{",
            "/template":"}}",
            "part":"|",
            "ext":"&"+"lt;",
            "/attr":"&"+"gt;",
            "attr/":"&"+"gt;"};
  var h=o.parsetree["*"].split("<");
  var i=h.length;
  var r;
  var n;
  var sp=0;
  var st=new Array();
  var col;
  colang=0;
  while(--i)
  {
    col="";
    n=1;
    h[i]=h[i].split(">");
    h[i][0]=h[i][0].split(" ");
    r=subs[h[i][0][0]];
    if(r==undefined) r="";
    if(r=='}}}'||r=='}}')
    {
      st[sp]=bm_gencol(colang);
      col=st[sp];
      sp++;
      colang+=2.4; //golden angle in radians, approx
    }
    else if(r=='{{{'||r=='{{')
    {
      sp--;
      col=st[sp];
      n=2;
    }
    if(col!="")
      r="<font color='#"+col+"' id='bm_f"+col+n+"' onclick='bm_highlight(\""+col+"\",\"black\")'>"+r+"</font>";
    h[i][0]=r;
    h[i]=h[i].join("");
  }
  document.getElementById('bm_parseres').innerHTML=
    "<div style='border:1px solid blue'><tt>"+h.join("").split("\n").join("<br />")+
    "</tt></div><div><a href='javascript:bm_parsebrackets();'>Parse</a></div>";
}

function bm_highlight(x,c)
{
  document.getElementById('bm_f'+x+'1').style.backgroundColor=c;
  document.getElementById('bm_f'+x+'2').style.backgroundColor=c;
  if(c=="black")
    window.setTimeout("bm_highlight('"+x+"','transparent')",3000);
}
//<pre>
//test: {{{a|b}}} {{a|b}} {{c|{{e|a=b|3=c}}|f}}<imagemap type=c>abc</imagemap>
//test: <i>f</i><nowiki>g</nowiki><includeonly>h</includeonly>
//test: <noinclude>i</noinclude> {{{{{{{{j}}}}}}}}
/* test:
{{startofline}}</pre>
*/

// tydligare flikrubrik - tipsare: Nirmos (https://sv.wikipedia.org/w/index.php?title=Wikipedia:Bybrunnen&diff=43688135&oldid=43687955)
document.title = document.title + ' (' + mw.config.get( 'wgContentLanguage' ) + ')';

// listvändning, tipsare: https://sv.wikipedia.org/wiki/Diskussion:Person_of_the_Year
  var txtbox = document.getElementById( 'wpTextbox1' );
  var b = txtbox.value.substring( txtbox.selectionStart, txtbox.selectionEnd ).split( '\n' ).reverse();
  var newtxt = txtbox.value.substring( 0, txtbox.selectionStart) + b[0];
  for( var i = 1; i < b.length; i++ ) {
    newtxt += '\n' + b[i];
  }
  newtxt += txtbox.value.substring( txtbox.selectionEnd );
  txtbox.value = newtxt;
}
 
function addReverseButton() {
  jQuery( '<img />' )
  .addClass( 'mw-toolbar-editbutton' )
  .attr({ 
    style: 'width: 23px; height: 22px',
    src: '//upload.wikimedia.org/wikipedia/commons/2/2b/Button_arrow_down.PNG',
    alt: 'Vänd ordningen på raderna i markerad text',
    title: 'Vänd ordningen på raderna i markerad text'
  })
  .click( reverseLines )
  .insertBefore( 'div#antispam-container' );
}
 
jQuery( addReverseButton );

jQuery( function() {
  jQuery( 'a.image img' ).filter( 'img[src*="upload.wikimedia.org/wikipedia/commons"]' ).parent()
    .attr( 'href', function( i, val ) {
      if ($(this).attr('href').indexOf('commons.wikimedia.org') > 0) return;
      
      var newVal = val.replace( "/wiki/File:", "//commons.wikimedia.org/wiki/File:" )
      .replace( "/w/index.php?title=File:", "//commons.wikimedia.org/w/index.php?title=File:" )
      .replace( "/wiki/Fil:", "//commons.wikimedia.org/wiki/File:" )
      .replace( "/w/index.php?title=Fil:", "//commons.wikimedia.org/w/index.php?title=File:" );
      console.log(val, newVal);
      return newVal;
    });
});
// Undersidor
mw.loader.load( '/w/index.php?title=Användare:GeMet/undersidor.js&action=raw&ctype=text/javascript' );

//mw.loader.load('https://meta.wikimedia.org/w/index.php?action=raw&ctype=text/javascript&title=MediaWiki:MoreMenu.import.js');

// de:Benutzer:Schnark/js/artikel-statistik.js
mw.loader.load('https://de.wikipedia.org/w/index.php?title=Benutzer:Schnark/js/artikel-statistik.js&action=raw&ctype=text/javascript');

// på sidorna Wikipedia:Utmärkta/Bra/Rekommenderade_artiklar, markera de artiklar som inte har en kategorisering som överensstämmer med sidans namn med gul bakgrundsfärg och rapportera antalet (tips från Larske: https://sv.wikipedia.org/wiki/Wikipediadiskussion:Veckans_t%C3%A4vling/Rekommenderat_IV#Ett_hj%C3%A4lpmedel_f%C3%B6r_att_underl%C3%A4tta_bortplockning_av_artiklar_som_inte_%C3%A4r_Rekommenderade_fr%C3%A5n_sidan_Wikipedia:Rekommenderade_artiklar
$(function() {
  if (['Wikipedia:Utmärkta_artiklar','Wikipedia:Bra_artiklar','Wikipedia:Rekommenderade_artiklar'].includes(mw.config.get('wgPageName'))){
		var cms = [];
  		new mw.Api().get({action:'query',list:'categorymembers', cmtitle:'Kategori:'+mw.config.get('wgPageName'), cmlimit:'max'}).done(function(data){
	  		for (var cm in data.query.categorymembers){cms.push(data.query.categorymembers[cm].title);}
    		var n = 0;
   			$("dd a").each(function(){if (!cms.includes(this.title)){n+=1;$(this).css({'background':'yellow'});}});
    		if (n>0) {alert(n+' artiklar som inte är '+mw.config.get('wgPageName')+' markerade.')}
		});
	}
});

// Nikki - StatementCounts (kat-vy m antalet WD-uttalanden)
mw.loader.load("//meta.wikimedia.org/w/index.php?title=User:Nikki/StatementCounts.js&action=raw&ctype=text/javascript");

// Ainali WD-Extra (Q-kod efter sidtitel + uttalanden efter WD-länk i v-marg)
mw.loader.load("//sv.wikipedia.org/w/index.php?title=Användare:Ainali/wd-extra.js&action=raw&ctype=text/javascript");

// Larske-länk-vs-kategori-verktyg https://sv.wikipedia.org/w/index.php?title=Anv%C3%A4ndardiskussion:Paracel63&diff=prev&oldid=53869905
mw.loader.load( mw.config.get( 'wgScript' ) + '?title=Anv%C3%A4ndare:Larske/kvhp missing category.js&action=raw&ctype=text/javascript' );