MediaWiki:Gadget-vector-headanchor.js

From Wikivoyage
Jump to navigation Jump to search

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
/*!
 * Vector HeadAnchors gadget, from <https://mediawiki.org/wiki/MediaWiki:Gadget-vector-headanchor.js>
 *
 * Copyright 2013-2020 Timo Tijhof
 * @license MIT <https://opensource.org/licenses/MIT>
 */
// Revision as of 2021-01-29

mw.hook( 'wikipage.content' ).add( function ( $content ) {
  $content.find( 'span.mw-headline' ).each( function ( i, el ) {
    var wrap, anchor,
      id = el.id,
      heading = el.parentNode;

    // If anchor is here already, skip.
    if ( !id || heading.querySelector( '.tpl-vheadanchor') ) {
      return;
    }

    heading.classList.add('tpl-vheadanchor-heading');

    // Insert anchor.
    anchor = document.createElement( 'a' );
    anchor.href = '#' + id;
    anchor.className = 'tpl-vheadanchor';
    anchor.title = 'Link to this section';
    heading.appendChild(anchor);
  } );
} );