Benutzer:PerfektesChaos/Paulis/monobook.js

Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.

  • Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
  • Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
  • Internet Explorer/Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
  • Opera: Strg+F5
/// 2017-11-21
/// <nowiki>
/* global window: false, jQuery: false, mediaWiki: false               */
/* jshint forin: false,
          bitwise:true, curly:true, eqeqeq:true, latedef:true,
          laxbreak:true,
          nocomma:true, strict:true, undef:true, unused:true           */



( function ( mw ) {
   // Konfiguration von Sonderzeichenauswahl, Benutzer:Paulis
   "use strict";
   var Dummy = { launch:  false };



   function fiat( app ) {
      // mw.hook für Sonderzeichenauswahl
      //    app   -- Sonderzeichenauswahl-Anwendung
      var options = { },
          group, panel;
      group = [ { start:   "{{subst:Hallo}}",
                  show:    "H&W" },
                { start:   "{{Inuse|--[[Benutzer:Paulis|Paulis]]}}",
                  show:    "InUse" },
                { vorlage: "Zeile",
                  init:    5,
                  fun:     app.follower,
                  show:    "Zeile" },
                { vorlage: "Seite",
                  fun:     app.follower,
                  show:    "Seite" },
                { start:   "{{Idt}}",
                  show:    "Idt" },
                { start:   "<poem>",
                  suffix:  "</poem>",
                  show:    "Poem" },
                { start:   "<ref name=\"\">",
                  suffix:  "</ref>",
                  show:    "RefNa" },
                { start:   "''",
                  sample:  "Kursiver Text",
                  suffix:  "''",
                  support: "Kursivschrift",
                  show:    "K",
                  style:   "font-style:italic;" +
                           // Der Rest würde dann in eine Klasse gehören:
                           "background:   #D0D0D0;" +
                           "border-color: #E0E0E0 #E0E0E0 #707070 #707070;" +
                           "border-style: solid;" +
                           "border-width: 2px;" +
                           "display:      inline-block;" +
                           "min-width:    1.5em;" +
                           "text-align:    center;" }
              ];
      panel        = { selector: "Paulis/Experiment",
                       support:  "Einige neue Sachen",
                       def:      group };
      options.defs = { contentmodel: "wikitext",
                       system:       "builtin",
                       last:         false,
                       create:       [ panel ] };
      mw.hook( "ext.gadget.menuSwitcher.config" ).fire( options );
   }   // fiat()



   // TEMP ---->
   switch ( mw.config.get( "wgAction" ) ) {
      case "view":
         switch ( mw.config.get( "wgCanonicalSpecialPageName" ) ) {
            case "Upload":
               Dummy.launch = true;
            break;
         }   // switch wgCanonicalSpecialPageName
         break;
      case "edit":
      case "submit":
      case "parsermigration-edit":
         Dummy.launch = true;
         break;
   }   // switch wgAction
   if ( Dummy.launch ) {
      Dummy.follower = function ( apply, event, $at ) {
         // UDF für menuSwitcher
         //    apply   -- def
         //    event   -- DOM Event
         //    $at     -- jquery des umgebenden Elements
         // Return: string
         var got, r, s, sB, sE;
         if ( typeof apply.vorlage  ===  "string"
              &&     apply.vorlage ) {
            s = $at.textSelection( "getSelection" );
            if ( typeof s  ===  "string"   &&   s ) {
               got = /^\s+/.exec( s );
               if ( got ) {
                  sB = got[ 0 ];
                  s  = s.substr( sB.length );
               }
               got = /\s+$/.exec( s );
               if ( got ) {
                  sE = got[ 0 ];
                  s  = s.substr( 0,  s.length - sE.length );
               }
            } else {
               s = false;
            }
            if ( s ) {
               got = /^[1-9][0-9]*$/.exec( s );
               if ( got ) {
                  apply.i = parseInt( got[ 0 ], 10 );
                  s       = apply.i + "";
               }
            }
            if ( ! s ) {
               if ( typeof apply.init  !==  "number" ) {
                  apply.init = 1;
               }
               if ( typeof apply.incr  !==  "number" ) {
                  apply.incr = apply.init;
               }
               if ( typeof apply.i  ===  "number" ) {
                  apply.i += apply.incr;
               } else {
                  apply.i = apply.init;
               }
               s = apply.i;
            }
            r = "{{" + apply.vorlage + "|" + s + "}}";
            if ( sB ) {
               r = sB + r;
            }
            if ( sE ) {
               r = r + sE;
            }
         } else {
            r = "<span class=\"error\">.vorlage undefiniert</span>";
         }
         return r;
      }   // Dummy.follower()
      mw.hook( "ext.gadget.PaulisDummy.ready" ).fire( Dummy );
   }
   // <---- TEMP



   mw.hook( "ext.gadget.PaulisDummy.ready" ).add( fiat );
}( mediaWiki ) );



/// </nowiki>