Utilisateur:Framawiki/js/ajouterSectionRefs.js
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) ;
Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5./* **********************************************************************************************************************
AjouterSectionRefs
Dérivé de : MediaWiki:Gadget-HotCats.js et MediaWiki:Gadget-BandeauxPortails.js ainsi que de Utilisateur:Prométhée/TitreGras.js (cf historique respectifs pour les auteurs)
Permet d'ajouter une section Notes et références rapidement, en un click sur le lien "Ajout section refs" dans la section "plus" à côté des historiques.
Texte ajouté à l'article :
== Notes et références ==
{{Références}}
{{Projet:JavaScript/Script}}
*********************************************************************************************************************** */
// ====================================================================================================================
// DEBUT DU CODE
// ====================================================================================================================
// <syntaxhighlight lang=javascript><pre><nowiki>
function Section_DoEdit() {
new mw.Api().edit(
mw.config.get('wgPageName'),
function(revision) {
var OldText = revision.content;
if ((OldText.indexOf('{{Références') != -1) || (OldText.indexOf('<references') != -1) || (OldText.indexOf('{{Reflist') != -1)) {
alert('Une balise références existe déjà');
document.editform.style.display = "";
return;
} else if ((OldText.indexOf('== Notes et') != -1) || (OldText.indexOf('==Notes et') != -1) || (OldText.indexOf('== Référence') != -1) || (OldText.indexOf('==Référence') != -1)) {
alert('Une section "Notes et références" semble déjà exister');
document.editform.style.display = "";
return;
}
var NouveauModele = '== Notes et références ==\n{{Références}}\n\n';
var Sommaire = 'Ajout de section Notes et références';
var DebutModele = "";
var SuiteModele = "";
if ((OldText.indexOf('{{DEFAULTSORT:') != -1) || (OldText.indexOf('[[Catégorie:') != -1) || (OldText.indexOf('[[catégorie:') != -1) || (OldText.indexOf('[[Categorie:') != -1) || (OldText.indexOf('[[categorie:') != -1) || (OldText.indexOf('{{Portail') != -1) || (OldText.indexOf('{{portail') != -1) || (OldText.indexOf('{{Palette') != -1) || (OldText.indexOf('{{palette') != -1) || (OldText.indexOf('{{page personnelle') != -1)) {
// Il y a des catégories/portails/palettes
var DebutModele1 = OldText.substring(0, OldText.indexOf('{{Palette'));
var DebutModele2 = OldText.substring(0, OldText.indexOf('{{palette'));
var DebutModele3 = OldText.substring(0, OldText.indexOf('{{Portail'));
var DebutModele4 = OldText.substring(0, OldText.indexOf('{{portail'));
var DebutModele5 = OldText.substring(0, OldText.indexOf('{{DEFAULTSORT:'));
var DebutModele6 = OldText.substring(0, OldText.indexOf('[[Catégorie:'));
var DebutModele7 = OldText.substring(0, OldText.indexOf('[[catégorie:'));
var DebutModele8 = OldText.substring(0, OldText.indexOf('[[Categorie:'));
var DebutModele9 = OldText.substring(0, OldText.indexOf('[[categorie:'));
var DebutModele10 = OldText.substring(0, OldText.indexOf('{{page personnelle'));
// TODO a refactorer
SuiteModele = OldText.split(DebutModele1).join('').split(DebutModele2).join('').split(DebutModele3).join('').split(DebutModele4).join('').split(DebutModele5).join('').split(DebutModele6).join('').split(DebutModele7).join('').split(DebutModele8).join('').split(DebutModele9).join('').split(DebutModele10).join('');
DebutModele = OldText.split(SuiteModele).join('');
} else {
// Il n'y a pas de catégories/portails/palettes
var interWiki = new RegExp('^\\s*\\[\\[([a-z][a-z].?(x?-[^\\]]+)?|simple|tokipona):([^\\]]*)\\]\\]\\s*$');
var blank = new RegExp('^\\s*$');
var lines = OldText.split('\n');
var FoundInterwiki = false;
for (var lineId = lines.length - 1; lineId >= 0; --lineId) {
if (!interWiki.exec(lines[lineId]) && !blank.exec(lines[lineId])) {
DebutModele = lines.slice(0, lineId + 1).join('\n');
SuiteModele = lines.slice(lineId + 1).join('\n');
break;
}
}
DebutModele = DebutModele + '\n\n';
while (SuiteModele.indexOf('\n\n') != -1) {
SuiteModele = SuiteModele.split("\n\n").join("\n");
}
SuiteModele = SuiteModele.replace(/^\n/, "");
}
var TexteFinal = DebutModele + NouveauModele + SuiteModele;
return {
text: TexteFinal,
summary: 'Ajout de section Notes et références',
minor: true,
nocreate: 1,
};
}
)
.then(function() {
console.log('Saved!');
location.reload();
});
}
var PortletLink = mw.util.addPortletLink(
'p-tb',
'https://fr.wikipedia.org',
'Ajout de section Notes et références'
);
$(PortletLink).on('click', function(e) {
Section_DoEdit();
e.preventDefault();
});
//</nowiki></pre>
// ====================================================================================================================
// FIN DU CODE
// ====================================================================================================================
//</syntaxhighlight>