MediaWiki:Common.js
Appearance
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.
/**
* Add statistics banner to account creation page
*/
(function() {
// Only run on Special:CreateAccount page
if (mw.config.get('wgCanonicalSpecialPageName') !== 'CreateAccount') {
return;
}
// Get site statistics via API
var api = new mw.Api();
api.get({
action: 'query',
meta: 'siteinfo',
siprop: 'statistics',
format: 'json'
}).done(function(data) {
var stats = data.query.statistics;
// Create statistics banner
var banner = $('<div>').addClass('createaccount-statistics').html(
'<div class="createaccount-statistics-title">CEO.wiki is made by people like you.</div>' +
'<div class="createaccount-statistics-grid">' +
'<div class="createaccount-stat-item">' +
'<div class="createaccount-stat-number">' + stats.edits.toLocaleString() + '</div>' +
'<div class="createaccount-stat-label">Edits</div>' +
'</div>' +
'<div class="createaccount-stat-item">' +
'<div class="createaccount-stat-number">' + stats.pages.toLocaleString() + '</div>' +
'<div class="createaccount-stat-label">Pages</div>' +
'</div>' +
'<div class="createaccount-stat-item">' +
'<div class="createaccount-stat-number">' + stats.activeusers.toLocaleString() + '</div>' +
'<div class="createaccount-stat-label">Recent Contributors</div>' +
'</div>' +
'</div>'
);
// Insert banner before the form
$('#userloginForm').before(banner);
});
})();
/**
* 3D Rotating Tag Cloud using TagCanvas library
* Loads from CDN and initializes on Main Page
*/
(function() {
// Only run on Main Page
if (mw.config.get('wgPageName') !== 'Main_Page') {
return;
}
$(document).ready(function() {
// Check if canvas element exists
if (!document.getElementById('tagcanvas')) {
return;
}
// Load TagCanvas library from CDN
var script = document.createElement('script');
script.src = 'https://cdnjs.cloudflare.com/ajax/libs/jquery.tagcanvas/2.11/jquery.tagcanvas.min.js';
script.onload = function() {
// Initialize TagCanvas after library loads
try {
$('#tagcanvas').tagcanvas({
textColour: '#ffffff',
textFont: 'sans-serif, Arial, Helvetica',
outlineColour: 'transparent',
outlineThickness: 0,
maxSpeed: 0.03,
freezeActive: true,
shuffleTags: true,
shape: 'sphere',
zoom: 1.0,
noSelect: true,
textHeight: 20,
wheelZoom: false,
reverse: true,
depth: 0.8,
initial: [0.1, -0.1],
fadeIn: 1000,
clickToFront: 600,
shadow: '#000000',
shadowBlur: 3,
shadowOffset: [0, 2],
weight: true,
weightMode: 'size',
weightFrom: 'font-size',
weightSize: 1.5,
weightGradient: {
0: '#ffffff',
0.5: '#ffffff',
1: '#ffffff'
}
}, 'tagcanvas-wrapper');
} catch(e) {
// If TagCanvas fails, hide canvas and show fallback
$('#tagcanvas-wrapper').html('<div style="color: white; padding: 40px;">Trending: Satya Nadella • Tim Cook • Elon Musk • Jensen Huang • Mark Zuckerberg • Sundar Pichai • Andy Jassy • Lisa Su • Mary Barra • Jamie Dimon</div>');
}
};
script.onerror = function() {
// If CDN fails, show fallback
$('#tagcanvas-wrapper').html('<div style="color: white; padding: 40px;">Trending: Satya Nadella • Tim Cook • Elon Musk • Jensen Huang • Mark Zuckerberg • Sundar Pichai • Andy Jassy • Lisa Su • Mary Barra • Jamie Dimon</div>');
};
document.head.appendChild(script);
});
})();