Utilisateur:Alexisdepris/Mes scripts/NoDetectSource.js
Apparence
Note : après avoir enregistré la page, vous devrez forcer le rechargement complet du cache de votre navigateur pour voir les changements.
Mozilla / Firefox / Konqueror / Safari : maintenez la touche Majuscule (Shift) en cliquant sur le bouton Actualiser (Reload) ou pressez Maj-Ctrl-R (Cmd-R sur Apple Mac) ;
Firefox (sur GNU/Linux) / Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5.// NoSource.js
(function ($) {
function addRedBorderToLink(link) {
$(link).css({
'border': '3px solid red',
'padding': '2px 5px',
'border-radius': '3px'
});
}
function processPageContent(data, link) {
if (data && data.parse && data.parse.wikitext) {
const content = data.parse.wikitext['*'];
if (isSansSource(content)) {
addRedBorderToLink(link);
}
}
}
function getPageContent(title, link) {
const apiEndpoint = mw.util.wikiScript('api');
const requestData = {
action: "parse",
page: title,
format: "json",
prop: "wikitext"
};
$.getJSON(apiEndpoint, requestData)
.done(function (data) {
processPageContent(data, link);
})
.fail(function (error) {
console.error(`Error fetching page content for ${title}:`, error);
});
}
function isSansSource(content) {
return /\{\{Sans\s+source/i.test(content);
}
function addBorders() {
const $links = $("#mw-content-text a[href^='/wiki/']");
$links.each(function () {
const title = $(this).attr('title');
if (title) {
getPageContent(title, this);
}
});
}
$(document).ready(function () {
const conditionsMet = (
mw.config.get("wgCanonicalNamespace") === "" &&
mw.config.get('wgAction') === 'view' &&
!mw.config.get('wgDiffOldId') &&
mw.config.get('wgArticleId') &&
!$('html').hasClass('ve-active')
);
if (conditionsMet) {
addBorders();
}
});
})(jQuery);