GeSHi

De Banane Atomic
Aller à la navigationAller à la recherche

Présentation

SyntaxHighlight est une extension qui permet de mettre en couleur le code source.
Cette extension utilise le moteur de coloration syntaxique GeSHi (Generic Syntax Highlighter).

Depuis Juin 2015, SyntaxHighlight utilise Pygments à la place de Geshi

Installation

  • Télécharger l'extension SyntaxHighlight_GeSHi
  • Dé-zipper le dossier « SyntaxHighlight_GeSHi » dans le dossier « extensions »
  • Ajouter au fichier « LocalSettings.php » : « require_once( "$IP/extensions/geshi/geshi.php" ); »

Utilisation

Mediawiki.svg
<syntaxhighlight lang="csharp">
...
</syntaxhighlight_>

Langage par défaut

Php.svg
# A ajouter au fichier LocalSettings.php
require_once("$IP/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.php");
$wgSyntaxHighlightDefaultLang = "csharp";

Background color

Pour permettre l'édition du background il faut modifier le fichier « SyntaxHighlight_GeSHi.class.php ». site web

Php.svg
// dans la fonction parserHook
static $codeAreaNumber = 0;
$codeAreaNumber += 1;

if( isset( $args['backgroundcolor'] ) && $args['backgroundcolor'] ) {
    $backgroundcolor = $args['backgroundcolor'];
    $geshi->set_overall_style('background-color: '.$backgroundcolor, true);
}
$geshi->set_overall_id( 'codeArea'.$codeAreaNumber );
Mediawiki.svg
<syntaxhighlight lang="csharp" backgroundcolor="#0B4051">
    ...
</syntaxhighlight_>

CSS

La page MediaWiki:Geshi.css peut contenir du code CSS destiné à Geshi.

Css.svg
/* couleurs par défaut */
.mw-geshi {
    background-color: white;
    color: black;
}

/* couleurs spécifiques pour C# */
.csharp {
    background-color: #084152;
    color: #CFEDE2;
}

/* couleur du texte sélectionné */
.csharp pre::-moz-selection, .csharp pre span::-moz-selection {
    background: black;
}

Fichiers de langue

Site web

Dans les expressions rationnelles $ / { } ont besoins d'être échappé 2 fois.

Expressions rationnelles

GESHI_SEARCH l'expression à rechercher
GESHI_REPLACE le groupe cible
GESHI_MODIFIERS u → utf8
i → insensible à la casse
GESHI_BEFORE le groupe situé avant le groupe cible
GESHI_AFTER le groupe situé après le groupe cible

Problèmes avec: class, < >

STRINGS

Ils sont définis avec les QUOTEMARKS.
Les REGEXPS, KEYWORDS et SYMBOLS ne s'appliquent pas dans les STRINGS