User:Technical 13/Scripts/Gadget-veditLinks.js

// ( function( mw, $ ) { $( function { var tabMessages = mw.config.get( 'wgVisualEditorConfig' ).tabMessages; new mw.Api.get( {     action: 'query',      meta: 'allmessages',      format: 'json',      ammessages: 'editlink',      amlang: mw.config.get( 'pageLanguageCode' ),      rawcontinue: ''    } ).done ( function ( editMsg ) {      var edit = editMsg.query.allmessages[0]['*'];      var editBeta = edit + ' ' + mw.msg( tabMessages[ 'editsectionappendix' ] );      var editSource = mw.msg( tabMessages[ 'editsectionsource' ] );      var namespaceNames = [], visualEditorNamespaces = [];      $.each( mw.config.get( 'wgNamespaceIds' ), function ( i, v ) { namespaceNames[namespaceNames.length] = i;       if ( $.inArray( v, wgVisualEditorConfig.namespaces ) !== -1 ) { visualEditorNamespaces[visualEditorNamespaces.length] = i;       } } );     if ( mw.user.options.get( 'visualeditor-enable' ) == '1' ) {        $( 'span.lx' ).each( function  { var thisLinkNS = , thisLink = , thisLinkTitle = '', thisLinkClass = , thisLinkVE = ; if ( $( this ).find( 'a:first' ).html !== undefined ) { thisLinkNS = $( this ).find( 'a:first' ).attr( 'href' ) .match( /\/w(iki\/|\/index.php\?title=)([\w]*)(:.*)?/i ); } else if ( $( this ).prev( 'a' ).html !== undefined ) { thisLinkNS = $( this ).prev( 'a' ).attr( 'href' ) .match( /\/w(iki\/|\/index.php\?title=)([\w]*)(:.*)?/i ); }         thisLinkNS = thisLinkNS[2].toLowerCase; if ( $.inArray( thisLinkNS, namespaceNames ) === -1 ) { thisLinkNS = ''; }         thisLink = $( this ).find( 'a:contains(' + edit + ')' ); if ( $.inArray( thisLinkNS, visualEditorNamespaces ) !== -1 ) { if ( thisLink.attr( 'title' ) !== undefined && thisLink.attr( 'title' ) !== '' ) { thisLinkTitle = thisLink.attr( 'title' ); }           if ( thisLink.attr( 'class' ) !== undefined && thisLink.attr( 'class' ) !== '' ) { thisLinkClass = thisLink.attr( 'class' ); }           if ( thisLink.attr( 'href' ) !== undefined && thisLink.attr( 'href' ) !== '' ) { thisLinkVE = thisLink.attr( 'href' ).replace( '&action=edit',               '&veaction=edit' ); thisLink.after( ' | ' + editBeta +                '' ); } else { console.warn( 'No href found for:\n\t%s', $( this ).parent.html ); }         }          thisLink.text( editSource ); } );     }    } );  } ); } ( mediaWiki, jQuery ) ); //