MediaWiki:Common.js: Difference between revisions
Jump to navigation
Jump to search
m (codeMirror Javascript fix) Tag: Reverted |
m (fix title set.) |
||
| (4 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
/* ============================================ | |||
THEME TOGGLER | |||
============================================ */ | |||
// | // 1. INSTANT EXECUTION (PREVENTS FLASH OF WRONG THEME) | ||
// This runs the millisecond the script loads, before the body renders. | |||
(function() { | |||
var savedTheme = localStorage.getItem('mb-wiki-theme'); | |||
if (savedTheme === 'break') { | |||
document.documentElement.classList.add('theme-break'); | |||
} | |||
})(); | |||
// 2. DOM READY EXECUTION (UI BINDING) | |||
$(function() { | |||
var isBreak = document.documentElement.classList.contains('theme-break'); | |||
var $btn = $('<button>', { | |||
id: 'theme-toggle', | |||
class: 'floating-theme-toggle', | |||
text: isBreak ? '✦ Switch to Mana' : '✦ Switch to Break', | |||
title: 'Toggle Light/Dark Theme' | |||
}); | |||
$('body').append($btn); | |||
$btn.on('click', function() { | |||
var $html = $('html'); | |||
if ($html.hasClass('theme-break')) { | |||
// Switching to Mana (Light) | |||
$html.removeClass('theme-break'); | |||
localStorage.setItem('mb-wiki-theme', 'mana'); | |||
$(this).text('✦ Switch to Break'); | |||
} else { | |||
// Switching to Break (Dark) | |||
$html.addClass('theme-break'); | |||
localStorage.setItem('mb-wiki-theme', 'break'); | |||
$(this).text('✦ Switch to Mana'); | |||
} | |||
}); | |||
}); | }); | ||
/* ============================================ | |||
/ | TITTLE FIX | ||
============================================ */ | |||
(function() { | (function() { | ||
// Only on main page | // Only on main page | ||
| Line 150: | Line 101: | ||
console.log('Emergency title fix applied'); | console.log('Emergency title fix applied'); | ||
})();/* ============================================ | |||
THEME TOGGLER | |||
============================================ */ | |||
// 1. INSTANT EXECUTION (PREVENTS FLASH OF WRONG THEME) | |||
// This runs the millisecond the script loads, before the body renders. | |||
(function() { | |||
var savedTheme = localStorage.getItem('mb-wiki-theme'); | |||
if (savedTheme === 'break') { | |||
document.documentElement.classList.add('theme-break'); | |||
} | |||
})(); | })(); | ||
// 2. DOM READY EXECUTION (UI BINDING) | |||
$(function() { | |||
var isBreak = document.documentElement.classList.contains('theme-break'); | |||
var $btn = $('<button>', { | |||
id: 'theme-toggle', | |||
class: 'floating-theme-toggle', | |||
text: isBreak ? '✦ Switch to Mana' : '✦ Switch to Break', | |||
title: 'Toggle Light/Dark Theme' | |||
}); | }); | ||
$('body').append($btn); | |||
$ | |||
$btn.on('click', function() { | |||
$(' | var $html = $('html'); | ||
var $ | |||
if ($ | if ($html.hasClass('theme-break')) { | ||
$ | // Switching to Mana (Light) | ||
$html.removeClass('theme-break'); | |||
localStorage.setItem('mb-wiki-theme', 'mana'); | |||
$(this).text('✦ Switch to Break'); | |||
} else { | } else { | ||
$ | // Switching to Break (Dark) | ||
$html.addClass('theme-break'); | |||
localStorage.setItem('mb-wiki-theme', 'break'); | |||
$(this).text('✦ Switch to Mana'); | |||
} | } | ||
}); | }); | ||
} | }); | ||
// | /* ============================================ | ||
TITTLE FIX | |||
if ( | ============================================ */ | ||
(function() { | |||
// Only on main page | |||
if (mw.config.get('wgPageName') !== 'Main_Page' && | |||
!window.location.href.includes('Main_Page')) return; | |||
console.log('=== APPLYING EMERGENCY TITLE FIX ==='); | |||
// 1. IMMEDIATELY set the title | |||
document.title = 'MB Wiki - The Official Wiki'; | |||
// 2. Override the heading | |||
function fixHeading() { | |||
var heading = document.querySelector('#firstHeading, h1.firstHeading, .mw-page-title-main'); | |||
// Create | if (heading) { | ||
heading.textContent = 'MB Wiki - The Official Wiki'; | |||
heading.style.display = 'none'; | |||
heading.style.visibility = 'hidden'; | |||
} else { | |||
// Create heading if it doesn't exist | |||
var newHeading = document.createElement('h1'); | |||
newHeading.id = 'firstHeading'; | |||
newHeading.className = 'firstHeading'; | |||
newHeading.textContent = 'MB Wiki - The Official Wiki'; | |||
var content = document.querySelector('#content, .mw-body'); | |||
if (content) content.prepend(newHeading); | |||
} | |||
} | |||
} | } | ||
// | // 3. Run now and keep running | ||
fixHeading(); | |||
setTimeout(fixHeading, 100); | |||
setTimeout(fixHeading, 500); | |||
setTimeout(fixHeading, 1000); | |||
setTimeout(fixHeading, 2000); | |||
// 4. Monitor and fix any time title changes | |||
var lastTitle = document.title; | |||
setInterval(function() { | |||
if (document.title !== lastTitle && | |||
document.title.includes('Coral Island')) { | |||
console.log('Title changed to wrong value, fixing...'); | |||
document.title = 'MB Wiki - The Official Wiki'; | |||
lastTitle = document.title; | |||
fixHeading(); | |||
} | |||
}, 500); | |||
} | |||
}); | |||
// | // 5. Also fix meta tags | ||
function fixMetaTags() { | |||
var metaTags = document.querySelectorAll('meta[property="og:title"], meta[name="twitter:title"]'); | |||
metaTags.forEach(function(tag) { | |||
tag.setAttribute('content', 'MB Wiki - The Official Wiki'); | |||
}); | |||
} | |||
fixMetaTags(); | |||
console.log('Emergency title fix applied'); | |||
})(); | |||
Latest revision as of 04:08, 19 May 2026
/* ============================================
THEME TOGGLER
============================================ */
// 1. INSTANT EXECUTION (PREVENTS FLASH OF WRONG THEME)
// This runs the millisecond the script loads, before the body renders.
(function() {
var savedTheme = localStorage.getItem('mb-wiki-theme');
if (savedTheme === 'break') {
document.documentElement.classList.add('theme-break');
}
})();
// 2. DOM READY EXECUTION (UI BINDING)
$(function() {
var isBreak = document.documentElement.classList.contains('theme-break');
var $btn = $('<button>', {
id: 'theme-toggle',
class: 'floating-theme-toggle',
text: isBreak ? '✦ Switch to Mana' : '✦ Switch to Break',
title: 'Toggle Light/Dark Theme'
});
$('body').append($btn);
$btn.on('click', function() {
var $html = $('html');
if ($html.hasClass('theme-break')) {
// Switching to Mana (Light)
$html.removeClass('theme-break');
localStorage.setItem('mb-wiki-theme', 'mana');
$(this).text('✦ Switch to Break');
} else {
// Switching to Break (Dark)
$html.addClass('theme-break');
localStorage.setItem('mb-wiki-theme', 'break');
$(this).text('✦ Switch to Mana');
}
});
});
/* ============================================
TITTLE FIX
============================================ */
(function() {
// Only on main page
if (mw.config.get('wgPageName') !== 'Main_Page' &&
!window.location.href.includes('Main_Page')) return;
console.log('=== APPLYING EMERGENCY TITLE FIX ===');
// 1. IMMEDIATELY set the title
document.title = 'MB Wiki - The Official Wiki';
// 2. Override the heading
function fixHeading() {
var heading = document.querySelector('#firstHeading, h1.firstHeading, .mw-page-title-main');
if (heading) {
heading.textContent = 'MB Wiki - The Official Wiki';
heading.style.display = 'none';
heading.style.visibility = 'hidden';
} else {
// Create heading if it doesn't exist
var newHeading = document.createElement('h1');
newHeading.id = 'firstHeading';
newHeading.className = 'firstHeading';
newHeading.textContent = 'MB Wiki - The Official Wiki';
var content = document.querySelector('#content, .mw-body');
if (content) content.prepend(newHeading);
}
}
// 3. Run now and keep running
fixHeading();
setTimeout(fixHeading, 100);
setTimeout(fixHeading, 500);
setTimeout(fixHeading, 1000);
setTimeout(fixHeading, 2000);
// 4. Monitor and fix any time title changes
var lastTitle = document.title;
setInterval(function() {
if (document.title !== lastTitle &&
document.title.includes('Coral Island')) {
console.log('Title changed to wrong value, fixing...');
document.title = 'MB Wiki - The Official Wiki';
lastTitle = document.title;
fixHeading();
}
}, 500);
// 5. Also fix meta tags
function fixMetaTags() {
var metaTags = document.querySelectorAll('meta[property="og:title"], meta[name="twitter:title"]');
metaTags.forEach(function(tag) {
tag.setAttribute('content', 'MB Wiki - The Official Wiki');
});
}
fixMetaTags();
console.log('Emergency title fix applied');
})();/* ============================================
THEME TOGGLER
============================================ */
// 1. INSTANT EXECUTION (PREVENTS FLASH OF WRONG THEME)
// This runs the millisecond the script loads, before the body renders.
(function() {
var savedTheme = localStorage.getItem('mb-wiki-theme');
if (savedTheme === 'break') {
document.documentElement.classList.add('theme-break');
}
})();
// 2. DOM READY EXECUTION (UI BINDING)
$(function() {
var isBreak = document.documentElement.classList.contains('theme-break');
var $btn = $('<button>', {
id: 'theme-toggle',
class: 'floating-theme-toggle',
text: isBreak ? '✦ Switch to Mana' : '✦ Switch to Break',
title: 'Toggle Light/Dark Theme'
});
$('body').append($btn);
$btn.on('click', function() {
var $html = $('html');
if ($html.hasClass('theme-break')) {
// Switching to Mana (Light)
$html.removeClass('theme-break');
localStorage.setItem('mb-wiki-theme', 'mana');
$(this).text('✦ Switch to Break');
} else {
// Switching to Break (Dark)
$html.addClass('theme-break');
localStorage.setItem('mb-wiki-theme', 'break');
$(this).text('✦ Switch to Mana');
}
});
});
/* ============================================
TITTLE FIX
============================================ */
(function() {
// Only on main page
if (mw.config.get('wgPageName') !== 'Main_Page' &&
!window.location.href.includes('Main_Page')) return;
console.log('=== APPLYING EMERGENCY TITLE FIX ===');
// 1. IMMEDIATELY set the title
document.title = 'MB Wiki - The Official Wiki';
// 2. Override the heading
function fixHeading() {
var heading = document.querySelector('#firstHeading, h1.firstHeading, .mw-page-title-main');
if (heading) {
heading.textContent = 'MB Wiki - The Official Wiki';
heading.style.display = 'none';
heading.style.visibility = 'hidden';
} else {
// Create heading if it doesn't exist
var newHeading = document.createElement('h1');
newHeading.id = 'firstHeading';
newHeading.className = 'firstHeading';
newHeading.textContent = 'MB Wiki - The Official Wiki';
var content = document.querySelector('#content, .mw-body');
if (content) content.prepend(newHeading);
}
}
// 3. Run now and keep running
fixHeading();
setTimeout(fixHeading, 100);
setTimeout(fixHeading, 500);
setTimeout(fixHeading, 1000);
setTimeout(fixHeading, 2000);
// 4. Monitor and fix any time title changes
var lastTitle = document.title;
setInterval(function() {
if (document.title !== lastTitle &&
document.title.includes('Coral Island')) {
console.log('Title changed to wrong value, fixing...');
document.title = 'MB Wiki - The Official Wiki';
lastTitle = document.title;
fixHeading();
}
}, 500);
// 5. Also fix meta tags
function fixMetaTags() {
var metaTags = document.querySelectorAll('meta[property="og:title"], meta[name="twitter:title"]');
metaTags.forEach(function(tag) {
tag.setAttribute('content', 'MB Wiki - The Official Wiki');
});
}
fixMetaTags();
console.log('Emergency title fix applied');
})();