Projet:Scribunto
Présentation
Ce projet coordonne les efforts des développeursLuapour créer de nouveaux modèles utilisant l'extension Scribuntodé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.
- Que fait cette extension?
Scribunto permet de générer du contenu automatisé (wikicode), en langage de programmationLua,en remplacement ou au sein desmodèlesdeMediaWiki.
- Pourquoi l'utiliser?
Les modèles utilisent lesfonctions d'analyse syntaxiquepour 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 documentationsTemplateDatadevraient 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 visuelde disposer de la liste exhaustive des paramètres valides.
- 15 août 2024
- Les objets
mw.title
pos sắc 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 (voirphab:T50175etgerrit:919459).
- 14 décembre 2023
- Les redirections de modules sont désormais possibles avec la syntaxe
returnrequire[[Module:Foo]]
et le renommage de module laisse désormais une redirection automatique (voirphab:T120794etgerrit: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 (voirphab:T217500etgerrit:833990).
- Manuel de référence de Lua
- en français− peut être en retard de traduction par rapport à la version anglaise
- en anglais
- Projet:Scribunto/Guide
- (fr)v:Initiation au Lua avec Scribunto(sur Wikiversité)
- (en)API specification:adaptations MediaWiki par rapport à Lua
- Amélioration duguide de programmation Luaet de la pageaide:Module;
- Rédaction des pages de documentation manquantes.
- Principaux modules
- Bandeau,dédié à la mise en forme de bandeaux;
- Autorité,BasesetDictionnairespour l'insertion des liens en bas des articles (voirProjet:Basespour le projet dédié);
- Biblio,utilisé par les modèles comme{{Ouvrage}}et{{Lien web}};
- Date,dédié au calendrier républicain et au modèle{{Date}};
- Langue,pour le modèle{{Langue}};
- Infobox,pour les infobox (voirProjet:Infoboxpour le projet dédié);
- Wikidata,pour l'obtention de données issues deWikidata.
- Méta-modules
- Arguments,simplifiant la gestion des frames;
- Outils,contient quatre fonctions pratiques;
- TableBuilder,applique aux fonctions de la librairie Table uneinterface 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;
- RomainetChiffres romains,pour la gestion des chiffres romains;
- StringetString2,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;
- TestetUnitTestsdédiés aux… tests;
- ControlArgs,pour lister des tables (mw, frame, args...), documenter les tests…
- Documentation modulemodule 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 aussila liste des modules en langage lua.