MediaWiki:Gadget-appendix.js
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 ||
// Minerva-skin overslaan.
mw.config.get('skin') === 'minerva'
) {
return;
}
// Mogelijke appendixkopjes.
var appendixHeadingSelectors = [
'[id^=Bronnen]',
'[id^=Noten]',
'[id^=Voetnoten]',
'[id^=Referentie]',
'[id^=Verwijzing]',
'[id^=Bronvermelding]',
'[id^=Verder_lezen]',
'[id^=Literatuur]',
'[id^=Geraadpleegde_literatuur]',
'[id^=Naslagwerk]',
'[id^=Externe_link]',
'[id^=Weblink]',
'[id=Appendix]',
'[id=Bron]',
'[id=Voetnoot]',
'[id=Bibliografie]',
'[id$=_bronnen]',
'[id$=_noten]',
'[id$=_referenties]',
'[id$=_literatuur]',
];
// Alle h2-kopjes.
var $h2s = $( 'h2' );
// Appendixkopjes.
var $appendixHs = $( appendixHeadingSelectors.join(', '), $h2s ).parent( 'h2' ).filter(function() {
// Filter op kopjes die direct gevolgd worden door een lijst (ul, .reflist of .references).
return $( this ).nextUntil(
'h2, ul, .reflist, .references',
':not(h3, style, .interProject, .interProject-klein)'
).length === 0;
});
if ( $appendixHs.length === 0 ) {
return;
}
$appendixHs = $( $appendixHs.get().reverse() );
$appendixEnd = $appendixHs
.first()
.nextUntil( 'h2, 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 id="appendix" class="toccolours" />');
}());