User:Majr/hydra.js

// Adds a history link to the new messages box - Original script: wikipedia:User:Davidgothberg/newmessageshistory.js $('#mw-youhavenewmessages a:last').after(', history');

// Allows vector menu to be changed to tabs - wikipedia:User:Edokter/MenuTabsToggle.js importScriptURI('//en.wikipedia.org/w/index.php?title=User:Edokter/MenuTabsToggle.js&action=raw&ctype=text/javascript');

// Uses AJAX for previewing and showing changes - Original script: wikipedia:User:Js/ajaxPreview.js if (mw.config.get('wgAction') == 'edit' || mw.config.get('wgAction') == 'submit') { importScript('User:Ultradude25/ajaxPreview.js'); }

// Counts all your edits and saves them to a page - Original script: if (mw.config.get('wgTitle') == mw.config.get('wgUserName') && mw.config.get('wgNamespaceNumber') == 2) { importScript('User:Ultradude25/editcounter.js'); }

// Adds JavaScript and CSS syntax highlighting - Original script: importScript('User:Ultradude25/syntaxHighlight.js'); importScript('User:Ultradude25/syntaxHighlight/javascript.js'); importScript('User:Ultradude25/syntaxHighlight/css.js');

// Replace ugly links with fancy ones ("/Pagename?action=edit" instead of "/index.php?title=Pagename&action=edit" and "/Pagename" instead of "/wiki/Pagename") $( 'a' ).prop( 'href', function {   return this.href.replace( /\/index\.php\?title=([\w:/=!\-.\(\)]*)&(?!action=(?:un)?watch)([\w:/=]*)/, "/$1?$2" ); } ); $( 'a' ).prop( 'href', function {   return this.href.replace( '/wiki', '' ); } );

// Add Doc + Doc discussion tabs to template pages and change Template + Discussion tabs to always link to the original template + discussion page if ( mw.config.get( 'wgNamespaceNumber' ) == 10 || mw.config.get( 'wgNamespaceNumber' ) == 11 ) { var page = mw.config.get( 'wgTitle' ).replace( / /g, '_' ); var title = page.replace( '/doc', '' ); $( '#p-namespaces li:last' ).after( ' Documention ' ); $( '#p-namespaces li:last' ).after( ' Documention discussion ' );

if ( page.indexOf( '/doc' ) != -1 ) { $( '#ca-nstab-template' ).removeClass( 'selected' ); $( '#ca-nstab-template a' ).prop( 'href', function {           return this.href.replace( '/doc', '' );        } ); $( '#ca-talk' ).removeClass( 'selected' ); $( '#ca-talk a' ).prop( 'href', function {           return this.href.replace( '/doc', '' );        } ); if ( mw.config.get( 'wgNamespaceNumber' ) == 10 ) { $( '#ca-doc' ).addClass( 'selected' ) } else { $( '#ca-doc-talk' ).addClass( 'selected' ) }   }    function namesToIds( name ) { switch ( name ) { case 'Template:' + title: return '#ca-nstab-template'; case 'Template talk:' + title: return '#ca-talk'; case 'Template:' + title + '/doc': return '#ca-doc'; case 'Template talk:' + title + '/doc': return '#ca-doc-talk'; }   }

$.ajax( {       url: '/api.php?format=json&action=query&titles=Template:' + title + '|Template talk:' + title + '|Template:' + title + '/doc|Template talk:' + title + '/doc&prop=info',        dataType: 'json', async: false,        success: function( response ) {            $.each( response.query.pages, function { if ( this.hasOwnProperty( 'missing' ) ) { $( namesToIds( this.title ) ).addClass( 'new' ); // No way to have two different this values? //     $( namesToIds( this.title ) ).prop( 'href', function {            //          return this.href.append( '?action=edit&redlink=1' );            //      } ); } else { $( namesToIds( this.title ) ).removeClass( 'new' ); // No way to have two different this values? //     $( namesToIds( this.title ) ).prop( 'href', function {            //          return this.href.replace( 'action=edit&redlink=1', '' );            //      } ); }           } );        }    } ); }