code Highlightment ou la coloration syntaxique en quelques clics
Depuis que j’ai suivi ce fameux tuto Create a Simple, Intelligent Accordion Effect Using Prototype and Scriptaculous, j’avais en tête, de mettre en place la coloration syntaxique sur mazenod.fr. Après prospection du côté de Geshi, j’ai finalement opté pour SyntaxHighlighter … outre le fait que l’un (Geshi) est en PHP et l’autre est en JS pure (SyntaxHighlighter), le dernier possède une fonctionnalité qui me faisait très envie et que je n’avais pas le temps de coder, c’est le bouton « copy to clipboard » qui permet de copier dans le buffer le contenu de la portion de code.
Très pratique!
Surtout pour les lignes de commandes … ça tombe bien! j’ai l’intention de me remettre à l’admin dans pas longtemps (et donc à la documentation qui va avec
.
Outre ce petit détail la mise en place c’est faite en quelques minutes et l’intégration aux styles de FCKeditor est juste trop pratique!!
un petit copier / coller du filtre que j’ai utilisé pour l’intégration dans mazenod.fr (en symfony donc pour ceux qui ne suivent pas):
<?php class sfCmsCodeHighlightFilter extends sfFilter {
public function execute($filterChain)
{
$filterChain->execute();
if($this->isFirstCall())
{
$enable = "
<script type=\"text/javascript\">
SyntaxHighlighter.config.clipboardSwf = '/js/syntaxhighlighter/clipboard.swf';
SyntaxHighlighter.config.strings.viewSource = 'Voir source';
SyntaxHighlighter.config.strings.copyToClipboard = 'Copier dans le presse-papier';
SyntaxHighlighter.config.strings.copyToClipboardConfirmation = 'Le code a été copié dans le presse-papier';
SyntaxHighlighter.config.strings.print = 'Imprimer';
SyntaxHighlighter.config.strings.help = 'A propos';
SyntaxHighlighter.config.strings.expandSource = '+ Montrer la source';
SyntaxHighlighter.all();
</script>
";
$response = $this->getContext()->getResponse();
$response->setContent(str_ireplace('</head>', $enable.'</head>',$response->getContent()));
}
}
}
Rien d’exceptionnel c’était juste pour tester la coloration syntaxique … ça marche bien hein?


