Aller au contenu

Projet:Scripts et gadgets/Débuter

Une page de Wikipédia, l'encyclopédie libre.
Projet Fonctions disponibles Notices Discussion projet Signaler un bug Demander une nouvelle fonction
PROJET SCRIPTS ET GADGETS
Centraliser les fonctions JavaScript et CSS pour éviter la dispersion du code.
 

Cette page permet de regrouper une série d'actions à effectuer dans le but d'améliorer la qualité et la maintenabilité des scripts utilisateurs et des gadgets disponibles sur frWiki, notamment en réduisant la dispersion du code.

Cette page est un bon point de départ pour apprendre à développer des scripts en Javascript sur Wikipédia et découvrir les subtilités inhérentes à cet environnement. Notez toutefois que ce n'est pas un tutoriel pour apprendre à coder, et qu'il est nécessaire d'avoir des connaissances préalables dans ce langage.

Où se trouve le JavaScript ?[modifier | modifier le code]

Le JavaScript est omniprésent sur Wikipédia. De nombreuses couches se superposent, chacune ayant un objectif et un processus d'édition qui lui est propre. Par ordre d'importance et de chargement, on trouve du JS :

Quoi Exécuté par Commentaires
Core de Mediawiki Gerrit Tous Chargé automatiquement, affecte tous les wikis utilisant MediaWiki.
Page global de la version desktop Mediawiki:Common.js Tous sur la version desktop
Page global de la version mobile MediaWiki:Mobile.js Tous sur la version mobile
Page global relative à un skin MediaWiki:NomDuSkin.js Tous les utilisateurs utilisant ce skin
Page global relative à un groupe MediaWiki:Group-nomDuGroupe.js Tous les membres du groupe
Page global relative à une extension Mediawiki Mediawiki:NomDeLExtension.js Sur les pages où sont utilisés l'extension
Gadgets Mediawiki:Gadget-NomDuGadget.js Utilisateurs inscrit l'ayant activé dans Spécial:Préférences Liste des gadgets dans les préférences définis dans MediaWiki:Gadgets-definition, voir section Gadgets.
Script personnel commun à tous les wikis User:Exemple/global.js Utilisateur concerné Sur meta.
Script personnel commun à tous les habillages User:Exemple/common.js Utilisateur concerné
Script personnel relatif à un habillage User:Exemple/skin.js Utilisateur concerné lorsqu'il utilise ce skin À éviter autant que possible, préférer le common.js personnel.

Toutes les pages JavaScript présentes dans l'espace de nom MediaWiki sont éditables par les seuls administrateurs d'interface, lorsque celles présentes dans l'espace de nom Utilisateur ne le sont que par l'utilisateur concerné et les administrateurs d'interface.

Développer sur Wikipédia[modifier | modifier le code]

Quelques considérations à prendre en compte :

  • Essayer de suivre la convention d'écriture JavaScript de MediaWiki, afin d'avoir un code homogène à travers Wikipédia : Conventions de codage/JavaScript ;
  • La majeur partie de la documentation des fonctions JavaScript du cœur de MediaWiki ou de ses extensions est disponible là : Wikimedia Open Source ;
  • Favoriser au maximum la réutilisation du code existant en utilisant les fonctions du cœur de MediaWiki au lieu de réinventer la roue (cela évite bien souvent des bugs et évite aux scripts de casser à chaque mise à jour de MediaWiki) ;
  • Lorsque vous débugger un script, ajoutez le paramètre ?debug=true dans l'URL pour recevoir les scripts non-minifiés ;
  • ...

Pas à pas vers son premier script sur Wikipédia

Faire un appel à l'API[modifier | modifier le code]

Découvrir et préparer une requête[modifier | modifier le code]

L'API de Mediawiki est vaste et riche ; tout ce qu'il est possible de faire via l'interface web est réalisable via l'API, et même plus. Afin de s'y retrouver, deux ressources sont à votre disposition :

  • La documentation de l'API sur mediawiki.org : API:Main page ;
  • Le bac à sable API, qui est une page spéciale disponible sur chaque wiki et permet d'explorer, préparer et tester graphiquement ses requêtes à l'API : Spécial:ApiSandbox.

Charger des ressources avec le Ressource Loader[modifier | modifier le code]

OOjs-UI pour gérer l'interface[modifier | modifier le code]

Internationaliser son gadget[modifier | modifier le code]