SyntaxHighlight

De Banane Atomic
Aller à la navigationAller à la recherche

Liens

Ajouter un nouveau lexer

La version de Pygments fournit avec Mediawiki ne permet pas d'ajouter de nouveaux lexers.
Il faut donc installer Pygments et demander à Mediawiki d'utiliser plutôt cette version.

Bash.svg
pacman -S pygmentize

Création du nouveau lexer

Bash.svg
# mise à jour du fichier de mapping: _mapping.py
cd /usr/lib/python3.5/site-packages/pygments/lexers
python ./_mapping.py

# lister tous les lexers pour vérifier que le nouveau lexer a bien été ajouté
pygmentize -L lexer

# tester le lexer: créer un fichier test.html contenant la coloration syntaxique
pygmentize -l mon_lexer -O full -f html -o test.html test.ext

Intégration dans Mediawiki

LocalSettings.php
// forcer Mediawiki a utiliser la version installée au lieu de la version fournie
$wgPygmentizePath = '/usr/bin/pygmentize';
Bash.svg
# mettre à jour la liste des lexers:
# /usr/share/webapps/mediawiki/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.lexers.php
cd /usr/share/webapps/mediawiki/extensions/SyntaxHighlight_GeSHi
php maintenance/updateLexerList.php

Configuration

LocalSettings.php
# par défaut
# $wgPygmentizePath = '/usr/share/webapps/mediawiki/extensions/SyntaxHighlight_GeSHi/pygments/pygmentize';
$wgPygmentizePath = '/usr/bin/pygmentize';

Pygments style

Changer default par un autre style: native

/usr/share/webapps/mediawiki/extensions/SyntaxHighlight_GeSHi/maintenance/updateCSS.php
$process = $builder
	->add( '-f' )->add( 'html' )
	->add( '-S' )->add( 'native' )
	->add( '-a' )->add( '.' . SyntaxHighlight_GeSHi::HIGHLIGHT_CSS_CLASS )
	->getProcess();
Bash.svg
cd /usr/share/webapps/mediawiki/extensions/SyntaxHighlight_GeSHi
php maintenance/updateCSS.php
# écrase le fichier /usr/share/webapps/mediawiki/extensions/SyntaxHighlight_GeSHi/modules/pygments.generated.css
/etc/php/php.ini
open_basedir = /usr/share/webapps/mediawiki/cache/

Installation

Télécharger l'archive et placer le dossier SyntaxHighlight_GeSHi dans /usr/share/webapps/mediawiki/extensions

LocalSettings.php
wfLoadExtension( 'SyntaxHighlight_GeSHi' );

composer

L'installation de composer est-elle nécessaire ?

Bash.svg
sudo pacman -S php-composer

# aller dans le dossier de l'extension
cd /usr/share/webapps/mediawiki/extensions/SyntaxHighlight_GeSHi
composer install
composer update

PHP Fatal error: Class 'Phar' not found in /usr/bin/composer on line 23

/etc/php/php.ini
extension=phar.so

open_basedir restriction in effect. File(/usr/bin/composer) is not within the allowed path(s)

/etc/php/php.ini
open_basedir = /usr/bin/composer

open_basedir restriction in effect. File(/root/.composer/.htaccess)

/etc/php/php.ini
open_basedir = /root/.composer