MediaWiki:Common.js
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)
- Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
/* OPTIONAL. Append to MediaWiki:Common.js only if you want inline highlight-and-annotate
on long-form pages (white paper, book chapters). Loads the Hypothesis client on pages
tagged with the "Annotate" category. Readers need a free Hypothesis account to annotate;
anyone can read annotations. Remove this block to turn it off. */
( function () {
if ( mw.config.get( 'wgCategories' ).indexOf( 'Annotate' ) === -1 ) { return; }
if ( mw.config.get( 'wgAction' ) !== 'view' ) { return; }
var s = document.createElement( 'script' );
s.src = 'https://hypothes.is/embed.js';
s.async = true;
document.head.appendChild( s );
}() );
/* ---- Pin the sidebar (Main menu) open by default for every visitor -----------------
Vector 2022 only shows Main menu as a permanent left column once a user pins it
(client preference, saved per-account/browser). This triggers that same built-in
pin action automatically on every page load, so it defaults to open for everyone
instead of only whoever has pinned it themselves. Skipped on narrow/mobile
viewports, where a permanently-open sidebar would crowd out the page content. */
( function () {
function pinMainMenu( attemptsLeft ) {
if ( window.innerWidth < 1000 ) { return; }
if ( document.documentElement.classList.contains( 'vector-feature-main-menu-pinned-enabled' ) ) { return; }
var btn = document.querySelector( '#vector-main-menu-dropdown .vector-pinnable-header-pin-button' );
/* The button exists in the DOM from initial render, but Vector wires up its click
handler slightly later -- clicking too early is a silent no-op. So keep retrying
(re-checking the pinned class above) until it actually takes, not just until the
element exists. */
if ( btn ) { btn.click(); }
if ( attemptsLeft > 0 ) {
setTimeout( function () { pinMainMenu( attemptsLeft - 1 ); }, 250 );
}
}
function start() { pinMainMenu( 40 ); }
if ( document.readyState === 'loading' ) {
document.addEventListener( 'DOMContentLoaded', start );
} else {
start();
}
}() );