Introduction au Lua/Scribunto

Début de la boite de navigation du chapitre

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]...

Scribunto
Icône de la faculté
Chapitre no 3
Leçon : Introduction au Lua
Chap. préc. :Introduction
Chap. suiv. :Modules
fin de la boite de navigation du chapitre
En raison de limitations techniques, la typographie souhaitable du titre, « Introduction au Lua : Scribunto
Introduction au Lua/Scribunto
 », n'a pu être restituée correctement ci-dessus.


Créons notre premier script Lua via Scribunto pour la Wikiversité

modifier
  1. Accéder au Module:Sandbox.
  2. Supprimer son contenu.
  3. :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.
  4. 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
  1. Accéder soit au Bac à sable, soit à votre page utilisateur ou encore votre propre bac à sable.
  2. Ajouter le code suivant et sauvegarder:
{{#invoke:Sandbox|hello}}

Le résultat devrait être:

Bonjour !

Editons notre premier script Lua

modifier
  1. Retourner sur la page Module:Sandbox.
  2. Éditer la ligne return 'Bonjour !' et ajouter votre nom à l’intérieur des guillemets, afin d'obtenir quelque chose de semblable: return 'Hello Lua !'.
  3. Enregistrer.
  4. Retourner sur votre page de test, plus rapide vous pouvez utiliser la propre page de discussion du module comme page de test.
  5. 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?

modifier
  1. local p = {} Initialise une table ou "array" pour notre code et la nomme p.
  2. function p.hello() Défini une fonction nommée hello qui s'applique à la table. Une fonctions est invoquée (appelée) par son nom à partir d'une page quelconque en dehors du module.
  3. return 'Bonjour !' Retourne la chaîne de caractères Bonjour ! quand la fonction est appelée.
  4. end Termine la fonction.
  5. 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:

  1. #invoke: Mot-clef pour invoquer un module Lua/Scribunto
  2. Sandbox Précise le nom du module à charger.
  3. 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

modifier

Fé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

Lua for Wikiversity (en)