Benutzer:TMg/userHighlight.js
aus Wikipedia, der freien Enzyklopädie
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
$( function() {
var list = window.userHighlightList
? window.userHighlightList
: mw.config.get( 'wgFormattedNamespaces' )[2] + ':' + mw.config.get( 'wgUserName' ),
useRaw = list.indexOf( '|' ) === -1;
if ( !/^((https?)?:\/)?\//.test( list ) ) {
list = useRaw
? '/w/index.php?title=' + list + '&action=raw'
: '/w/api.php?action=query&prop=revisions&format=json&formatversion=2&rvprop=content&titles=' + list;
}
$.ajax( list, {
dataType: 'html',
error: function( o, s, e ) {
alert( 'Fehler beim Laden von ' + list + ' (' + e + ').' );
},
success: function( result, s, o ) {
var pages = useRaw
? [ { revisions: [ { content: result } ] } ]
: JSON.parse( result ).query.pages,
regex = /\[\[:?((?:[^:#|"\u200E\]]+:)?)([^|"\u200E\]]+)/g,
css = '',
i,
m;
for ( var page in pages ) {
// Transparente Farbe für moderne Browser, solide für ältere.
var style = window.userHighlightStyle
? window.userHighlightStyle
: 'background: #CCE0FF; background-color: rgba(0, 102, 255, .2); border-radius: 2px;';
var data = pages[page].revisions[0].content.split( /\{\{\s*(?:Farb)?legende?\s*\|\s*([#\w(, .%)]+)/i );
for ( i = 0; i < data.length; i += 2 ) {
var color = data[i - 1];
if ( color ) {
if ( color === 'transparent' ) {
continue;
}
style = 'background: ' + color + '; border-radius: 2px;';
}
var selector = '';
while ( m = regex.exec( data[i] ) ) {
selector += ',a[href="/wiki/'
+ encodeURI( m[1] + m[2].charAt( 0 ).toUpperCase() + m[2].slice( 1 ) )
+ '"]';
}
css += selector.slice( 1 ) + ' { ' + style + ' }';
}
}
// Solide Farbe vom Begriffsklärungs-Check transparent machen, wenn möglich.
mw.util.addCSS( css.replace( /%20/g, '_' ).replace( /\/WP:/gi, '\/Wikipedia:' ) +
'.bkl-link { background-color: rgba(255, 0, 0, .43); }' );
}
} );
} );