PEAR::Text_Highlighter
À 20:40 dans la rubrique PHP / PEAR
←
/ #551
/ rss
/ →
Sur ce blog j'utilise le bien connu Geshi pour obtenir une coloration syntaxique.
Pear propose un package ayant le même objectif.
Réalisé par Andrey Demenev <demenev@gmail.com> Repris par stoyan Stoyan Stefanov
Ce package est composé d'une classe principale et de sous-classe par type de langage/marquage.
Une collection de base est proposée pour ces sous-classe, et une dernière permet de générer de nouvelles sous-classes à partir d'un fichier xml de définition. Cet en fait cette dernière qui fait l'interêt du package.
Voyons un premier exemple qui va s'afficher, avec une numérotation des lignes dans un marge de 8 caractères.
[php]
<?php
require_once 'Text/Highlighter.php';
require_once 'Text/Highlighter/Renderer/Html.php';
$options=array();
$options['numbers'] = HL_NUMBERS_LI;
$options['tabsize'] = 8;
$renderer =& new Text_Highlighter_Renderer_HTML($options);
$hl =& Text_Highlighter::factory('php');
$hl->setRenderer($renderer);
echo $hl->highlight(file_get_contents(__FILE__));
?>
le paramètre de
[php]
<?php
$hl =& Text_Highlighter::factory('php');
?>
défini le langage à colorier celui de
[php] <?php $hl->setRenderer($renderer); ?>
défini le format cible.
Il est possible de demander un formatage console.
Ici j'essaye en HTML : Oops le texte est en noir et blanc. En effet pour une souplesse maximum, le rendering html place des classes css et non des couleurs.
Il faut donc se créer une css pour colorer le texte.
toutes les classes css commencent par hl- ensuite vient le type "reserved" "var" "code" "identifier" "brackets'" "inlinetags''" ...
Si on veut mélanger plusieurs langages sur une même page, une option permet de préfixer la classe hl-var devient php-hl-var
Stoyan a rajouté une CSS lors de la dernière release.
La numérotation
[php] <?php $options['numbers'] = HL_NUMBERS_LI; ?>
permet une numérotation en liste html
[php] <?php $options['numbers'] = HL_NUMBERS_TABLE; ?>
utilisera une <table> en 2 colonnes.
Le package est à ce jour en version Beta vieille d'une semaine
pear install text_highlighter-beta
Il n'a pas de dépendance, donc pas besoin de -o ou -a
il est cependant utile pour les packages
* PEAR_PackageFileManager_Frontend_Web * PHP_Debug
La doc n'est pas encore traduite, si ca intéresse quelqu'un 








Commentaires
Aucun commentaire pour le moment.
Ajouter un commentaire