Utilisateur : Ltrlg/JS

Cet utilisateur est un balayeur.
Je participe aux rencontres de la cabale de la quenelle !
Cet utilisateur est un Grèbe roussâtre.
Une page de Wikipédia, l'encyclopédie libre.

Ce vendredi 19 avril 2024, 17 380 utilisateurs actifs et de nombreux anonymes maintiennent 2 606 349 articles (statistiques).


Je suis actif

J’indique par la mention « JS » en résumé de modification que j’ai utilisé un script écrit en JavaScript pour effectuer tout ou partie de la modification. Pour accélérer les tâches de maintenance auxquelles je participe (amélioration de l’accessibilité des contenus, correction de la wikisyntaxe, retrait de styles particuliers au profit de classes globales, etc.), dont les actions sont souvent similaires sur nombre d’articles, j’écris en effet régulièrement des petits scripts à base d’expressions régulières exécutés via mon common.js (le voir) ou directement dans la console JavaScript de mon navigateur.

C’est un outil très efficace qui peut malheureusement poser de ce fait des problèmes assez rapidement si j’ai mal conçu mon script ; si vous trouvez des erreurs que j’aurais ratées au cour de l’exécution (toujours manuelle) d’un script, signalez-les moi au plus vite, afin que je ne les multiplie pas.

Exemples[modifier | modifier le code]

Console JavaScript[modifier | modifier le code]

  • Pour retirer les lignes entre les items de liste (MediaWiki génère alors plusieurs listes séparées) (accessibilité, correction syntaxique) :
    $( '#wpTextbox1' ).val( $( '#wpTextbox1' ).val()
    	.replace( /\s{0,}\n+(\*|:|;|#)/g, '\n$1' )
    );
    
  • Pour les tableaux illisibles :
    $( '#wpTextbox1' ).val( $( '#wpTextbox1' ).val()
    	.replace( / ?\|\| ?/g, '\n| ' )
    );
    
  • Pour corriger les entêtes de colonne (accessibilité) :
    $( '#wpTextbox1' ).val( $( '#wpTextbox1' ).val()
    	.replace( /\n! ?| ?!! ?/gi, '\n! scope="col" | ' )
    );
    
  • Pour corriger les entêtes de ligne (accessibilité) :
    $( '#wpTextbox1' ).val( $( '#wpTextbox1' ).val()
    	.replace( /(\|-+\s*\n)+/g, '|-\n' )
    	.replace( /\|-+\s*\n\|\}/g, '|}' )
    	.replace( /\|-+ {0,}\n\| ?/g, '|-\n! scope="row" | ' )
    );
    
  • Pour supprimer {{ligne grise}} et les bgcolor (afin d’utiliser à la place la classe alternance, plus adaptée) (simplification) :
    $( '#wpTextbox1' ).val( $( '#wpTextbox1' ).val()
    	.replace( / ?\{\{\s*[Ll]igne grise\s*\}\} ?/g, '' )
    	.replace( /bgcolor="?#?([a-fA-F0-9]{3}){1,2}"?/gi, '' )
    );
    
  • Pour les noms en majuscules :
    $( '#wpTextbox1' ).val( $( '#wpTextbox1' ).val()
    	.replace(
    		/[A-ZÀÉÈÇ]([A-ZÀÉÈÇ]+)/g,
    		function ( mot, aConvertir ) {
    			return mot[0] + aConvertir.toLocaleLowerCase();
    		}
    	)
    );
    
  • Pour utiliser {{formatnum:…}} :
    $( '#wpTextbox1' ).val( $( '#wpTextbox1' ).val()
    	.replace( /([0-9]+)(?: | )([0-9]{3})(?: | )([0-9]{3})(?: | )([0-9]{3})/g, '{{formatnum:$1$2$3$4}}' )
    	.replace( /([0-9]+)(?: | )([0-9]{3})(?: | )([0-9]{3})/g, '{{formatnum:$1$2$3}}' )
    	.replace( /([0-9]+)(?: | )([0-9]{3})/g, '{{formatnum:$1$2}}' )
    );
    

common.js[modifier | modifier le code]

  • La fonction Ltrlg_clubtable suivante me permettait d’effectuer rapidement des correction des tableaux de liste des clubs auxquels un sportif a été rattaché (accessibilité, simplification)
    function Ltrlg_clubtable( $ ) {
    	$( '#wpTextbox1' ).val( $( '#wpTextbox1' ).val()
    		.replace( /\n\{\|([^\n]*)/g, '\n{| class="wikitable alternance"' )
    		.replace( /\n\|-([^\n]*)/g, '\n|-' )
    		.replace( /\n\|[^\n]*'''(Club|Pays|De|À)'''/g, '\n! scope=col | $1' )
    		.replace( /(\|-+\s*\n)+/g, '|-\n' )
    		.replace( /\|-+\s*\n\|\}/g, '|}' )
    		.replace( /\|-+ {0,}\n\| ?/g, '|-\n! scope=row | ' )
    		.replace( /(''')\.\.\.(''')/g, '$1…$2' )
    	);
    	$( '#wpSummary' ).val( $( '#wpSummary' ).val()
    		+ 'Correction du tableau : entêtes ([[WP:AA|accessibilité]]), classes wikitable et alternance — [[user:Ltrlg/JS|JS]]'
    	);
    	$( '#wpSave' ).click();
    }
    

    J’effectue désormais les tâches de ce type avec mon bot.