Aller au contenu

Projet:Scribunto

Une page de Wikipédia, l'encyclopédie libre.

Projet Scribunto
Bienvenue sur le Projet Scribunto !


Présentation

Ce projet coordonne les efforts des développeurs Lua pour créer de nouveaux modèles utilisant l'extension Scribunto déployée le 18 février 2013 sur la version francophone de Wikipédia.

Cette page n'est pas encore complète, n'hésitez pas à l'améliorer ! C'est simple et facile.

Introduction à Scribunto et Lua
Que fait cette extension ?

Scribunto permet de générer du contenu automatisé (wikicode), en langage de programmation Lua, en remplacement ou au sein des modèles de MediaWiki.

Pourquoi l'utiliser ?

Les modèles utilisent les fonctions d'analyse syntaxique pour effectuer des traitements complexes (gestion de paramètres, conditions, etc.). Cependant ces derniers posent de nombreux problèmes d'efficacité et de lisibilité, rendant plus difficile l'édition et la création de modèles. De plus les modèles complexes incluent des modèles qui incluent des modèles qui… ce qui a un impact très fort sur les performances.

Lua permet de rendre ces traitements plus lisibles, plus compacts, plus légers (au niveau des serveurs) et plus puissants.

Qu'est-ce que cela change pour l'édition des articles ?

En pratique rien du tout ! Le consensus est de ne pas appeler directement des modules depuis l'espace encyclopédique. Ainsi dans les articles il n'y a que des appels de modèles et ce sont des modèles qui font appel aux modules.

Attention ! Les documentations TemplateData devraient toujours être renseignées pour les modèles ayant des paramètres. Cela est encore plus vrai pour les modèles sollicitant des modules. En effet, contrairement à un modèle classique qui a des paramètres nommés ou numérotés (par exemple {{{1}}}) explicites, un modèle sollicitant un module peut lui passer des paramètres "implicites" n'apparaissant pas dans le wikicode du modèle. Renseigner le TemplateData du modèle est donc indispensable, tant pour indiquer au lecteur de la documentation les paramètres existants que pour permettre au formulaire d'insertion des modèles de l'Éditeur visuel de disposer de la liste exhaustive des paramètres valides.

Annonces
15 août 2024
  • Les objets mw.title possèdent désormais une propriété categories retournant un tableau des catégories d'une page. Cette propriété est considérée coûteuse (voir phab:T50175 et gerrit:919459).
14 décembre 2023
  • Les redirections de modules sont désormais possibles avec la syntaxe return require [[Module:Foo]] et le renommage de module laisse désormais une redirection automatique (voir phab:T120794 et gerrit:574086).
13 octobre 2022
  • Ajout de la fonction mw.loadJsonData(), qui permet de charger des données depuis un fichier json, à la différence à mw.loadData() qui les charge depuis une table lua (voir phab:T217500 et gerrit:833990).
Ressources
Participants
Plus d’un an d’inactivité
Projets en cours
Modules existants
Principaux modules
Méta-modules
  • Arguments, simplifiant la gestion des frames ;
  • Outils, contient quatre fonctions pratiques ;
  • TableBuilder, applique aux fonctions de la librairie Table une interface fluide ;
  • TableTools, fournit des fonctions de gestion des tables lua (length, deepCopy, etc.) ;
  • Yesno, les booléens n'étant pas gérés nativement en lua, un module dédié est nécessaire.
Autres modules pratiques
  • Format, dédié à la mise en forme de textes ;
  • Romain et Chiffres romains, pour la gestion des chiffres romains ;
  • String et String2, pour le traitement de chaînes de caractères depuis des modèles ;
  • Linguistique, quelques fonctions de manipulation de chaîne dont certaines pour l'accord en genre ;
  • Test et UnitTests dédiés aux… tests ;
  • ControlArgs, pour lister des tables (mw, frame, args...), documenter les tests…
  • Documentation module module générant les entêtes de documentation pour les modules et leurs pages de documentation. Module appelé directement par mediawiki lors des affichages de page, donc à ne jamais inclure dans les pages de documentation.

Voir aussi la liste des modules en langage lua.