Utilisateur:M-le-mot-dit/common.js

La bibliothèque libre.

Note : après avoir enregistré 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 pressez Ctrl-F5 ou Ctrl-R (⌘-R sur un Mac) ;
  • Google Chrome : Appuyez sur Ctrl-Maj-R (⌘-Shift-R sur un Mac) ;
  • Internet Explorer : Maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5 ;
  • Opera : Allez dans Menu → Settings (Opera → Préférences sur un Mac) et ensuite à Confidentialité & sécurité → Effacer les données d'exploration → Images et fichiers en cache.
/**
 * TemplateScript adds configurable templates and scripts to the sidebar, and adds an example regex editor.
 * @see https://meta.wikimedia.org/wiki/TemplateScript
 * @update-token [[File:Pathoschild/templatescript.js]]
 */
mw.loader.load('//tools-static.wmflabs.org/meta/scripts/i18n/fr.js');
mw.loader.load('//tools-static.wmflabs.org/meta/scripts/pathoschild.templatescript.js');

/**************
Typo personnelle
***************/
function mlemotdit_typo_add() {
  $.typo.add(function(str) {
    str = str.replace(/\( /g, "(");             // corr. pour les parenthèses
    str = str.replace(/ \)/g, ")");
        return str;
  });
}

/**************
Correction Typo
***************/
// importScript('MediaWiki:Gadget-Typo.js');

$.when(
	mw.loader.using( [ 'ext.gadget.Typo' ] ),
	$.ready
).then(
	mlemotdit_typo_add
);

/*****************
Raccourcis clavier
******************/
importScript('User:ElioPrrl/Raccourcis.js');

/**************
Barre latérale
***************/

