Spiderjjr45 (talk | contribs) No edit summary |
Spiderjjr45 (talk | contribs) No edit summary |
||
Line 114: | Line 114: | ||
} |
} |
||
}); |
}); |
||
}); |
|||
/* |
|||
If URL hash component's target has any collapsed ancestor(s), expands them |
|||
(Propogation is stopped by '.disable-hash-expand' on target or on any ancestor) |
|||
*/ |
|||
$(function() { |
|||
// Grab the hash (“#foo”) if any |
|||
var hash = window.location.hash; |
|||
if (!hash) { |
|||
return; |
|||
} |
|||
// Decode “#foo” → “foo”, bail out if it’s invalid |
|||
var id; |
|||
try { |
|||
id = decodeURIComponent(hash.substring(1)); |
|||
} catch (e) { |
|||
return; |
|||
} |
|||
// Find the element by ID |
|||
var target = document.getElementById(id); |
|||
if (!target) { |
|||
return; |
|||
} |
|||
// Kick off expansion on the next tick |
|||
setTimeout(function() { |
|||
expandAncestors(target); |
|||
}, 0); |
|||
function expandAncestors(el) { |
|||
var current = el; |
|||
while (current) { |
|||
// stop if author opted out |
|||
if (current.classList.contains('disable-hash-expand')) { |
|||
break; |
|||
} |
|||
// expand any collapsed MediaWiki collapsibles |
|||
if ( |
|||
current.classList.contains('mw-collapsible') && |
|||
current.classList.contains('mw-collapsed') |
|||
) { |
|||
var btn = current.querySelector('.mw-collapsible-toggle'); |
|||
if (btn) { |
|||
btn.click(); |
|||
} |
|||
} |
|||
current = current.parentElement; |
|||
} |
|||
// after a short delay, scroll the target into view |
|||
setTimeout(function() { |
|||
if (typeof el.scrollIntoView === 'function') { |
|||
el.scrollIntoView({ behavior: 'smooth', block: 'center' }); |
|||
} |
|||
}, 200); |
|||
} |
|||
}); |
}); |
Revision as of 04:00, 24 July 2025
/** *Makes credits closable */ mw.loader.using(['jquery'], function () { $(document).on('click', '#worldbuildercredits .close-btn', function() { $('#worldbuildercredits').hide(); }); }); /** * Adds an AI Artwork button to the image uploader page */ $(function() { if (mw.config.get('wgCanonicalSpecialPageName') === 'Upload') { // checkbox element var checkboxHtml = '<td class="mw-label"><label for="aiCheckbox">AI Artwork?: </label></td>' + '<td class="mw-input"><input type="checkbox" id="aiCheckbox"></td>'; // Insert the checkbox element after the Licensing row $('td.mw-label label[for="wpLicense"]').closest('tr').after('<tr>' + checkboxHtml + '</tr>'); // Update the destination filename when the checkbox value changes $('#aiCheckbox').change(function() { var destFileInput = $('#wpDestFile'); var currentFilename = destFileInput.val(); if ($(this).prop('checked')) { // Prepend "-ai-" if checkbox is checked if (!currentFilename.startsWith("-ai-")) { destFileInput.val("-ai-" + currentFilename); } } else { // Remove "-ai-" prefix if checkbox is unchecked if (currentFilename.startsWith("-ai-")) { destFileInput.val(currentFilename.replace("-ai-", "")); } } }); } }); /** * Adds CSS classes to the body tag based on the categories this page belongs to. Used for CR/Astral page theming. * * @source https://www.mediawiki.org/wiki/Snippets/Style_pages_based_on_categories * @revision 2016-01-18 */ (function($, mw) { var fn = function() { var cats = mw.config.get('wgCategories'), newClasses; if (cats) { newClasses = $.map(cats, function(el) { return 'cat-' + encodeURIComponent(el.replace(/[ .]/g, '_')).replace(/%/g, '_'); }).join(' '); $(document.body).addClass(newClasses); } }; if (document.body) { fn(); } else { $(fn); } })(jQuery, mw); //Deprecated code: Used for autoplaying theme songs //function Bebop(){ // console.log("OK 3 2 1 Let's Jam"); // var x = document.getElementById("myaudio"); // x.play(); //} // //setTimeout(Bebop, 2000); // START HOTCAT /* This imports the latest version of HotCat from Commons. HotCat is a gadget to make changes to categories much easier. Full documentation can be found at http://commons.wikimedia.org/wiki/Help:Gadget-HotCat */ window.hotcat_translations_from_commons = true; mw.loader.load( 'https://commons.wikimedia.org/w/index.php?title=MediaWiki:Gadget-HotCat.js&action=raw&ctype=text/javascript' ); // END HOTCAT //Watermark AI Image //Images can be renamed to have "-ai-" anywhere in their name and automatically get a watermark $(document).ready(function() { // Define the watermark image URL var watermarkURL = 'https://quelmarwiki.com/wiki/images/b/b8/Aiwatermark.png'; // Loop through images on the page $('img').each(function() { var img = $(this); // Reference to the current img tag in the loop var src = img.attr('src'); // Get the src attribute // Check if image name contains '-ai' if (src.includes('-ai')) { // Create a div to contain the image and its watermark var container = $('<div>').css({ 'position': 'relative', 'display': 'inline-block', 'overflow': 'hidden', 'width': img.width(), 'height': img.height, 'pointer-events': 'none' }); //Generate the watermark var watermark = $('<img>').attr('src', watermarkURL).css({ 'position': 'absolute', 'bottom': '0', 'right': '0', 'max-width': '20%', // Adjust size if needed 'max-height': '20%', // Adjust size if needed 'pointer-events': 'none', // Ensure it doesn't interfere with any interactions 'opacity': '0.5' // Adjust opacity if needed }); // Insert the container before the original image, then move the original image and watermark inside the container img.before(container).appendTo(container); container.append(watermark); } }); }); /* If URL hash component's target has any collapsed ancestor(s), expands them (Propogation is stopped by '.disable-hash-expand' on target or on any ancestor) */ $(function() { // Grab the hash (“#foo”) if any var hash = window.location.hash; if (!hash) { return; } // Decode “#foo” → “foo”, bail out if it’s invalid var id; try { id = decodeURIComponent(hash.substring(1)); } catch (e) { return; } // Find the element by ID var target = document.getElementById(id); if (!target) { return; } // Kick off expansion on the next tick setTimeout(function() { expandAncestors(target); }, 0); function expandAncestors(el) { var current = el; while (current) { // stop if author opted out if (current.classList.contains('disable-hash-expand')) { break; } // expand any collapsed MediaWiki collapsibles if ( current.classList.contains('mw-collapsible') && current.classList.contains('mw-collapsed') ) { var btn = current.querySelector('.mw-collapsible-toggle'); if (btn) { btn.click(); } } current = current.parentElement; } // after a short delay, scroll the target into view setTimeout(function() { if (typeof el.scrollIntoView === 'function') { el.scrollIntoView({ behavior: 'smooth', block: 'center' }); } }, 200); } });