Gebruiker:Strepulah/Appendix.js
Uiterlijk
Opmerking: nadat u de wijzigingen hebt gepubliceerd is het wellicht nodig uw browsercache te legen.
- Firefox / Safari: houd Shift ingedrukt terwijl u op Vernieuwen klikt of druk op Ctrl-F5 of Ctrl-R (⌘-Shift-R op een Mac)
- Google Chrome: druk op Ctrl-Shift-R (⌘-Shift-R op een Mac)
- Internet Explorer / Edge: houd Ctrl ingedrukt terwijl u op Vernieuwen klikt of druk op Ctrl-F5
- Opera: druk op Ctrl-F5.
/**
* Geef appendixsecties onderaan een artikel een achtergrondkleur, ter onderscheiding
* van de reguliere artikeltekst.
*
* Appendixsecties zijn secties die een kopje ala 'Bronnen', 'Noten' of 'Referenties'
* hebben, dat direct gevolgd wordt door een ongeordende lijst of notenlijst.
*/
$(function () {
if (
// Hoofdpagina overslaan.
mw.config.get( 'wgIsMainPage' ) ||
// Niet-artikelen overslaan.
$.inArray( mw.config.get('wgNamespaceNumber'), mw.config.get('wgContentNamespaces') ) === -1 ||
// Appendixsjabloon aanwezig overslaan.
$( '.appendix' ).length > 0
) {
return;
}
// Mogelijke appendixkopjes.
let appendixHeadingSelectors = [
'[id^=Bronnen]',
'[id^=Noten]',
'[id^=Voetnoten]',
'[id^=Referenties]',
'[id^=Verwijzingen]',
'[id^=Bronvermelding]',
'[id^=Verder_lezen]',
'[id^=Naslagwerk]',
'[id^=Externe_link]',
'[id^=Weblink]',
'[id=Appendix]',
'[id=Bron]',
'[id=Bibliografie]',
'[id=Literatuur]',
'[id=Literatuurverwijzingen]',
'[id$=_bronnen]',
'[id$=_noten]',
'[id$=_referenties]',
'[id$=_literatuur]',
];
// Alle h2-kopjes.
let $h2s = $( 'h2' );
// Appendixkopjes.
let $appendixHs = $( appendixHeadingSelectors.join(', '), $h2s ).parent( 'h2' ).filter(function() {
// Filter op kopjes die direct gevolgd worden door een lijst (ul of .reflist).
return $( this ).nextUntil( 'ul, .reflist, h2', ':not(h3, style, .interProject, .interProject-klein)' ).length === 0;
});
if ( $appendixHs.length === 0 ) {
return;
}
$appendixHs = $( $appendixHs.get().reverse() );
$appendixEnd = $appendixHs
.first()
.nextUntil( 'table, div:not(.reflist, .interProject, .interProject-klein)' )
.last()
.next();
// Loop door appendixkopjes, van onder naar boven.
$appendixHs.each(function( i ) {
// Volgende h2-kopje.
h2Next = $h2s.get( $h2s.index( this ) + 1 );
// Volgende appendixkopje.
aHeadingNext = $appendixHs[ i - 1 ];
// Als appendixkopje niet meer aansluit, dan stoppen.
if ( aHeadingNext && aHeadingNext !== h2Next ) {
$appendixHs = $appendixHs.slice(0, i);
return false;
}
});
// Eerste appendixkopje mag niet 'Bibliografie' zijn.
if ( $( ':first-child', $appendixHs.last()[ 0 ] ).prop('id') === 'Bibliografie' ) {
$appendixHs = $appendixHs.slice( 0, -1 );
}
// Wrap appendixsecties in een div.
$appendixHs.last().prev().nextUntil($appendixEnd).wrapAll('<div class="appendix-section" />');
// Laad stylesheet.
mw.loader.load( '/w/index.php?title=User:Strepulah/appendix.css&action=raw&ctype=text/css', 'text/css' );
}());