Aller au contenu

MediaWiki:Gadget-ReferencePopups.js

De Wiki Undertale FR

Note : après avoir publié vos modifications, il se peut que vous deviez forcer le rechargement complet du cache de votre navigateur pour voir les changements.

  • Firefox / Safari : maintenez la touche Maj (Shift) en cliquant sur le bouton Actualiser ou appuyez sur Ctrl + F5 ou Ctrl + R (⌘ + R sur un Mac).
  • Google Chrome : appuyez sur Ctrl + Maj + R (⌘ + Shift + R sur un Mac).
  •  Edge : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl + F5.
const types = JSON.parse(mw.message('cite-tool-definition.json').plain())
	.map(type => type.name);

function inferNewType(referenceId) {
	const parent = document.getElementById(referenceId);
	if (!parent) {
		return;
	}
	const cite = parent.querySelector('cite[class]');
	if (cite && types.includes(cite.className)) {
		return cite.className;
	}
}

for (const type of types) {
	const msg = mw.messages.get(`visualeditor-cite-tool-name-${type}`);
	mw.messages.set(`cite-reference-previews-${type}`, msg);
}

async function updateTypes() {
	await mw.loader.using('ext.cite.referencePreviews');
	const {gateway} = require('ext.cite.referencePreviews');
	const {fetchPreviewForTitle} = gateway;
	gateway.fetchPreviewForTitle = async (title, ...args) => {
		const model = await fetchPreviewForTitle(title, ...args);
		const id = title.getFragment().replace(/ /g, '_');
		const type = inferNewType(id);
		if (type) {
			model.referenceType = type;
		}
		return model;
	}
}

if (!('ontouchstart' in document.documentElement)) {
	updateTypes();
}