Introduction au Lua/Scribunto
Lua est implémenté sur Mediawiki grâce à l'extension Scribunto/Lua extension/fr et stocke ses ressources dans un espace de nom nommé "Module:" dont le numéro est 828/829 [1]...
Créons notre premier script Lua via Scribunto pour la Wikiversité
modifier- Accéder au Module:Sandbox.
- Supprimer son contenu.
- :Le module "Sandbox" est fait pour les tests, tout le monde est libre de faire ses propres expériences, si vous remarquez qu'un autre utilisateur en train d’éditer cette page, vous pouvez aussi Créer une sous-page Sandbox/Votre_nom.
- Coller le code suivant et enregistrer la page :
local p = {} function p.hello() return 'Bonjour !' end return p
Testons notre premier script Lua dans l'environnement Mediawiki
modifier- Accéder soit au Bac à sable, soit à votre page utilisateur ou encore votre propre bac à sable.
- Ajouter le code suivant et sauvegarder:
{{#invoke:Sandbox|hello}}
Le résultat devrait être:
Bonjour !
Editons notre premier script Lua
modifier- Retourner sur la page Module:Sandbox.
- Éditer la ligne
return 'Bonjour !'
et ajouter votre nom à l’intérieur des guillemets, afin d'obtenir quelque chose de semblable:return 'Hello Lua !'
. - Enregistrer.
- Retourner sur votre page de test, plus rapide vous pouvez utiliser la propre page de discussion du module comme page de test.
- Rafraîchissez la page pour voir votre nom retourné par le script.
Le résultat doit ressembler à ceci:
Bonjour Lua !
Comment fonctionne notre premier script?
modifierlocal p = {}
Initialise une table ou "array" pour notre code et la nommep
.function p.hello()
Défini une fonction nomméehello
qui s'applique à la table. Une fonctions est invoquée (appelée) par son nom à partir d'une page quelconque en dehors du module.return 'Bonjour !'
Retourne la chaîne de caractèresBonjour !
quand la fonction est appelée.end
Termine la fonction.return p
Retourne finalement le résultat de la fonction à travers la table à tout processus qui charge ce module.
Le code qui appel le script se compose ainsi:
#invoke:
Mot-clef pour invoquer un module Lua/ScribuntoSandbox
Précise le nom du module à charger.hello
Spécifie le nom de la fonction à exécuter.
{{#invoke:Sandbox|hello}} | Mot-clé | 1er Paramètre | 2e Paramètre |
---|---|---|---|
Code |
#invoke: |
Sandbox |
hello |
Usage |
Spécifie l'action - ici charger un module et appeler une fonction. |
Spécifie le nom du module. |
Spécifie le nom de la fonction à l’intérieur du module qui doit être exécutée. |
Conclusion
modifierFélicitation, vous avez créé, testé, édité et compris votre premier script Lua en environnement Mediawiki. Continuez avec la leçon Modules.
Références
modifier