Ajout d'une extension dans MediaWiki
Installation de l’extension SyntaxHighlight sur MediaWiki Dockerisé
[modifier]📋 Vue d’ensemble
[modifier]Cette procédure permet d’ajouter l’extension de coloration syntaxique SyntaxHighlight_GeSHi à une instance de Modèle:ENTITY exécutée dans un conteneur Modèle:ENTITY.
L’installation comprend :
- l’installation de l’extension
- l’installation de Pygments
- l’activation dans
LocalSettings.php - le redémarrage du conteneur
🔎 1. Identifier le conteneur MediaWiki
[modifier]Afficher les conteneurs en cours d’exécution :
<syntaxhighlight lang="bash"> docker ps </syntaxhighlight>
Repérer le conteneur MediaWiki puis entrer dedans :
<syntaxhighlight lang="bash"> docker exec -it NOM_DU_CONTAINER bash </syntaxhighlight>
ou :
<syntaxhighlight lang="bash"> docker exec -it NOM_DU_CONTAINER sh </syntaxhighlight>
📁 2. Accéder au dossier MediaWiki
[modifier]Dans la majorité des images Docker officielles :
<syntaxhighlight lang="bash"> cd /var/www/html </syntaxhighlight>
Vérifier la présence des dossiers MediaWiki :
<syntaxhighlight lang="bash"> ls </syntaxhighlight>
Résultat attendu :
<syntaxhighlight lang="text"> extensions includes skins LocalSettings.php </syntaxhighlight>
⬇️ 3. Installer l’extension SyntaxHighlight
[modifier]Se placer dans le dossier des extensions :
<syntaxhighlight lang="bash"> cd extensions </syntaxhighlight>
Télécharger l’extension :
<syntaxhighlight lang="bash"> git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/SyntaxHighlight_GeSHi.git SyntaxHighlight_GeSHi </syntaxhighlight>
Si Git n’est pas installé
[modifier]Debian / Ubuntu
[modifier]<syntaxhighlight lang="bash"> apt update apt install -y git </syntaxhighlight>
Alpine Linux
[modifier]<syntaxhighlight lang="bash"> apk add git </syntaxhighlight>
🐍 4. Installer Pygments
[modifier]L’extension nécessite l’outil pygmentize.
Vérifier sa présence :
<syntaxhighlight lang="bash"> which pygmentize </syntaxhighlight>
Installation sur Debian / Ubuntu
[modifier]<syntaxhighlight lang="bash"> apt update apt install -y python3-pygments </syntaxhighlight>
Installation sur Alpine
[modifier]<syntaxhighlight lang="bash"> apk add py3-pygments </syntaxhighlight>
Vérifier le fonctionnement :
<syntaxhighlight lang="bash"> pygmentize -V </syntaxhighlight>
⚙️ 5. Activer l’extension
[modifier]Modifier le fichier LocalSettings.php :
<syntaxhighlight lang="bash"> nano /var/www/html/LocalSettings.php </syntaxhighlight>
Ajouter à la fin du fichier :
<syntaxhighlight lang="php"> wfLoadExtension( 'SyntaxHighlight_GeSHi' ); </syntaxhighlight>
🔄 6. Redémarrer le conteneur
[modifier]Quitter le shell du conteneur puis exécuter :
<syntaxhighlight lang="bash"> docker restart NOM_DU_CONTAINER </syntaxhighlight>
✅ 7. Vérification
[modifier]Créer une page de test avec le contenu suivant :
<syntaxhighlight lang="wiki"> <syntaxhighlight lang="python"> print("Hello") </syntaxhighlight> </syntaxhighlight>
Résultat attendu : affichage coloré du code Python.
🔍 8. Vérification dans MediaWiki
[modifier]Accéder à :
<syntaxhighlight lang="text"> Spécial:Version </syntaxhighlight>
Vérifier la présence de :
- SyntaxHighlight
- Pygments
🐳 9. Méthode Docker Compose recommandée
[modifier]Si le conteneur est régulièrement recréé, les modifications manuelles seront perdues.
Il est recommandé de créer une image Docker personnalisée.
Exemple Dockerfile
[modifier]<syntaxhighlight lang="docker"> FROM mediawiki:latest
RUN apt update && \
apt install -y git python3-pygments
WORKDIR /var/www/html/extensions
RUN git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/SyntaxHighlight_GeSHi.git </syntaxhighlight>
Exemple docker-compose.yml
[modifier]<syntaxhighlight lang="yaml"> services:
mediawiki:
build: .
ports:
- "8080:80"
</syntaxhighlight>
⚠️ 10. Cas des versions récentes de MediaWiki
[modifier]Certaines versions récentes de MediaWiki incluent déjà l’extension.
Vérifier avec :
<syntaxhighlight lang="bash"> ls /var/www/html/extensions </syntaxhighlight>
Si le dossier SyntaxHighlight_GeSHi existe déjà, il suffit d’ajouter :
<syntaxhighlight lang="php"> wfLoadExtension( 'SyntaxHighlight_GeSHi' ); </syntaxhighlight>
dans LocalSettings.php.
🛠️ 11. Mise à jour de MediaWiki
[modifier]Après installation d’une extension, exécuter :
<syntaxhighlight lang="bash"> docker exec -it NOM_DU_CONTAINER bash -c " cd /var/www/html && php maintenance/update.php " </syntaxhighlight>
Cela applique les éventuelles mises à jour nécessaires.
📚 Exemple d’utilisation
[modifier]Python
[modifier]<syntaxhighlight lang="wiki"> <syntaxhighlight lang="python"> for i in range(5):
print(i)
</syntaxhighlight> </syntaxhighlight>
Bash
[modifier]<syntaxhighlight lang="wiki"> <syntaxhighlight lang="bash"> docker ps </syntaxhighlight> </syntaxhighlight>
YAML
[modifier]<syntaxhighlight lang="wiki"> <syntaxhighlight lang="yaml"> services:
mediawiki: image: mediawiki
</syntaxhighlight> </syntaxhighlight>