Javascript - Coloration syntaxique dans vos pages web

Dernière mise à jour le 29 octobre 2009 à 14:16 par Jeff
Publié par sebsauvage
Si vous avez un site web contenant des exemples de code (php, javascript, C#, Delphi, Python...), il peut être intéressant d'avoir une coloration syntaxique.

C'est parfois pénible à réaliser, mais il existe une librairie Javascript qui permet de colorer automatiquement votre code C#, Delphi, Javascript, php, Python, Sql, VB, SQL et XML: dp.SyntaxHighlighter

C'est bien fait, léger, efficace, et en plus ça ne pose pas de problèmes sur les machines qui ne possèdent pas Javascript.

Homepage:
http://code.google.com/p/syntaxhighlighter/

Exemple:




Voici comment la mettre en place:

1)
Copiez SyntaxHighlighter.css et tous les fichiers .js dans le même répertoire que votre page.


2)
Inclure la feuillle de style fournie dans le head de votre page:
<link type="text/css" rel="stylesheet" href="SyntaxHighlighter.css">



3)
Ajouter le code Javascript suivant à la fin de votre page:
<script language="JavaScript" src="shCore.js" type="text/javascript"></script>
<script language="JavaScript" src="shBrushPython.js" type="text/javascript"></script>
<script language="JavaScript" type="text/javascript">dp.SyntaxHighlighter.HighlightAll('code');</script>


(Là on a inclus le Javascript pour le langage Python. A vous d'inclure celui du langage qui vous intéresse parmi ceux disponibles.)


4)
Placez votre code à colorer dans un <textarea>.
Par exemple:
<textarea name="code" class="python">
class client:

    def __init__(self,number,name):
        self.number = number  # Client number
        self.name = name      # Full client name
        
    def __repr__(self):
        return '<client id="%s" name="%s">' % (self.number, self.name)        
</textarea>


name="code" sert à indiquer que ce bloc de code devra être coloré.
class="Python" indique quel langage utiliser.



Vous avez la possibilité d'utiliser des options, telles que:

nogutter : ne pas afficher les numéros de ligne.
nocontrols: retirer la barre "view plain | print | copy to clipborard"
collapse: masquer le code (cliquer pour afficher le code)
firstline[n]: indique le numéro de la première ligne (permet de changer la numérotation, pratique pour des extraits de sources)


Les options s'ajoutent à la class, par exemple:
<textarea name="code" class="python:nogutter:nocontrols">

Vous pouvez facilement customiser les couleurs de la coloration en modifiant la feuille de style SyntaxHighlighter.css


Une autre alternative, si votre site est en PHP, est d'utiliser l'excellentissime GesHI, aussi très simple et efficace http://qbnz.com/highlighter/. Il possède, par défaut, plusieurs dizaines de langages et est extensible presqu'à l'infini.

Voir aussi

Meilleures réponses pour « Javascript Coloration syntaxique dans vos pages web » dans :
Javascript - Centrer verticalement une page web Voir Pour centrer verticalement une page web, impossible de s'en sortir en css. Une solution bien pratique : JavaScript. 1. Le fichier .js 2. La page .html 3. Utilisation 4. Inconvénients 5. Rappel Merci à Dalida pour la source du...
[Webmaster] Publier facilement une vidéo dans une page web VoirPublier une vidéo dans une page web n'est pas toujours évident: Selon le format (AVI, MPG, MOV...) tout le monde ne possède pas forcément le bon plugin et le bon codec. En revanche, la quasi-totalité des navigateurs possèdent le plugin Flash (SWF)....
[mythes] On peut protéger une page web/une image contre la copie VoirMythe On peut empêcher la copie d'une page web ou d'une image. On peut empêcher de voir le source d'une page HTML. On peut empêcher la copie d'une vidéo, d'une musique. Réalité FAUX Explications Quelle que soit la nature d'un document (page...
Enregistrer une page web VoirProblème Je n'arrive pas à télécharger une page web. Y a-t-il un paramétrage à faire ? Solution Quand la page web est affichée dans votre navigateur, faites "Fichier" et choisissez "Enregistrer sous...". Merci à sebsauvage sur le forum pour...