Aide:Coloration syntaxique

Une page de Wikiversité, la communauté pédagogique libre.

Cette page d'aide présente la manière d'afficher des codes sources automatiquement colorés, grâce au principe de la coloration syntaxique.

La coloration syntaxique s'utilise avec la balise <source>. La balise source doit contenir le paramètre lang permettant de préciser le langage qui devra être coloré.

Par exemple, pour un texte en php, le code


<source lang="php">
<?php
    $v = "string";    // sample initialization
?>
html text
<?php
    echo $v;         // end of php code
?>
</source>

donnera :

<?php
    $v = "string";    // sample initialization
?>
html text
<?php
    echo $v;         // end of php code
?>

Pour que du C# soit coloré, il suffit de modifier le paramètre lang. Par exemple :


<source lang="csharp">
// Bonjour le monde in Microsoft C# ("C-Sharp").

using System;

class HelloWorld
{
    public static int Main(String[] args)
    {
        Console.WriteLine("Bonjour, le monde!");
        return 0;
    }
}
</source>

donnera :

// Bonjour le monde in Microsoft C# ("C-Sharp").

using System;

class HelloWorld
{
    public static int Main(String[] args)
    {
        Console.WriteLine("Bonjour, le monde!");
        return 0;
    }
}

lang[modifier | modifier le wikicode]

Le paramètre lang permet de définir le langage informatique utilisé. La liste des langages supportés est disponible plus bas.

line[modifier | modifier le wikicode]

Le paramètre line permet d'activer l’affichage des numéros de ligne devant chaque ligne.

Par exemple, le code suivant :


<source lang="php" line>
<?php
  // Bonjour le monde in PHP
  echo 'Bonjour le monde!';
?>
</source>

donnera :

<?php
  // Bonjour le monde in PHP
  echo 'Bonjour le monde!';
?>

start[modifier | modifier le wikicode]

Le paramètre start permet de définir à partir de quel numéro le numérotage des lignes doit être effectué. Ce paramètre est très pratique pour expliquer des morceaux de codes en détails tout en conservant la numérotation des lignes du programme entier. Le lecteur peut ainsi comprendre des bouts de code tout en les situant dans le programme dans son ensemble.

Par exemple, le code suivant :


<source lang="php" line start=5>
<?php
  // Bonjour le monde in PHP
  echo 'Bonjour le monde!';
?>
</source>

donnera :

<?php
  // Bonjour le monde in PHP
  echo 'Bonjour le monde!';
?>

enclose[modifier | modifier le wikicode]

Le paramètre enclose permet de définir la balise HTML qui contiendra le code. Ce paramètre peut prendre trois valeurs pre (par défaut), div (le code HTML généré est plus lourd, les espaces et retours à la ligne étant rajoutés) ou none (équivaut à pre ?).

Voilà ce que donnent les trois paramètres sur l'exemple précédent :

  • avec enclose=pre
<?php
  // Bonjour le monde in PHP
  echo 'Bonjour le monde!';
?>
  • avec enclose=div
<?php
  // Bonjour le monde in PHP
  echo 'Bonjour le monde!';
?>
  • avec enclose=none

<?php // Bonjour le monde in PHP echo 'Bonjour le monde!'; ?>

strict[modifier | modifier le wikicode]

Le paramètre strict permet d'activer le mode strict. Ce mode n'a d'effet que sur les langages de script (comme PHP) et a pour effet d'activer la coloration syntaxique uniquement entre les délimiteurs de code appropriés (<?php et ?> par exemple). Un exemple en PHP + HTML

  • mode normal
<source lang="php">
<div style="color:#FF0000;">
<?php
  // Bonjour le monde in PHP
  echo 'Bonjour le monde!';
?>
</div>
</source>

donne :

<div style="color:#FF0000;">
<?php
  // Bonjour le monde in PHP
  echo 'Bonjour le monde!';
?>
</div>

Tout est coloré sans distinction.

  • mode strict
<source lang="php" strict>
<div style="color:#FF0000;">
<?php
  // Bonjour le monde in PHP
  echo 'Bonjour le monde!';
?>
</div>
</source>

donne :

<div style="color:#FF0000;">
<?php
  // Bonjour le monde in PHP
  echo 'Bonjour le monde!';
?>
</div>

Seul le PHP situé entre <?php et ?> est coloré.

Langages supportés[modifier | modifier le wikicode]

Les langages supportés sont les suivants :

Langage Paramètre lang
Actionscript actionscript
Ada ada
Apache Log apache
AppleScript applescript
ASM asm
ASP asp
AutoIT autoit
Bash bash
BlitzBasic blitzbasic
BNF bnf
C c
CAD DCL caddcl
CadLisp cadlisp
CFDG cfdg
ColdFusion cfm
C++/Qt cpp-qt
C++ cpp
C# csharp
CSS css
C pour Mac c_mac
D d
Delphi delphi
Diff diff
DIV div
DOS dos
Eiffel eiffel
Fortran fortran
FreeBasic freebasic
GML gml
Groovy groovy
HTML html, html4strict, html5
IDL idl
INI ini
Inno inno
IO io
Java java
Java 5 java5
Javascript javascript
LaTeX latex
Lisp lisp
Lua lua
Matlab matlab
mIRC mirc
Microprocessor ASM mpasm
MySQL mysql
NullSoft installer nsis
Objective C objc
OCaml ocaml-brief
OCaml ocaml
OpenOffice BASIC oobas
Oracle 8 SQL oracle8
Pascal pascal
Perl perl
PHP php-brief
PHP php
PL/SQL plsql
Python python
Q(uick)BASIC qbasic
Windows registry reg
robots.txt robots
Ruby ruby
SAS sas
Scheme scheme
SDLBasic sdlbasic
Smalltalk smalltalk
Smarty smarty
SQL sql
TCl tcl
Plain text text
thinBasic thinbasic
T-SQL tsql
Visual BASIC vb
VB.NET vbnet
VHDL vhdl
Visual Fox Pro visualfoxpro
Winbatch winbatch
XML xml
Z80 ASM z80

Les appels de la balise non prévus dans cette liste sont catégorisés dans Catégorie:Pages avec des erreurs de coloration syntaxique.