MediaWiki:Gadget-ReferencePopups.js
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();
}