$.ajax('//tools-static.wmflabs.org/meta/scripts/pathoschild.templatescript.js', { dataType:'script', cache:true }).then(function() {
	pathoschild.TemplateScript.add([
		
			// Espaces et césures
			{
			name: 'Espaces',
			position: 'cursor',
			script: function(editor) {
				editor.replace(/ +$/mg, '')
				.replace(/ +<br *\/?>/g, '<br />')
				.replace(/<ref> +/g, '<ref>')
				.replace(/ +<\/ref>/g, '</ref>')
				.replace(/[-¬] *(\n)([^ \|\n]+)[ \n]/g, '$2$1')
				.replace(/\( /g, '(')
				.replace(/ \)/g, ')')
				.replace(/ {2,}/g, ' ');
			}
			},

			// Tirets longs
//			{
//			name: 'Tirets',
//			position: 'cursor',
//			script: function(editor) {
//				editor.replace(/ *-- */g, ' — ')
//				.replace(/ *_ */g, ' — ');
//			}
//			},

			// Accents aigus
//			{
//			name: 'Accents',
//			position: 'cursor',
//			script: function(editor) {
//				editor.replace(/\*a/g, 'á')
//				.replace(/\*i/g, 'í')
//				.replace(/\*o/g, 'ó')
//				.replace(/\*u/g, 'ú')
//				.replace(/\*A/g, 'Á')
//				.replace(/\*E/g, 'É')
//				.replace(/\*I/g, 'ĺ')
//				.replace(/\*O/g, 'Ó')
//				.replace(/\*U/g, 'Ú')
//				.replace(/\*C/g, 'Ç');
//			}
//			},

			// Caractères spéciaux
			{
			name: 'Char. spéciaux',
			position: 'cursor',
			script: function(editor) {
				editor.replace(/ *-- */g, ' — ')
				.replace(/ *_ */g, ' — ')
				.replace(/\*-/g, '−')
				.replace(/\*x/g, '×')
				.replace(/\*\//g, '÷')
				.replace(/\*'/g, '′')
				.replace(/\*"/g, '″')
				.replace(/\/\//g, '⁄')
				.replace(/\*\./g, '·');
			}
			},

			// Civilité : M. Mme, etc.
			{
			name: 'Civilité',
			position: 'cursor',
			script: function(editor) {
				editor.replace(/(Roi|Reine) ([\wŒÀ-Üœà-ÿ]+) (\w+)/g, '{{$1|$2|$3}}')
				.replace(/(M\.|Mlle|Mme|MM\.|Dr|P\.) ([\wŒÀ-Üœà-ÿ]+)/g, '{{$1|$2}}')
				.replace(/{\|(M..) /g, '{$1|')
				.replace(/{\|(Mlle) /g, '{$1|')
				.replace(/S\. A\. R\. /g, '{{SAR}}');
			}
			},

			// Exposants
			{
			name: 'Exposants',
			position: 'cursor',
			script: function(editor) {
				editor.replace(/(^| )(1(er|re|ère)|I(er|re))/gm, '$1{{$2}}')
				.replace(/(^| )2(de*)/gm, '$1{{2$2}}')
				.replace(/([^{1-9])([2-9])(e(?!\w)|{{e}}) ([\wŒÀ-Üœà-ÿ’]+)/g, '$1{{$2e|$4}}')
				.replace(/([^{1-9])([2-9])(e(?!\w)|{{e}})/g, '$1{{$2e}}')
				.replace(/(\d)([2-9])e(?!\w)/g, '$1$2{{e}}')
				.replace(/([^-])(\d)[o°] ([\wŒÀ-Üœà-ÿ’]+)/g, '$1{{$2o|$3}}');
			}
			},

			// References bibliographiques
			{
			name: 'Réf biblio',
			position: 'cursor',
			script: function(editor) {
				editor.replace(/(^| )i(bid|d)\./gm, '$1{{I$2.}}')
				.replace(/([^{])I(bid|d)\./g, '$1{{I$2.|cap}}')
				.replace(/([^{])ib\./g, '$1{{Ibid.|abr}}')
				.replace(/in-(4°|8°|12°|12)/g, '{{in-$1}}')
				.replace(/(n°|n°s|§{1,2}) ([CILVXcilvx]+|\d*)/g, '{{$1|$2}}')
				.replace(/N° /g, '{{No}}{{Lié}}')
				.replace(/([^\w])(Art|Ch|Chap|Fig|Lig|Liv|Pag|Pl|Sect|T|Tom|Vol)\. ([CILVXcilvx]+|\d+)/g, '$1{{$2.|$3|cap}}')
				.replace(/([^\w])(art|ch|chap|fig|lig|liv|pag|pl|sect|t|tom|vol)\. ([CILVXcilvx]+|\d+)/g, '$1{{$2.|$3}}')
				.replace(/(Lib|Cap)\. /g, '{{$1.|cap}}')
				.replace(/([^\w])(lib|cap)\. /g, '$1{{$2.}}')
				.replace(/([^\w])(p{1,2})\. ([CILVXcilvx]+|\d+)/g, '$1{{$2g|$3}}');
			}
			},

			// S courts -> S longs
			{
			name: 'S longs',
			position: 'cursor',
			script: function(editor) {
				editor.replace(/ss([\wœà-ÿ])/g, 'ſſ$1')
				.replace(/s([ac-egi-zœà-ÿ])/g, 'ſ$1');
			}
			},

			// Guillemets
			// {
			// name: 'Guillemets',
			// position: 'cursor',
			// script: function(editor) {
			// 	editor.replace(/<< */g, '« ')
			// 	.replace(/ *>>/g, ' »');
			// }
			// },

			// Espace insécables
			{
			name: 'Lié',
			position: 'cursor',
			script: function(editor) {
				editor.replaceSelection(function(selected) {
				if (selected.length > 1) {
					return '{{Lié|' + selected + '}}';
				} else {
					return '{{Lié}}';
				}
				});
			}
			},

			// Correction
			{
			name: 'Corr',
			position: 'cursor',
			script: function(editor) {
				editor.replaceSelection(function(selected) {
				return '{{Corr|' + selected + '|' + selected + '}}';});
			}
			},

			// Majuscule
			{
			name: 'Majuscule',
			position: 'cursor',
			script: function(editor) {
				editor.replaceSelection(function(selected) {
					return selected.toUpperCase().charAt(0) + selected.toLowerCase().substring(1) ;
				});
			}
			},

			// Souligner
			{
			name: 'Souligné',
			position: 'cursor',
			script: function(editor) {
				editor.replaceSelection(function(selected) {
				return '{{Souligner|' + selected + '}}';});
			}
			},

			// Justifié à droite
			{
			name: 'Droite',
			position: 'cursor',
			script: function(editor) {
				editor.replaceSelection(function(selected) {
				return '{{Droite|' + selected + '|2}}';});
			}
			},

			// Citation
			{
			name: 'Citation',
			position: 'cursor',
			script: function(editor) {
				editor.replaceSelection(function(selected) {
				return '{{Citation|' + selected + '|gauche}}';});
			}
			},

			// Taille de paragraphe
			{
			name: 'Taille page',
			position: 'cursor',
			script: function(editor) {
				editor.replace(/^/, '{{P début de page|92}}')
				.replace(/$/, '{{P fin de page}}');
			}
			},
			{
			name: 'Taille parag.',
			position: 'cursor',
			script: function(editor) {
				editor.replaceSelection(function(selected) {
				return '{{P début|92}}\n' + selected + '\n{{P fin}}';});
			}
			},

			// Poème sans alinéa
			{
			name: 'Poème ss/alinéa',
			position: 'cursor',
			script: function(editor) {
				editor.replaceSelection(function(selected) {
				return '<poem style="margin-left:0;">' + selected + '</poem>';});
			}
			},

			// Séparateur
			{
			name: 'Séparateur',
			position: 'cursor',
			script: function(editor) {
				editor.replaceSelection(function(selected) {
				return selected + '\n{{Séparateur|5|m=1em}}\n';});
			}
			},

			// Paragraphes (dans les notes)
			{
			name: 'Balise p',
			position: 'cursor',
			script: function(editor) {
				editor.replaceSelection(function(selected) {
				return '<p  style="text-indent:1em;">' + selected + '</p>';});
			}
			},

			// Auteur
			{
			name: 'Auteur',
			position: 'cursor',
			script: function(editor) {
				editor.replaceSelection(function(selected) {
				selected = selected.trim();
				return '[[Auteur:' + selected + '|' + selected + ']]';});
			}
			},

			// Page centrée
			{
			name: 'Bloc centré',
			position: 'cursor',
			script: function(editor) {
				editor.forField('#wpHeaderTextbox')
				.append('\n{{Bloc centré/o}}');
				editor.forField('#wpFooterTextbox')
				.prepend('{{Bloc centré/f}}\n');
			}
			},

			// Références dans le pied de page
			{
			name: 'Pied — Refs',
			position: 'cursor',
			script: function(editor) {
				editor.forField('#wpFooterTextbox')
				.append('\n<references />');
			}
			},

			// Centrage dans le pied de page
			{
			name: 'Pied — Centré',
			position: 'cursor',
			script: function(editor) {
				editor.forField('#wpFooterTextbox')
				.append('\n{{Centré|}}');
			}
			},

			// Join paragraph
			{
			name: 'Joindre',
			position: 'cursor',
			script: function(editor) {
			 	editor.replaceSelection(function(selected) {
			 		selected = selected.replace(/ *(\r\n|\n|\r)/gm, ' ');
			 		return selected;
			 	});
			}
			},

			// Nowiki en début de page
			{
			name: 'Nowiki',
			position: 'cursor',
			script: function(editor) {
				editor.replace(/^/m, '<nowiki />\n\n');
			}
			},

			// Page finissant par une césure
			{
			name: 'Césure',
			position: 'cursor',
			script: function(editor) {
				editor.replace(/-[ \n]*$/, '<includeonly>-</includeonly>-')
				.replace(/(\w+)-§ *$/m, '{{Tiret|$1|}}');
			}
			},
			
			// Paragraphes en une ligne
			{
			name: 'Parag.',
			position: 'cursor',
			script: function(editor) {
				editor.replace(/([^>}\n]) *\n([^<{\|\n])/g, '$1 $2')
				.replace(/ {2,}/g, ' ')
				.replace(/[ \n]*$/, '');
			}
			},

	]);
});
// </nowiki>