un logiciel wiki écrit en PHP , initialement publié en 2002 pour être utilisé par Wikipédia . Il alimente plusieurs sites web hébergeant des wikis sur Internet , ainsi que la plupart des sites hébergés par la Fondation Wikimedia, notamment Wikipédia, , Wikimedia Commons Wikiquote , Wikivoyage , Meta -Wiki Wikidata , qui définissent une grande partie des exigences du logiciel. Outre son utilisation sur les sites Wikimedia, MediaWiki a été utilisé comme système de gestion des connaissances et de contenu sites web que Fandom , wikiHow et d'importantes installations internes comme Intellipedia et Diplopedia .
MediaWiki est écrit en PHP et stocke l'intégralité de son contenu textuel dans une base de données . Le logiciel est optimisé pour gérer efficacement les projets de grande envergure, pouvant contenir des téraoctets de contenu et enregistrer des centaines de milliers de vues par seconde. Étant donné que Wikipédia est l'un des sites web les plus vastes et les plus visités au monde, assurer sa scalabilité grâce à de multiples couches de cache et de réplication de la base de données a constitué un enjeu majeur pour les développeurs. L'internationalisation de MediaWiki est un autre atout majeur : son interface est disponible dans plus de 400 langues. Le logiciel propose des centaines de paramètres de configuration et plus de 1 000 extensions permettant d'ajouter ou de modifier diverses fonctionnalités. Initialement développé par Magnus Manske , il a ensuite été enrichi par Lee Daniel Crocker , avant d'être développé par la Fondation Wikimedia .
des extensions pour fournir des fonctionnalités supplémentaires.Internationalisation et localisation
L'importance accordée au multilinguisme dans les projets Wikimedia a conduit les développeurs à accorder une attention particulière à l'internationalisation et à la localisation . L'interface utilisateur a été traduite en totalité ou en partie, dans plus de 400 langues sur translatewiki.net [ et peut être personnalisée par les administrateurs du site (l'interface entière est modifiable via le wiki).de privilèges d'administrateur sur un serveur exécutant PHP et une base de données SQL compatible . Certains utilisateurs trouvent utile de configurer un hôte virtuel si la majeure partie de leur site fonctionne avec un framework (tel que Zope ou Ruby on Rails ) largement incompatible avec MediaWiki. L'hébergement cloud permet d'éviter le déploiement d'un nouveau serveur.
Un script PHP d'installation, accessible via un navigateur web , initialise les paramètres du wiki. Il invite l'utilisateur à saisir un ensemble minimal de paramètres requis, laissant aux utilisateurs le soin d'effectuer d'autres modifications, telles que l'activation des téléversements , l'ajout d'un logo et l'installation d'extensions, en modifiant les paramètres de configuration contenus dans un fichier appelé `mediawiki.php` LocalSettings.php . Certains aspects de MediaWiki peuvent être configurés via des pages dédiées ou en modifiant certaines pages ; par exemple, les filtres anti-abus peuvent être configurés via une page spécifique , et certains gadgets peuvent être ajoutés en créant des pages JavaScript dans l'espace de noms MediaWiki .
Marge
L'une des premières différences entre MediaWiki (et son prédécesseur, UseModWiki ) et les autres moteurs wiki résidait dans l'utilisation de « liens libres » au lieu de la notation CamelCase . À l'époque de la création de MediaWiki, il était courant d'utiliser des termes comme « WorldWideWeb » pour créer un lien vers une page consacrée au World Wide Web ; dans MediaWiki, les liens sont créés en encadrant les mots de doubles crochets, les espaces étant conservés, par exemple : « [insérer le nom du lien] » . Ce changement était logique pour la création d'une encyclopédie, où l'exactitude des titres est primordiale.balisage wiki extensible et léger , conçu pour être plus facile à utiliser et à apprendre que HTML . Des outils existent pour convertir du contenu, comme des tableaux, entre le balisage MediaWiki et HTML. Des efforts ont été déployés pour créer une spécification de balisage MediaWiki, mais un consensus semble s'être dégagé sur la nécessité de règles grammaticales contextuelles pour le wikicode . Le tableau comparatif suivant illustre les différences entre le balisage wiki et HTML :
| Syntaxe MediaWiki (le code « en coulisses » utilisé pour ajouter une mise en forme au texte) | Équivalent HTML (un autre type de code « en coulisses » utilisé pour ajouter une mise en forme au texte) | Résultat rendu (visible à l'écran par un visiteur du site) |
|---|---|---|
[[ thé ]] ," dit le Lièvre de Mars à Alice, très sérieusement. « Je n'ai encore rien eu », répondit Alice d'un ton offensé, « donc je ne peux pas en prendre plus. » « Vous voulez dire que vous ne pouvez pas prendre « moins » ? » dit le Chapelier : « il est « très » facile de prendre « plus » que rien. » | thé </a> » , dit le Lièvre de Mars à Alice, avec beaucoup d'insistance. </p> <br> <p> « Je n'ai encore rien bu », répondit Alice d'un ton offensé : « je ne peux donc pas en prendre plus. » </p> <br> <p> « Tu veux dire que tu ne peux pas en prendre <i> moins </i> » , dit le Chapelier : « il est <b> très </b> facile d' en prendre <i> plus </i> que rien . » </p> | Un dialogue « Prends encore un peu de thé », dit le Lièvre de Mars à Alice, avec beaucoup de sérieux. « Je n'ai encore rien eu », répondit Alice d'un ton offensé, « donc je ne peux pas en prendre plus. » « Vous voulez dire que vous ne pouvez pas prendre moins », dit le Chapelier : « il est très facile de prendre plus que rien. » |
(Citation ci-dessus tirée d'Alice au pays des merveilles de Lewis Carroll )
Interface d'édition
Les outils d'édition de pages par défaut de MediaWiki sont réputés difficiles à maîtriser. Une enquête menée auprès d'étudiants utilisant un wiki basé sur MediaWiki a révélé que, lorsqu'on leur posait une question ouverte sur les principaux problèmes rencontrés avec le wiki, 24 % mentionnaient des problèmes techniques de mise en forme, par exemple : « Je n'arrive pas à insérer une image. Je n'arrive pas à afficher un lien avec du texte ; un chiffre s'affiche à la place. »
Pour faciliter la modification des pages longues, MediaWiki permet de modifier une sous-section (identifiée par son titre). Un utilisateur enregistré peut également indiquer si la modification est mineure ou non. La correction de l'orthographe, de la grammaire ou de la ponctuation est considérée comme une modification mineure, tandis que l'ajout de paragraphes est considéré comme une modification importante.conflit de modifications survient. Le second utilisateur a alors la possibilité de fusionner son contenu avec la page telle qu'elle existe après l'enregistrement du premier utilisateur.l'attribut HTML « lang » .API web extensible ( interface de programmation d'applications ) qui offre un accès direct et de haut niveau aux données contenues dans ses bases de données. Les programmes clients peuvent utiliser cette API pour se connecter, obtenir des données et publier des modifications. L'API prend en charge les clients JavaScript légers et les applications destinées aux utilisateurs finaux (comme les outils de lutte contre le vandalisme). Elle est également accessible depuis le 30 ] semi - automatisé populaire AutoWikiBrowser interagissent l' API . [ 31 est accessible via des URL telles que `/ etc/ mediawiki ... Un code client a été développé pour fournir des couches d' abstraction à l'API. https://en.wikipedia.org/w/api.php?action=query&list=recentchanges
Suivi des modifications
Parmi les fonctionnalités de MediaWiki facilitant le suivi des modifications, on trouve la section « Modifications récentes » qui affiche la liste des modifications récentes apportées au wiki. Cette liste contient des informations de base sur ces modifications, telles que l'utilisateur ayant effectué la modification, le résumé de la modification, la page modifiée, ainsi que les étiquettes (par exemple, « vandalisme potentiel ») ajoutées par les filtres anti-abus personnalisables et d'autres extensions afin de lutter contre les modifications inappropriées. Sur les wikis les plus actifs, le nombre de modifications est tel qu'il est difficile de suivre manuellement les modifications récentes. Des logiciels anti-vandalisme, y compris des outils assistés par l'utilisateur, sont parfois utilisés sur ces wikis pour traiter les éléments des modifications récentes. La charge du serveur peut être réduite en envoyant un flux continu des modifications récentes à un canal IRC que ces outils peuvent surveiller, ce qui leur évite d'envoyer des requêtes à l'API pour obtenir un flux de modifications récentes actualisé.
Un autre outil important est la liste de suivi. Les utilisateurs connectés disposent d'une liste de suivi personnalisée qui récapitule les modifications apportées à l'une de ces pages. Comme pour la page des modifications récentes, les modifications récentes affichées dans la liste de suivi contiennent des liens cliquables permettant de consulter facilement l'historique de l'article et les modifications spécifiques apportées.
Il est également possible de consulter toutes les modifications apportées par un utilisateur donné. Ainsi, si une modification est jugée problématique, il est possible de vérifier les autres modifications de cet utilisateur afin d'identifier d'éventuels problèmes.
MediaWiki permet de créer des liens vers des versions spécifiques d'articles. Cela s'est avéré utile pour la communauté scientifique, car des experts relecteurs ont pu analyser les articles, les améliorer et fournir des liens vers la version de référence de cet article.
Navigation
Liens Wiki
La navigation dans le wiki s'effectue principalement via des liens internes. Ces liens permettent de détecter l'existence des pages : un lien est bleu si la page cible existe sur le wiki local, et rouge dans le cas contraire. Si un utilisateur clique sur un lien rouge, il est invité à créer un article portant ce titre. Grâce à cette détection d'existence, les utilisateurs peuvent facilement créer des articles « wikiifiés » (c'est-à-dire des articles contenant des liens vers d'autres sujets pertinents) même si ces derniers n'existent pas encore.Wikiquote . Contrairement aux liens internes, les liens interwiki ne disposent pas de fonctionnalité de détection de l'existence de la page ; il est donc impossible de savoir si un lien interwiki bleu est rompu ou non.
Liens interlangues

Les liens interlangues sont les petits liens de navigation qui apparaissent dans la barre latérale de la plupart des thèmes MediaWiki et qui permettent de relier un article à des articles connexes dans d'autres langues au sein de la même famille de wikis. Cela peut créer des communautés linguistiques connectées par un contexte plus large, que tous les wikis soient hébergés sur le même serveur ou chacun sur son propre serveur.
Auparavant, Wikipédia utilisait des liens interlangues pour relier un article à d'autres articles traitant du même sujet dans d'autres éditions de Wikipédia. Ce système a été remplacé par le lancement de Wikidata.
Organisation du contenu
Onglets de page et pages associées

Les onglets de page s'affichent en haut des pages. Ils permettent aux utilisateurs d'effectuer des actions ou de consulter des pages liées à la page actuelle. Les actions disponibles par défaut incluent la consultation, la modification et la discussion de la page actuelle. Les onglets affichés dépendent de la connexion de l'utilisateur au wiki et de ses privilèges d'administrateur. Par exemple, la possibilité de déplacer une page ou de l'ajouter à sa liste de suivi est généralement réservée aux utilisateurs connectés. L'administrateur du site peut ajouter ou supprimer des onglets via JavaScript ou en installant des extensions.
Chaque page possède une page d'historique associée permettant à l'utilisateur d'accéder à toutes ses versions antérieures et de comparer deux versions de son choix. Les contributions des utilisateurs sont affichées non seulement ici, mais aussi via une option « Contributions des utilisateurs » dans une barre latérale. Dans un article de 2004, Carl Challborn et Teresa Reimann ont souligné que « bien que cette fonctionnalité puisse s'écarter légèrement de l'esprit collaboratif et désintéressé des puristes du wiki, elle peut s'avérer très utile pour les enseignants qui doivent évaluer la contribution et la participation de chaque étudiant. »
Espaces de noms
User: » ou «Talk: ») qui servent de descripteurs à son objectif et permettent à plusieurs pages aux fonctions différentes de coexister sous un même titre. Par exemple, une page intitulée « », dans l'espace de noms par défaut, pourrait décrire le film de 1984 avec Arnold Schwarzenegger , tandis qu'une page intitulée « » pourrait être le profil d'un utilisateur ayant choisi ce nom comme pseudonyme. Plus couramment, chaque espace de noms possède un espace de noms associé, « », qui peut servir à discuter de son contenu, comme « » ou « ». L'objectif des pages de discussion est de séparer le contenu des discussions qui l'entourent. des dossiers qui séparent différents types d'informations ou de fonctionnalités. Les administrateurs du site peuvent ajouter des espaces de noms personnalisés. Par défaut, il existe 16 espaces de noms pour le contenu, auxquels s'ajoutent deux pseudo-espaces de noms utilisés pour les pages générées dynamiquement Special:et les liens vers les fichiers multimédias. Chaque espace de noms sur MediaWiki est numéroté : les espaces de noms des pages de contenu ont des numéros pairs et ceux des pages de discussion associées, des numéros impairs. Étiquettes de catégorie
Les utilisateurs peuvent créer de nouvelles catégories et y ajouter des pages et des fichiers en insérant une ou plusieurs balises de catégorie dans le texte. L'ajout de ces balises crée des liens en bas de page qui redirigent le lecteur vers la liste de toutes les pages de la catégorie, facilitant ainsi la navigation parmi les articles associés. L'utilisation de la catégorisation pour organiser le contenu a été décrite comme une combinaison de :
Sous-pages
Outre les espaces de noms, le contenu peut être organisé à l'aide de sous-pages . Cette fonctionnalité simple fournit un fil d'Ariane automatique du modèle de la page suivant la barre oblique (dans ce cas, « Titre de la sous-page ») à la page précédant la barre oblique (dans ce cas, « Titre de la page »). Si cette fonctionnalité est activée, les utilisateurs peuvent personnaliser leurs feuilles de style et configurer le JavaScript côté client pour qu'il s'exécute à chaque affichage de page. Sur Wikipédia, cela a permis le développement de nombreux outils et utilitaires supplémentaires, partagés entre les utilisateurs. Par exemple, les popups de navigation sont un outil JavaScript personnalisé qui affiche un aperçu des articles lorsque l'utilisateur survole les liens et propose également des raccourcis pour les tâches de maintenance courantes. L'interface utilisateur complète de MediaWiki peut être modifiée directement dans le wiki par les utilisateurs disposant des autorisations nécessaires (généralement appelés « administrateurs »). Cette modification s'effectue via un espace de noms spécifique, préfixé par « MediaWiki: », où le titre de chaque page identifie un message particulier de l'interface utilisateur. Grâce à une extension , un utilisateur peut également créer des scripts personnels et choisir si certains scripts globaux doivent s'appliquer à lui en activant ou désactivant les options correspondantes dans ses préférences.
Modèles
L'espace de noms « MediaWiki » était initialement utilisé pour créer des blocs de texte personnalisés pouvant ensuite être chargés dynamiquement dans d'autres pages grâce à une syntaxe spéciale. Ce contenu a par la suite été déplacé dans son propre espace de noms, « Template ».accolades (par exemple «{{Disputed|date=October 2018}} »), qui appelle le modèle (ici, situé à l'adresse ) pour le charger à la place de l'appel de modèle.des documents structurés contenant des paires attribut-valeur . Ils sont définis par des paramètres auxquels sont attribuées des valeurs lors de leur insertion dans une page d'article. Le nom du paramètre est séparé de sa valeur par un signe égal . Sur Wikipédia, une catégorie de modèles appelée infoboxes permet de rassembler et de présenter un sous-ensemble d'informations sur le sujet traité, généralement en haut (version mobile) ou en haut à droite (version ordinateur) du document.copier-coller ), au lieu de charger dynamiquement le contenu du modèle à chaque chargement de la page. Cela peut entraîner des incohérences lors de l'utilisation de modèles, mais peut s'avérer utile dans certains cas, et généralement, nécessite moins de ressources serveur (le gain réel peut varier selon la configuration du wiki et la complexité du modèle).la suppression des pages, ainsi que le blocage des utilisateurs. Les contrôles des droits d'édition proposés par MediaWiki sont jugés suffisants pour la publication et la maintenance de documents importants, tels qu'un manuel de procédures opérationnelles standard dans un hôpital.
MediaWiki propose un ensemble de fonctionnalités de base pour restreindre l'accès, mais sa conception initiale et actuelle est axée sur des fonctions liées au contenu, et non à sa segmentation. De ce fait, à quelques exceptions près (concernant certains outils et leurs pages « Spéciales »), le contrôle d'accès aux pages n'a jamais été une priorité dans le développement principal. Les développeurs ont d'ailleurs indiqué que les utilisateurs exigeant un contrôle d'accès et d'autorisation sécurisé ne devraient pas se fier à MediaWiki, car ce dernier n'a jamais été conçu pour ce type de situations. Par exemple, il est extrêmement difficile de créer un wiki où seuls certains utilisateurs peuvent lire et accéder à certaines pages. Dans ce contexte, des moteurs wiki comme Foswiki , MoinMoin et Confluence offrent une plus grande flexibilité grâce à la prise en charge de mécanismes de sécurité avancés tels que les listes de contrôle d'accès .
Extensibilité
Le code source de MediaWiki contient divers points d'extension utilisant des fonctions de rappel pour ajouter du code PHP supplémentaire de manière extensible . Cela permet aux développeurs de créer des extensions sans avoir à modifier le noyau ni à soumettre leur code à une relecture. L'installation d'une extension consiste généralement à ajouter une ligne au fichier de configuration, bien que dans certains cas, des modifications supplémentaires telles que des mises à jour de la base de données ou des correctifs du noyau soient nécessaires. Les thèmes permettent aux utilisateurs de personnaliser l'apparence de MediaWiki. Un point d'extension mineur permet l'utilisation d' Amazon S3 pour héberger des fichiers image.
Extensions
Manipulation de texte

Parmi les extensions les plus populaires figure ParserFunctions, une extension de fonctions d'analyse syntaxique qui permet d'afficher un contenu différent selon le résultat d' instructions conditionnelles . Ces instructions conditionnelles peuvent effectuer des opérations telles que vérifier si un paramètre est vide, comparer des chaînes de caractères, évaluer des expressions mathématiques et renvoyer l'une des deux valeurs selon qu'une page existe ou non. Elle a été conçue pour remplacer un modèle notoirement inefficace appelé {{Qif}} . Schindler retrace l'historique de l'extension ParserFunctions comme suit :
En 2006, certains contributeurs de Wikipédia ont découvert qu'en exploitant l'interaction complexe des modèles et du CSS, ils pouvaient créer du texte conditionnel, c'est-à-dire du texte affiché uniquement si un paramètre de modèle avait une valeur spécifique. Cette pratique incluait des appels répétés de modèles à l'intérieur d'autres modèles, ce qui ralentissait considérablement le système. Les développeurs se sont trouvés face à un dilemme : soit empêcher la diffusion de cette fonctionnalité pourtant très demandée en détectant son utilisation et en la bannissant explicitement dans le logiciel, soit proposer une alternative efficace. C'est cette dernière option qui a été choisie par Tim Starling, qui a annoncé l'introduction des fonctions d'analyse syntaxique : du texte wiki appelant des fonctions implémentées dans le logiciel sous-jacent. Dans un premier temps, seuls le texte conditionnel et le calcul d'expressions mathématiques simples ont été implémentés, mais cela a déjà considérablement élargi les possibilités offertes aux contributeurs. Avec le temps, d'autres fonctions d'analyse syntaxique ont été introduites, aboutissant finalement à un cadre permettant d'écrire facilement des fonctions d'extension pour ajouter des fonctionnalités arbitraires, comme par exemple des services de géocodage ou des widgets. Cette fois-ci, les développeurs ont clairement réagi à la demande de la communauté, étant contraints soit de s'opposer à la solution proposée par la communauté (à savoir le texte conditionnel), soit de proposer une implémentation technique améliorée pour remplacer la pratique précédente et obtenir des performances globales supérieures.
Une autre extension d'analyse syntaxique, StringFunctions, a été développée pour permettre l'évaluation de la longueur et de la position des chaînes de caractères. Les communautés Wikimedia, ayant créé des solutions de contournement complexes pour obtenir les mêmes fonctionnalités, ont réclamé son activation sur leurs projets. Une grande partie de ses fonctionnalités a finalement été intégrée à l'extension ParserFunctions, mais désactivée par défaut et accompagnée d'un avertissement de Tim Starling : activer les fonctions de chaînes permettrait aux utilisateurs « d'implémenter leurs propres analyseurs syntaxiques dans le langage de programmation le plus laid et le plus inefficace qui soit : le wikitexte MediaWiki avec ParserFunctions ».
Extension Lua
Depuis 2012, une extension, Scribunto, permet de créer des « modules » — des pages wiki écrites en Lua — qui peuvent ensuite être intégrées à des modèles et des pages wiki standard. Scribunto est installé sur Wikipédia et d’autres sites Wikimedia depuis 2013 et y est largement utilisé. Le code Scribunto s’exécute nettement plus rapidement que le code wikitexte correspondant utilisant ParserFunctions.
Pour les notes de bas de page et l'affichage à caractère académique
Une autre extension très populaire permet d'ajouter des notes de bas de page aux pages à l'aide de références intégrées. Cette extension a cependant été critiquée pour sa complexité d'utilisation et la nécessité de mémoriser une syntaxe complexe. Un outil appelé RefToolbar vise à simplifier la création de citations grâce à des modèles courants. MediaWiki propose des extensions particulièrement adaptées au milieu universitaire, comme des extensions mathématiques et une extension permettant le rendu de molécules en 3D .
Intégration
Il existe une extension générique de widgets permettant à MediaWiki de s'intégrer à pratiquement n'importe quel système. Parmi les autres exemples d'extensions susceptibles d'améliorer un wiki, on peut citer les extensions de suggestion de catégories et celles permettant l'intégration de vidéos Flash , de vidéos YouTube et de flux RSS . Metavid , un site qui archive les enregistrements vidéo des débats du Sénat et de la Chambre des représentants des États-Unis, a été créé à l'aide d'un code étendant MediaWiki au domaine de la création vidéo collaborative
Lutter contre le spam de liens
De nombreux robots spammeurs parcourent le web à la recherche d'installations MediaWiki et y ajoutent des liens indésirables , malgré l'utilisation de l' attribut nofollow par MediaWiki pour dissuader ces tentatives d' optimisation pour les moteurs de recherche . Une partie du problème réside dans le fait que les sites de republication tiers, tels que les sites miroirs , n'implémentent pas toujours l'attribut nofollow sur leurs plateformes. Les spécialistes du marketing peuvent ainsi bénéficier d'un meilleur PageRank en insérant des liens dans les pages lorsque celles-ci apparaissent sur des sites tiers. Des extensions anti-spam ont été développées pour lutter contre ce problème, notamment par l'introduction de CAPTCHA , le blocage de certaines URL, et la possibilité de supprimer en masse les pages récemment ajoutées par un utilisateur.
Recherches et requêtes

MediaWiki est livré avec une recherche textuelle standard préinstallée. Des extensions permettent à MediaWiki d'utiliser des moteurs de recherche tiers plus sophistiqués, notamment Elasticsearch (utilisé sur Wikipédia depuis 2014), Lucene et Sphinx .
Diverses extensions MediaWiki ont également été créées pour permettre une recherche à facettes plus complexe , aussi bien sur les données saisies dans le wiki que sur les métadonnées telles que l'historique des révisions des pages. Semantic MediaWiki est l'une de ces extensions.
Contenu riche

Diverses extensions de MediaWiki prennent en charge des contenus riches générés grâce à une syntaxe spécialisée. Il s'agit notamment de formules mathématiques utilisant LaTeX , de chronologies graphiques superposées à des graphiques mathématiques , de partitions musicales et de hiéroglyphes égyptiens .métadonnées Exif . MediaWiki gère Wikimedia Commons , l'une des plus importantes archives multimédias libres de droits .l'éditeur visuel VisualEditor est disponible dans MediaWiki, ce qui simplifie le processus d'édition pour les contributeurs. Il est intégré à MediaWiki depuis la version 1.35. D'autres extensions existent pour gérer l'édition WYSIWYG à différents degrés.
Base de données

MediaWiki peut utiliser les systèmes de gestion de bases de données relationnelles MySQL / MariaDB , PostgreSQL ou SQLite . La prise en charge d' Oracle Database et de Microsoft SQL Server a été abandonnée depuis MediaWiki 1.34. Une base de données MediaWiki contient plusieurs dizaines de tables , dont une table contenant les titres des pages, leurs identifiants et d'autres métadonnées ; et une table dans laquelle une nouvelle ligne est ajoutée à chaque modification, contenant l'identifiant de la page, un bref résumé textuel de la modification effectuée, le nom d'utilisateur de l'éditeur (ou son adresse IP pour un utilisateur non enregistré) et un horodatage. pagerevision
Au cours des quatre années et demie précédant 2008, la base de données MediaWiki a connu 170 versions de schéma . La modification de schéma la plus importante a probablement eu lieu en 2005 avec MediaWiki 1.5, lorsque le stockage des métadonnées a été séparé de celui du contenu afin d'améliorer la flexibilité des performances. Lors de cette mise à jour de Wikipédia, le site a été bloqué et le schéma a été converti vers la nouvelle version en environ 22 heures. Certaines propositions d'amélioration logicielle, comme celle permettant de suivre des sections d'articles via une liste de suivi, ont été rejetées car les modifications de schéma nécessaires auraient entraîné une interruption de service excessive pour Wikipédia.
Performances et stockage
Étant donné qu'il héberge Wikipédia, l'un des sites web les plus fréquentés, MediaWiki bénéficie d'une optimisation poussée de ses performances et de son évolutivité . MediaWiki prend en charge Squid , la réplication de base de données avec répartition de charge , la mise en cache côté client, la mise en cache par memcached ou par table pour le traitement des résultats de requêtes fréquemment consultés, un cache de fichiers statiques simple, un fonctionnement simplifié, la compression des révisions et une file d'attente pour les opérations de base de données. Les développeurs de MediaWiki ont cherché à optimiser le logiciel en évitant les algorithmes et requêtes de base de données coûteux, en mettant en cache tous les résultats coûteux et présentant une localité temporelle de référence, et en se concentrant sur les points critiques du code grâce au profilage .
Le code de MediaWiki est conçu pour permettre l'écriture de données dans une base de données en lecture-écriture et la lecture depuis des bases de données en lecture seule. Toutefois, la base de données en lecture-écriture peut être utilisée pour certaines opérations de lecture si les bases de données en lecture seule ne sont pas encore à jour. Les métadonnées , telles que l'historique des révisions des articles, leurs relations (liens, catégories, etc.), les comptes utilisateurs et les paramètres, peuvent être stockées dans les bases de données principales et mises en cache. Le texte des révisions, plus rarement utilisé, peut être stocké sous forme de blobs en mode ajout uniquement sur un support de stockage externe. Ce logiciel est adapté à la gestion de vastes fermes de wikis comme Wikimedia , qui comptait environ 800 wikis en août 2011. Cependant, MediaWiki ne dispose pas d'interface graphique intégrée pour administrer de telles installations.des taux de compression de données très élevés , jusqu'à 100×.
Pour plus d'informations sur l'architecture, notamment sur la manière dont elle stocke le wikitexte et assemble une page, consultez la section Liens externes .
Limites
L'analyseur syntaxique fait office de norme de facto pour la syntaxe MediaWiki, aucune syntaxe formelle n'ayant été définie. En raison de cette absence de définition formelle, il a été difficile de créer des éditeurs WYSIWYG pour MediaWiki, bien que plusieurs extensions WYSIWYG existent, dont le populaire VisualEditor .
MediaWiki n’est pas conçu pour remplacer les logiciels de forum ou de blog en ligne dédiés, bien que des extensions existent pour permettre ces deux usages.
Il est fréquent que les nouveaux utilisateurs de MediaWiki commettent certaines erreurs, comme oublier de signer leurs messages avec quatre tildes ( ~~~~ ) ou saisir manuellement une signature en texte brut , faute de familiarité avec les spécificités de la communication sur les pages de discussion MediaWiki. Par ailleurs, un enseignant a souligné la qualité de ces pages de discussion , affirmant qu'elles offrent des possibilités de discussion plus précises que les forums de discussion traditionnels. Par exemple, au lieu de répondre à un message entier, un participant peut créer un lien hypertexte vers une nouvelle page wiki à partir de n'importe quel mot de la page originale. Les discussions sont plus faciles à suivre, car le contenu est accessible via des pages wiki hyperliées, plutôt que sous forme de réponses à un message dans un forum de discussion classique. Cependant, à quelques rares exceptions près, les étudiants n'utilisaient pas cette fonctionnalité, probablement parce qu'ils étaient habitués au style de discussion linéaire traditionnel et qu'ils manquaient d'instructions sur la manière d'enrichir leur contenu de liens .
Par défaut, MediaWiki offre peu de possibilités pour la création de documents assemblés dynamiquement ou de pages agrégeant des données provenant d'autres pages. Des recherches ont été menées sur l'activation directe de ces fonctionnalités au sein de MediaWiki. L' extension Semantic MediaWiki propose ces fonctionnalités. Elle n'est pas utilisée sur Wikipédia, mais dans plus de 1 600 autres installations MediaWiki. Le dépôt Wikibase et son client sont quant à eux implémentés respectivement dans Wikidata et Wikipédia , et offrent, dans une certaine mesure, des fonctionnalités du Web sémantique , ainsi que la liaison de données stockées de manière centralisée aux infoboxes de divers articles de Wikipédia.les requêtes SQL et la génération de code HTML sont généralement effectuées via des fonctions d'encapsulation qui gèrent la validation, l'échappement et le filtrage afin de prévenir les attaques XSS (Cross-Site Scripting) et les injections SQL . De nombreuses failles de sécurité ont dû être corrigées après la publication d'une nouvelle version de MediaWiki, et en 2010, MediaWiki.org a déclaré : « La mesure de sécurité la plus importante que vous puissiez prendre est de maintenir votre logiciel à jour » en vous abonnant à la liste de diffusion des annonces et en installant les mises à jour de sécurité publiées.
Incidents
Check Point a signalé 3 vulnérabilités d'exécution de code à distance trouvées dans MediaWiki entre 2006 et 2014.
En mars 2026, un ver JavaScript auto-réplicatif a modifié les fichiers JavaScript des utilisateurs sur Meta-Wiki et était conçu pour écraser le fichier JavaScript global de MediaWiki s'il avait infecté le fichier JavaScript d'un utilisateur autorisé à le modifier. L'édition a été suspendue sur tous les comptes pendant l'enquête sur le ver et l'annulation des modifications.
Soutien
L'assistance aux utilisateurs de MediaWiki comprend :
- MediaWiki.org, y compris le service d'assistance.
- Listes de diffusion, y compris la liste de diffusion officielle, Mediawiki-l.
- Plusieurs ouvrages ont été écrits sur l'administration de MediaWiki, dont certains sont disponibles gratuitement en ligne.
Licence
MediaWiki est un logiciel libre et open source distribué sous les termes de la licence publique générale GNU version 2 ou ultérieure. Sa documentation, disponible sur son site web officiel www.mediawiki.org, est publiée sous la licence Creative Commons BY-SA 4.0 . Un ensemble de pages d'aide est conçu pour être librement copié dans les nouvelles installations wiki et/ou distribué avec le logiciel MediaWiki dans le domaine public , afin d'éviter tout problème juridique avec les wikis sous d'autres licences. Le développement de MediaWiki a généralement privilégié l'utilisation de formats multimédias open source .
Développement
MediaWiki bénéficie d'une communauté de bénévoles active pour son développement et sa maintenance. Les développeurs de MediaWiki sont répartis dans le monde entier, mais la majorité se trouve aux États-Unis et en Europe. Des réunions et des sessions de programmation en présentiel sont organisées pour les développeurs de MediaWiki une ou plusieurs fois par an depuis 2004. des correctifs au dépôt Git / Gerrit du projet . Des programmeurs rémunérés développent également des projets, principalement pour la Fondation Wikimedia . Les développeurs de MediaWiki participent au Google Summer of Code en facilitant l'attribution de mentors aux étudiants souhaitant travailler sur le noyau et les extensions de MediaWiki. Au cours de l'année précédant novembre 2012, environ deux cents développeurs ont contribué au noyau ou aux extensions de MediaWiki. Les versions majeures de MediaWiki sont générées environ tous les six mois par la prise d'instantanés de la branche de développement, maintenue en permanence dans un état exécutable ; des versions mineures , ou correctifs ponctuels , sont publiées au besoin pour corriger les bogues (notamment les failles de sécurité). MediaWiki est développé selon un modèle d' intégration continue , dans lequel les modifications logicielles sont déployées régulièrement sur les sites Wikimedia. MediaWiki dispose également d'un système public de suivi des bogues , phabricator.wikimedia.org , qui utilise Phabricator . Ce site sert également aux demandes de nouvelles fonctionnalités et d'améliorations .
Lors de son lancement en janvier 2001, Wikipédia utilisait le système logiciel wiki existant UseModWiki . Ce logiciel, écrit en Perl , stockait toutes les pages wiki dans des fichiers texte ( .txt ). Il s'est rapidement avéré limité, tant en termes de fonctionnalités que de performances. Mi-2001, Magnus Manske , développeur et étudiant à l' Université de Cologne , également contributeur à Wikipédia , a commencé à travailler sur un nouveau logiciel destiné à remplacer UseModWiki. Conçu spécifiquement pour Wikipédia, ce logiciel était écrit en PHP et stockait toutes ses données dans une base de données MySQL . Le développement du nouveau logiciel était quasiment terminé le 24 août 2001, et un wiki de test a été créé peu après.
La première implémentation complète de ce logiciel fut la nouvelle Meta Wikipédia, le 9 novembre 2001. On souhaitait l'intégrer immédiatement à Wikipédia en anglais. Cependant, Manske craignait que d'éventuels bogues n'affectent le site web naissant pendant la période des examens finaux qu'il devait passer juste avant Noël ; ce qui a retardé le lancement sur Wikipédia en anglais jusqu'au 25 janvier 2002. Le logiciel fut ensuite déployé progressivement sur tous les sites Wikipédia linguistiques de l'époque. Ce logiciel était désigné comme « script PHP » et comme « phase II », tandis que l'appellation « phase I » était attribuée rétroactivement à l'utilisation de UseModWiki.
L'augmentation de l'utilisation a rapidement entraîné de nouveaux problèmes de charge, et peu après, une nouvelle réécriture du logiciel a été entreprise, cette fois par Lee Daniel Crocker . Cette version, connue sous le nom de « phase III », était également écrite en PHP, avec une base de données MySQL. Elle conservait l'interface de base de la phase II, tout en offrant une meilleure évolutivité . La version « phase III » a été mise en ligne sur Wikipédia en juillet 2002.
La Fondation Wikimedia a été annoncée le 20 juin 2003. En juillet, le contributeur de Wikipédia, Daniel Mayer, a suggéré le nom « MediaWiki » pour le logiciel, en guise de jeu de mots sur « Wikimedia ». Le nom MediaWiki a été progressivement introduit, à partir d'août 2003. Le nom a souvent semé la confusion en raison de sa similitude (intentionnelle) avec le nom « Wikimedia » (qui lui-même est similaire à « Wikipédia »). La première version de MediaWiki, 1.1, a été publiée en décembre 2003.

L'ancien logo du produit a été créé par Erik Möller à partir d'une photographie de fleur prise par Florence Nibart-Devouard . Il avait été initialement soumis au concours de logo pour Wikipédia , qui s'est tenu du 20 juillet au 27 août 2003. Arrivé en troisième position, il a été choisi pour représenter MediaWiki plutôt que Wikipédia, le logo arrivé deuxième étant celui de la Fondation Wikimedia. Les doubles crochets ( [[ ]] ) symbolisent la syntaxe utilisée par MediaWiki pour créer des hyperliens vers d'autres pages wiki ; le tournesol, quant à lui , représente la diversité du contenu de Wikipédia, sa croissance constante et l'immensité de la nature.
Lors d'une conférence donnée en 2006 chez Google parBrion Vibber , comme l'a souligné l'auteur de la présentation, travaillait pour Wikimedia depuis environ quatre ans et était, jusqu'à récemment, le seul employé à temps plein rémunéré pour la partie technique. Cette remarque mettait en lumière l'important travail bénévole que cela impliquait. Dans un ouvrage de 2007, il est mentionné que Brion Vibber était le directeur technique de l'organisation Wikipédia.
Les principales étapes du développement de MediaWiki comprennent : le système de catégorisation (2004) ; les fonctions d’analyse syntaxique (2006) ; les révisions marquées (2008) ; le « ResourceLoader », un système de distribution pour CSS et JavaScript (2011) ; et l’ Éditeur visuel , une plateforme d’édition « ce que vous voyez est ce que vous obtenez » ( WYSIWYG ) (2013).
Le concours de création d'un nouveau logo a été lancé le 22 juin 2020, car l'ancien logo était une image bitmap très détaillée, ce qui posait des problèmes d'affichage à haute et basse résolution. Après deux tours de vote, le nouveau logo de MediaWiki, conçu par ![]()
L'utilisation la plus célèbre de MediaWiki a été celle de Wikipédia et, dans une moindre mesure, des autres projets de la Fondation Wikimedia. Fandom , un service d'hébergement wiki anciennement connu sous le nom de Wikia, fonctionne sur MediaWiki. D'autres wikis publics fonctionnant sur MediaWiki incluent wikiHow et SNPedia . WikiLeaks a commencé comme un site basé sur MediaWiki, mais n'est plus un wiki.
Un certain nombre d'encyclopédies wiki alternatives à Wikipédia fonctionnent sur MediaWiki, notamment Citizendium , Metapedia , Scholarpedia et Conservapedia . MediaWiki est également utilisé en interne par un grand nombre d'entreprises, dont Novell et Intel .
Parmi les utilisations notables de MediaWiki au sein des gouvernements, on peut citer Intellipedia , utilisée par la communauté du renseignement des États-Unis , Diplopedia , utilisée par le département d'État américain , et milWiki, composante de milSuite utilisée par le département de la Défense des États-Unis . Des agences des Nations Unies telles que le Programme des Nations Unies pour le développement ( PNUD) et INSTRAW ont choisi d'implémenter leurs wikis avec MediaWiki, car « ce logiciel héberge Wikipédia et est donc garanti d'être rigoureusement testé, continuera d'être développé pendant longtemps, et les futurs techniciens intervenant sur ces wikis seront plus susceptibles d'être exposés à MediaWiki qu'à tout autre logiciel wiki. »
La Free Software Foundation utilise MediaWiki pour implémenter le site LibrePlanet .
Comparaison avec d'autres logiciels de collaboration en ligne
Une étude menée en 2009 à l' Université de Hong Kong a comparé TWiki à MediaWiki. Les auteurs ont constaté que TWiki est principalement utilisé comme outil collaboratif pour l'élaboration de travaux universitaires et de projets techniques, tandis que MediaWiki est surtout connu pour son utilisation sur Wikipédia. Bien que les deux plateformes permettent les discussions et le suivi de l'avancement des travaux, TWiki dispose d'une fonction « Rapport » absente de MediaWiki. Les étudiants ont jugé MediaWiki plus facile et plus agréable à utiliser que TWiki. Interrogés sur leur recommandation d'utiliser MediaWiki pour un projet de groupe dans le cadre d'un cours de gestion des connaissances , 15 des 16 répondants ont exprimé leur préférence pour MediaWiki, donnant des réponses très catégoriques, telles que « bien sûr » ou « sans aucun doute ». TWiki et MediaWiki possèdent tous deux une architecture de plugins flexible. Une autre étude menée en 2009 à Hong Kong, comparant l'expérience des étudiants avec MediaWiki à celle avec Google Docs, a révélé que les étudiants préféraient globalement MediaWiki pour la gestion de l'information et attribuaient une meilleure note à Google Docs pour son interface utilisateur conviviale.
Une étude de 2021 menée par l' Institut brésilien d'ingénierie nucléaire a comparé un système de gestion des connaissances basé sur MediaWiki à deux autres systèmes basés respectivement sur DSpace et Open Journal Systems . Elle a mis en évidence la facilité d'utilisation comme un avantage du système MediaWiki, soulignant que, la Fondation Wikimedia ayant développé MediaWiki pour un site destiné au grand public (Wikipédia), « son interface utilisateur a été conçue dès le départ pour être plus conviviale et a bénéficié de nombreux retours d'utilisateurs sur une longue période », contrairement à DSpace et OJS, qui ciblent des publics de niche.
Dans une interview de 2025, deux responsables d'ArchWiki (qui utilise MediaWiki) ont indiqué que le langage de balisage constituait le principal problème de MediaWiki. Ils l'ont qualifié d'« étrange », de « fragile » et ont souligné la difficulté d'écrire un analyseur syntaxique pour un langage sans spécification formelle. Klinkovský a recommandé aux nouveaux projets qui n'apprécient pas le balisage de MediaWiki de se tourner vers les wikis utilisant Markdown . Ils ont toutefois salué la large utilisation de MediaWiki et son API.