Extension:Scribunto
Scribunto État de la version : stable |
|
---|---|
Implémentation | Extension de l'analyseur |
Description | Fournit un environnement d'exécution our prendre en charge les langages de script dans les pages MediaWiki |
Auteur(s) |
|
Dernière version | Mises à jour constantes |
Politique de compatibilité | Versions ponctuelles alignées avec MediaWiki. Le master n'est pas compatible arrière. |
PHP | 5.5+ |
Licence | GPL-2.0-or-later AND MIT |
Téléchargement | |
Module (ns:828), Talk_Module (ns:829) |
|
|
|
Téléchargements trimestriels | 461 (Ranked 5th) |
Utilisé par les wikis publics | 8,789 (Ranked 30th) |
Traduire l’extension Scribunto sur translatewiki.net si elle y est disponible | |
Rôle Vagrant | scribunto |
Problèmes | Tâches ouvertes · Signaler un bogue |
L'extension Scribunto (latin : « ils l'écriront/le laisseront écrire (à l'avenir) ») permet l'intégration des langages de script dans MediaWiki.
Actuellement, le seul langage de script pris en charge est Lua. Les scripts Lua Scribunto sont stockés dans l'espace de noms Module. Les modules s'exécutent sur les pages normales du wiki en utilisant la fonction #invoke de l'analyseur syntaxique et chaque module possède sa propre collection de fonctions, que vous pouvez appeler en utilisant une syntaxe wikicode comme :
{{#invoke: Module_name | function_name | arg1 | arg2 | arg3 ... }}
Installation
- Téléchargez et placez le(s) fichier(s) dans un répertoire appelé
Scribunto
dans votre dossierextensions/
.
Les développeurs et les contributeurs au code doivent à la place installer l'extension à partir de Git en utilisant:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Scribunto - Ajoutez le code suivant à la fin de votre fichier LocalSettings.php :
wfLoadExtension( 'Scribunto' ); $wgScribuntoDefaultEngine = 'luastandalone';
- Fait – Accédez à Special:Version sur votre wiki pour vérifier que l'extension a bien été installée.
Installation Vagrant :
- Si vous utilisez Vagrant , installez avec
vagrant roles enable scribunto --provision
Prérequis
Compatibilité des versions PCRE
PCRE 8.33+ est recommandé. PCRE 8.33 a été diffusé en mai 2013. Vous pouvez voir la version de PCRE utilisée par PHP en affichant une page web phpinfo(), ou à partir de la ligne de commande avec :
php -r 'echo "pcre: " . ( extension_loaded( "pcre" ) ? PCRE_VERSION : "no" ) . "\n";'
- Scribunto ne fonctionne pas avec les versions de PCRE inférieures à 8.10.
- PCRE 8.32 comporte un bogue qui fait que certains points de code qui ne correspondent pas à des caractères sont rejetés, ce qui provoque des erreurs dans le module mw.html
CentOS 6 et RHEL 6 sont associés à PCRE 7 et doivent être mis à jour.
Mettre à jour vers la 8.33 peut s'avérer très compliqué avec un serveur ayant une version plus ancienne. Voir Mettre à jour à PCRE 8.33 ou plus pour les détails.
Extension mbstring pour PHP
PHP a besoin que l'extension mbstring soit activée.
Vous pouvez vérifier si le support de mbstring est activé en affichant une page web phpinfo(), ou à partir de la commande suivante en mode ligne de commande :
php -r 'echo "mbstring: " . ( extension_loaded( "mbstring" ) ? "yes" : "no" ) . "\n";'
Binaire Lua
Binaires dans les archives
Scribunto est livré avec les distributions binaires Lua pour Linux (x86 et x86-64), Mac OS X Lion, et Windows (32 et 64-bit).
Scribunto devrait fonctionner pour vous tel quel si :
- votre serveur web s'exécute sur l'une des plateforme ci-dessus.
- La function PHP
proc_open
n'est pas restreinte.[1] proc_terminate
andshell_exec
are not disabled in PHP.- Votre serveur web est configuré pour permettre l'exécution de fichiers binaires dans l'arborescence MediaWiki.
- Note : Vous devrez éventuellement attribuer le droit d'exécuter; par exemple, sous Linux utilisez :
- Si votre serveur utilise SELinux en mode Enforcing, vous aurez peut être à définir un contexte spécifique pour les binaires. Exemple pour RHEL / CentOS 7 :
chmod 755 /path/to/extensions/Scribunto/includes/Engines/LuaStandalone/binaries/lua5_1_5_linux_64_generic/lua
chcon -t httpd_sys_script_exec_t /path/to/extensions/Scribunto/includes/Engines/LuaStandalone/binaries/lua5_1_5_linux_64_generic/lua
P.S. : vérifiez la version de votre extension pour voir si le nom du répertoire des moteurs est en majuscules ou complètement en minuscules.[2]
Binaires supplémentaires
Les distributions binaires Lua complémentaires, nécessaires à votre serveur web si son système d'exploitation n'est pas dans la liste ci-dessus, peuvent être obtenues de http://luabinaries.sourceforge.net/ ou de votre distribution Linux.
Seuls les fichiers binaires pour Lua 5.1.x sont pris en charge.
Une fois que vous avez installé le fichier binaire approprié sur votre serveur web, configurez l'emplacement du fichier avec :
# Où Lua est le nom du fichier binaire
# par exemple SourceForge LuaBinaries 5.1.5 - Version 2 nom du fichier binaire lua5.1
$wgScribuntoEngineConf['luastandalone']['luaPath'] = '/path/to/binaries/lua5.1';
Notez que vous ne devez pas ajouter la ligne ci-dessus à moins que vous avez confirmé que les binaires construits de Scribunto ne fonctionnent pas chez vous.
LuaJIT n'est pas pris en charge bien qu'il soit théoriquement compatible.
Le support a été supprimé à cause des problèmes Spectre et bitrot (phab:T184156).
Installation optionnelle
Intégrer les extensions
Pour disposer d'une interface utilisateur plus agréable, avec une mise en valeur de la syntaxe et un éditeur de code réalisant l'indentation automatique, installez les extensions suivantes :
See the documentation for each extension for additional configuration options.
LuaSandbox
Nous avons développé une extension PHP écrite en C appelée LuaSandbox. Il peut être utilisé en tant qu'alternative au binaire isolé, en fournira de meilleures performances. Voir LuaSandbox pour les détails et les instructions d'installation.
Si vous avez initialement installé l'extension pour qu'elle utilise le binaire Lua séparé, assurez-vous de mettre à jour LocalSettings.php
avec le paramètre de configuration suivant :
$wgScribuntoDefaultEngine = 'luasandbox';
Configuration
Les variables de configuration suivantes sont disponibles :
- $wgScribuntoDefaultEngine
- Choisir le moteur Les valeurs valides sont les clés de
$wgScribuntoEngineConf
, qui par défaut sont'luasandbox'
ou'luastandalone'
. - $wgScribuntoEngineConf
- Tableau associatif pour la configuration du moteur. Les clés sont les valeurs valides pour
$wgScribuntoDefaultEngine
, et les valeurs sont les tableaux associatifs des paramètres de configuration. Chaque tableau de configuration doit contenir une clé'class'
qui nomme les sous-classesScribuntoEngineBase
à utiliser.
LuaStandalone
Les clés suivantes sont utilisées dans $wgScribuntoEngineConf
pour Scribunto_LuaStandaloneEngine
.
En général, vous les initialiserez d'une manière similaire à :
$wgScribuntoEngineConf['luastandalone']['key'] = 'value';
- luaPath
- Spécifier le chemin vers un interpréteur Lua.
- errorFile
- Indiquez le chemin vers un fichier, accessible en écriture par l'utilisateur du serveur web, où la sortie des erreurs et des informations de debogage seront journalisées.
- Les sorties d'erreurs produites par l'interpréteur indépendant ne sont pas journalisées par défaut. Configurez la connexion avec :
$wgScribuntoEngineConf['luastandalone']['errorFile'] = '/path/to/file.log';
- memoryLimit
- Indiquez la taille limite de la mémoire en octets. Par défaut elle est de 52428800 (50MB) (forcé en utilisant ulimit).
- cpuLimit
- Indiquez la valeur maximale du temps d'utilisation du CPU en secondes (forcé en utilisant ulimit)
- allowEnvFuncs
- Mettre à
true
pour autoriser l'utilisation de setfenv et getfenv dans les modules.
LuaSandbox
Les clés suivantes sont utilisées dans $wgScribuntoEngineConf
pour Scribunto_LuaSandboxEngine
.
En général, vous les initialiserez d'une manière similaire à :
$wgScribuntoEngineConf['luasandbox']['clé'] = 'valeur';
- memoryLimit
- Indiquez la limite de la mémoire en octets. Default 52428800 (50MB)
- cpuLimit
- Indiquez la limite du temps CPU en secondes.
- profilerPeriod
- Indiquez le temps entre chaque interrogation en secondes pour le profileur Lua.
- allowEnvFuncs
- Mettez à
true
pour permettre l'utilisation de setfenv et getfenv dans les modules.
Utilisation
Les scripts se placent dans un nouvel espace de noms appelé Module. Chaque module possède un ensemble de fonctions pouvant être appelées avec la syntaxe wikicode telle que :
{{#invoke: Module_name | function_name | arg1 | arg2 | arg3 ... }}
Lua
Apprendre Lua
Lua est un langage simple de programmation créé dans le but d'être accessible aux débutants. Pour un cours Lua super rapide, essayez Apprendre Lua en 15 minutes.
La meilleure introduction détaillée sur Lua est le livre Programmer en Lua. La première édition (pour Lua 5.0) est disponible en ligne et convient pratiquement pour Lua 5.1 qui est la version utilisée par Scribunto :
- Programmer en Lua (descendre pour passer les annonces du livre et accéder au texte)
Le manuel de référence est également utile :
Environnement Lua
En Lua, nous appelons environnement l'ensemble des variables et des fonctions globales.
Chaque appel de {{#invoke:}}
s'exécute dansn environnement séparé.
Les variables définies dans un {{#invoke:}}
ne seront pas accessibles d'un autre.
Cette restriction était nécessaire pour maintenir la flexibilité dans l'implémentation de l'analyseur de wikicode.
Console de débogage
- Voir aussi : Extension:Scribunto/Debug console
Lorsque vous modifiez un module Lua, une fenêtre de debogage apparaît sous le formulaire d'édition. Dans cette fenêtre de débogage, vous pouvez exécuter du code Lua sans avoir à sauvegarder ou même à créer le module Lua en question.
Dépannage
Remarquez que les messages rouges Erreur de script sont cliquables et fourniront des informations plus détaillées.
Impossible d’exécuter extensions/Scribunto/includes/Engines/LuaStandalone/binaries
Définissez les droits d'exécution pour les binaires Lua livrés avec cette extension :[2]
chmod a+x /path/to/extensions/Scribunto/includes/Engines/LuaStandalone/binaries/$YOUR_OS/lua
Fixez le type à httpd_sys_script_exec_t
si SELinux est utilisé :[2]
chcon -t httpd_sys_script_exec_t /path/to/extensions/Scribunto/includes/Engines/LuaStandalone/binaries/yourOS/lua
Erreur Lua : erreur interne : l’interpréteur s’est arrêté avec l’état « 1 ».
Si vous utilisez le moteur LuaStandalone (cas par défaut), les erreurs avec les lignes associées de « Erreur Lua : erreur interne : l’interpréteur s’est arrêté avec l’état « 1 ». » peuvent être générées si l'interpréteur indépendant Lua ne peut pas être exécuté ou s'exécute avec de multiples erreurs de code.
Pour obtenir davantage d'informations, définissez un chemin de fichier pour $wgScribuntoEngineConf['luastandalone']['errorFile']
.
La sortie d'erreurs de l'interpréteur sera tracée dans le fichier spécifié, ce qui s'avèrera plus utile lors de la recherche de fautes.
L'information dans le journal de debogage comprend les informations de debogage, c'est pourquoi il est si long.
Vous devriez pouvoir ignorer les lignes commençant par TX ou RX.
If you're setting up Scribunto and are using IIS/Windows, this appears to be solved by commenting out line 132 in $wiki/extensions/Scribunto/includes/engines/LuaStandalone/LuaStandaloneInterpreter.php
.
In other words, change $cmd = '"' . $cmd . '"';
to // $cmd = '"' . $cmd . '"';
.
Erreur Lua : erreur interne : l’interpréteur s’est arrêté avec l’état « 2 ».
En utilisant le moteur LuaStandalone (cas par défaut), l'état 2 suggère des erreurs d'allocation mémoire, probablement causées par les paramètres qui réservent l'espace mémoire non approprié pour PHP ou Lua, ou pour les deux.
En fournissant un chemin de fichier à $wgScribuntoEngineConf['luastandalone']['errorFile']
et en examinant ainsi la sortie vous pourrez diagnostiquer valablement les erreurs d'allocation mémoire.
Augmentez l'allocation PHP dans votre configuration PHP; ajoutez la ligne memory_limit = 200M
.
Celle allocation de 200 Mo est habituellement suffisante (depuis MediaWiki 1.24) et peut être augmentée si nécessaire.
Définissez l'allocation mémoire de Scribunto dans le fichier LocalSettings.php
avec la ligne suivante :
$wgScribuntoEngineConf['luastandalone']['memoryLimit'] = 209715200; # octets
Enfin, en fonction de la configuration du serveur, certaines installations peuvent être facilitées en ajoutant une autre ligne à LocalSettings.php
:
$wgMaxShellMemory = 204800; # en ko
Notez que les limites des trois mémoires sont données dans des unités différentes.
Erreur Lua : Erreur interne : 2. sur architecture ARM
Si vous utilisez un processeur à architecture ARM tel que sur un RaspberryPi vous rencontrerez l'erreur Lua error: Internal error: The interpreter exited with status 2.
à cause du mauvais format binaire de livraison de l'interpréteur Lua.
Vérifez votre interpréteur Lua dans :
/path/to/webdir/Scribunto/includes/Engines/LuaStandalone/binaries/lua5_1_5_linux_32_generic
Vérifiez l'interpréteur en utilisant :
file lua
Le résultat devrait être similaire à :
lua: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 3.2.0
L'interpréteur Lua installé par défaut donne :
lua: ELF 32-bit LSB pie executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.9,
regardez dans la partie Intel 80386 ce qui définitivement n'est pas correct.
Vérifiez dans /usr/bin
la version de Lua installée sur votre système. Si lua5.1 est installé, vous pouvez soit copier l'interpréteur dans votre répertoire lua5_1_5_linux_32_generic
ou bien le déclarer dans votre LocalSettings.php :
$wgScribuntoEngineConf['luastandalone']['luaPath'] = '/usr/bin/lua5.1';
Maintenant n'initialisez pas wgScribuntoEngineConf
à /usr/bin/lua5.3, cela conduira à l' « Erreur interne 1 ».
Erreur Lua : erreur interne : l’interpréteur s’est arrêté avec l’état « 24 ».
Lorsque vous utilisez le moteur LuaStandalone (cas par défaut), l'état 24 suggère des erreurs de dépassement du temps d'allocation CPU, bien que celles-ci devraient générer à la place, un message « Le temps alloué à l'exécution des scripts est dépassé » . Il serait utile de créer une tâche dans Phabricator et d'y participer pour déterminer pourquoi le signal XCPU n'est pas récupéré.
Erreur Lua : erreur interne : l’interpréteur s’est arrêté avec l’état « 126 ».
Lorsque vous utilisez le moteur LuaStandalone (cas par défaut), des erreurs avec les lignes associées de « Erreur Lua : erreur interne : l’interpréteur s’est arrêté avec l’état « 126 ». » peuvent apparaître si l'interpréteur Lua indépendant ne peut pas être exécuté. Ceci est dû généralement à l'une des deux causes suivantes :
- Le droit d'exécuter sur les fichiers Lua n'incluent pas l'exécution (Execute). Attribuez les droits tel que décrit dans la section Installation.
- Le serveur n'autorise pas l'exécution des fichiers à partir de l'endroit où les exécutables ont été installés parce que le système de fichiers est monté avec l'attribut
'noexec'
. Ceci se produit souvent avec des serveurs hôtes partagés. Une solution possible est de modifier$wgScribuntoEngineConf['luastandalone']['luaPath']
pour qu'il pointe vers un binaire Lua 5.1 installé à un endroit exécutable ou en l'adaptant, ou encore en convaincant l'hôte partagé de corriger le paramètre qui empêche l'exécution.
Condition d'erreur telle que : exception fatale de type MWException
Voyez les journaux de MediaWiki, PHP, ou du serveur web pour davantage de détails sur l'exception, ou mettez temporairement $wgShowExceptionDetails à true
.
Version 'GLIBC_2.11' non trouvée
Si ce qui précède génère des erreurs telles que « version 'GLIBC_2.11' non trouvée » , cela signifie que la version de la bibliothèque standard C sur votre système, est trop ancienne pour les binaires fournis avec Scribunto. Vous devriez mettre à jour votre bibliothèque C ou utiliser une version de Lua 5.1 compilée pour la bibliothèque C que vous avez installée. Pour mettre à jour votre bibliothèque C, la meilleure façon est habituellement de suivre les instructions de votre distribution relatives à la mise à jour des paquets logiciels (ou pour faire la mise à jour vers une nouvelle version de la distribution, selon le cas).
Si vous copiez les binaires Lua à partir de la branche master de Scribunto (ou de gerrit:77905), cela devrait suffire, si vous ne pouvez pas (ou ne voulez pas) mettre à jour votre bibliothèque C. Les binaires distribués ont été récemment recompilés avec une ancienne version de glibc, donc le minimum maintenant est 2.3 au lieu de 2.11.
Erreurs Lua dans les fichiers Scribunto
Les erreurs comprennent ici :
- essai pour indexer le champ 'text' (une valeur nulle)
- Erreur Lua dans mw.html.lua en ligne 253 : classe invalide fournie :
Si vous obtenez des erreurs comme celles-ci lorsque vous essayez d'utiliser les modules importés des wikis de la WMF, il est très probable que la version de votre Scribunto soit obsolète.
Mettez-la à jour si possible; pour les utilisateurs avancés, vous pouvez aussi essayer d'identifier les nouvelles validations (commits) nécessaires et les récupérer (cherry-pick) dans votre installation locale.
preg_replace_callback(): échec de compilation : nom de propriété inconnu après \P ou \p à l'offset 7
preg_replace_callback(): Echec de compilation : nom de propriété inconnu après \P ou \p à l'offset 7
- cela indique habituellement une version incompatible de PCRE; vous devrez mettre à jour >= 8.10
- @todo: lien sur les instructions de mise à jour
Erreur Lua
Si vous copiez les modèles de Wikipedia et qu'ensuite vous voyez de gros messages en rouge « Lua error: x » où Scribunto est appelé (par exemple le modèle qui utilise {{#invoke:}}
), cela signifie probablement que vous n'avez pas importé tous les éléments nécessaires.
Assurez-vous d'avoir coché la case « Inclure les modèles » sur w:Special:Export lorsque vous exportez.
Lorsque vous importez des pages à partir d'un autre wiki, il est aussi possible que des modèles ou des modules parmi ces données importées, réécrasent les modèles ou les modules existants qui ont le même titre, ce qui peut casser les pages existantes, les modèles, ou les modules qui dépendent de ces versions réécrasées.
Ecran vide
Vérifiez que la version de votre extension est compatible avec votre version de MediaWiki.
Licence
Cette extension comporte du code sous licence GNU General Public License v2.0 ou ultérieure (GPL-2.0+) ainsi que du code sous licence MIT (MIT).
Documents de conception
- Extension:Scribunto/Parser interface design
- Extension:Scribunto/Victor's API proposal
- Extension:Scribunto/Documentation specification
- Extension:Scribunto/Tim's draft roadmap
Autres pages
- Extension:Scribunto/Deployment priorities
- Extension:Scribunto/Brainstorming
- Lua scripting - Page d'activité Wikimedia décrivant le plan de déploiement des sites Wikimedia.
- Extension:Scribunto/Manuel de référence Lua - La référence du langage Lua, ainsi que ses bibliothèques standard et ses modules communs Scribunto pris en charge par les sites Wikimedia.
- Extension:Scribunto/Lua 5.2 changes - Liste de modifications connues dans Lua 5.2 qui peuvent faire que le code écrit en 5.1 fonctionne de manière inattendue.
- Extension:Scribunto/Example modules
- Extension:Scribunto/Example extension - Code d'exemple d'extensions qui étendent la bibliothèque Scribunto.
- Extension:Scribunto/We use Lua
Voir aussi
- Généralités
- Lua Wikibase client - fonctionnalité pour l'extension Scribunto.
- Lua (Commons) - vous pourrez trouver des notes spécifiques sur l'utilisation des modules Lua sur Wikimedia Commons, y compris sur les extensions supplémentaires Lua installées (par exemple pour la prise en charge locale des traductions et pour l'analyse ou la restitution des médias). Certains modules à fonctionnement général peuvent être réutilisés sur d'autres wikis et dans des langues différentes (sauf pour l'adaptation spécifique des règles, les espaces de noms ou les pages des projets ou de maintenance ayant des noms dédiés). Les modules réutilisés à grande échelle sur les wikis doivent si possible être testés et traduits sur Wikimedia Commons.
- w:Help:Lua - il peut contenir des notes spécifiques sur l'utilisation de modules Lua avec Wikipedia, y compris les extensions Lua installées (pour intégrer le contenu de Wikidata et Wikimedia Commons, pour générer des boîtes d'information et de navigation complexes, ou pour faciliter l'administration et la maintenance générale du contenu du wiki en fonction des règles applicables). Certaines autres éditions traduites de Wikipedia (ou d'autres projets comme le Wiktionnaire, Wikisource ou Wikinews) peuvent avoir également leurs propres besoins ainsi que leurs modules Lua.
- d:Help:Lua - vous pourrez trouver des notes spécifiques sur l'utilisation des modules Lua dans Wikidata, y compris sur les extensions supplémentaires Lua installées (par exemple pour la prise en charge locale des traductions et pour les requêtes dans la base de données).
- Extensions
- Capiunto - Fournit les fonctions de base d'une boîte d'information à l'extension Scribunto.
- Semantic Scribunto - fournit un support natif pour l'extension Scribunto pour l'utilisation avec Semantic MediaWiki
- VariablesLua - fournit un interface Lua Scribunto pour l'extension Variables
- Client Wikibase - fournit Wikibase (partie du projet Wikidata)
Liens externes
Notes
- ↑
c'est à dire que Scribunto ne fonctionnera pas si
proc_open
est listé dans le tableaudisable_functions
du fichier php.ini de votre serveur. Si c'est le cas, vous pourriez voir un message d'erreur tel queproc_open(): open_basedir restriction in effect. File(/dev/null) is not within the allowed path(s):
Si vous utilisez Plesk et que vous avez obtenu les droits suffisants, vous pourriez initialiseropen_basedir
dans les paramètres PHP pour votre domaine ou sous-domaine. Essayez de modifier{WEBSPACEROOT}{/}{:}{TMP}{/}
en{WEBSPACEROOT}{/}{:}{TMP}{/}{:}/dev/null{:}/bin/bash
. - ↑ 2.0 2.1 2.2 Nom du répertoire des moteurs en miniscules convertis en majuscules en 2022.
Cette extension est utilisée par au moins un des projets Wikimédia. Cela signifie probablement que l’extension est assez stable et fonctionnelle pour être utilisée sur des sites à fort trafic. Recherchez le nom de cette extension dans le CommonSettings.php de Wikimédia et dans le fichier de configuration InitialiseSettings.php pour situer les endroits où elle est installée. Une liste complète des extensions installées sur un Wiki donné peut être visualisée sur la page Special:Version de ce wiki. |
Cette extension est incluse dans les fermes de wikis ou les hôtes suivants et / ou les paquets : Cette liste ne fait pas autorité. Certaines fermes de wikis ou hôtes et / ou paquets peuvent contenir cette extension même s'ils ne sont pas listés ici. Vérifiez toujours cela avec votre ferme de wikis ou votre hôte ou votre paquet avant de confirmer. |
- Extensions bundled with MediaWiki 1.34/fr
- Stable extensions/fr
- Parser extensions/fr
- Extensions with unknown license/fr
- Extensions in Wikimedia version control/fr
- ArticleViewHeader extensions/fr
- CodeEditorGetPageLanguage extensions/fr
- ContentHandlerDefaultModelFor extensions/fr
- EditFilterMergedContent extensions/fr
- EditPage::showReadOnlyForm:initial extensions/fr
- EditPage::showStandardInputs:options extensions/fr
- EditPageBeforeEditButtons extensions/fr
- ParserClearState extensions/fr
- ParserCloned extensions/fr
- ParserFirstCallInit extensions/fr
- ParserLimitReportFormat extensions/fr
- ParserLimitReportPrepare extensions/fr
- SoftwareInfo extensions/fr
- All extensions/fr
- Extensions used on Wikimedia/fr
- Extensions included in BlueSpice/fr
- Extensions included in Canasta/fr
- Extensions available as Debian packages/fr
- Extensions included in Fandom/fr
- Extensions included in Miraheze/fr
- Extensions included in MyWikis/fr
- Extensions included in ProWiki/fr
- Extensions included in ShoutWiki/fr
- Extensions included in wiki.gg/fr
- Extensions included in WikiForge/fr
- Scribunto extensions/fr
- ContentHandler extensions/fr
- GPL licensed extensions/fr
- MIT licensed extensions/fr