MediaWiki:Common.js

From Medivia Online Wiki
Revision as of 11:04, 5 July 2025 by Eldrin (talk | contribs)

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.
$(document).ready(function () {
  const maps = document.querySelectorAll('.medivia-map');
  if (!maps.length) return;

  // Load Leaflet CSS
  mw.loader.load('https://unpkg.com/[email protected]/dist/leaflet.css', 'text/css');

  // Load Leaflet JS
  $.getScript('https://unpkg.com/[email protected]/dist/leaflet.js', function () {
    maps.forEach(function (el) {
      const x = parseInt(el.dataset.x || 2048, 10);
      const y = parseInt(el.dataset.y || -2047, 10);
      const z = parseInt(el.dataset.z || 7, 10);
      const zoom = parseInt(el.dataset.zoom || 2, 10);

      const map = L.map(el, {
        crs: L.CRS.Simple,
        zoomSnap: 1,
        minZoom: 0,
        maxZoom: 5
      });

      const bounds = [[0, 0], [4096, 4096]];
      map.setView([x, y], zoom);

      L.tileLayer('https://tafonath.github.io/medivia-mapper/tiles/{z}/{x}/{y}.png', {
        tileSize: 256,
        noWrap: true,
        bounds: bounds,
        maxZoom: 5,
        minZoom: 0,
        attribution: '© Tafonath'
      }).addTo(map);
    });
  });
});