VISUALISEUR DE SOURCES

freeloony Messages postés 13 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 15 novembre 2005 - 10 nov. 2005 à 10:17
cs_Zart Messages postés 285 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 27 juin 2006 - 16 nov. 2005 à 09:25
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/34572-visualiseur-de-sources

cs_Zart Messages postés 285 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 27 juin 2006 1
16 nov. 2005 à 09:25
Ouep ça fonctionne mais du coup on ne peut pas utiliser seulement l'extension tu vois ce que je veux dire ?
Je voulais faire un truc du genre :
$ind = indexOf($fichier,'.'); // pour avoir le dernier indice
$lang = substr($fichier,$ind + 1); // pour avoir la sous chaine relative à l'extension du coup on peut directement le paser dans Geshi
freeloony Messages postés 13 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 15 novembre 2005
15 nov. 2005 à 10:16
T'as essayé avec "html4strict" au lieu de "html" ?
cs_Zart Messages postés 285 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 27 juin 2006 1
15 nov. 2005 à 10:10
Au fait la coloration syntaxique de CS est pas super parfois ?
Vous croyez qu'il y a une lib Geshi pour .NET 2 ?
cs_Zart Messages postés 285 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 27 juin 2006 1
15 nov. 2005 à 09:15
Théoriquement j'ai qu'à prendre le dernier point, et récupérer ce qu'il y a après pour avoir le motif ?
Si tel est le cas ça ne fonctionne pas car quand j'ai spécifié dans langage "html" ça n'a rien fait, sauf s'il est sensible à la casse parce que j'avais mis ça en Majuscule...
freeloony Messages postés 13 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 15 novembre 2005
14 nov. 2005 à 17:53
Salut Zark,
Je vois que tu t'es laissé séduire par geshi.
Concernant tes 2 remarques je voudrais te préciser que tu peux modifier le style css ($geshi->set_overall_style('color: blue;', true); ) ou bien tu peux très bien définir tes propres styles avec des css externes. Tu peux avoir plus d'explications dans la doc de geshi (chapitre 3.3) qui se trouve dans le dossier 'doc' de ton dossier d'installation.
Dans le dossier geshi se trouve les fichiers de chaque langage (liste non exaustive) et dans le fichier geshi.php à la ligne 1073 le tableau des extensions que voilà :
array(
'actionscript' => array('as'),
'ada' => array('a', 'ada', 'adb', 'ads'),
'apache' => array('conf'),
'asm' => array('ash', 'asm'),
'asp' => array('asp'),
'bash' => array('sh'),
'c' => array('c'),
'c_mac' => array('c'),
'caddcl' => array(),
'cadlisp' => array(),
'cpp' => array('cpp'),
'csharp' => array(),
'css' => array('css'),
'delphi' => array('dpk', 'dpr'),
'html4strict' => array('html', 'htm'),
'java' => array('java'),
'javascript' => array('js'),
'lisp' => array('lisp'),
'lua' => array('lua'),
'mpasm' => array(),
'nsis' => array(),
'objc' => array(),
'oobas' => array(),
'oracle8' => array(),
'pascal' => array('pas'),
'perl' => array('pl', 'pm'),
'php' => array('php', 'php5', 'phtml', 'phps'),
'python' => array('py'),
'qbasic' => array('bi'),
'smarty' => array(),
'vb' => array('bas'),
'vbnet' => array(),
'visualfoxpro' => array(),
'xml' => array('xml')
)

je vais regarder ce soir tes modifs...
cs_Zart Messages postés 285 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 27 juin 2006 1
14 nov. 2005 à 14:53
Reste quand même quelques bugs dans cette coloration syntaxique... Regardez par exemple pop-up grandissante.html vous verrez que c'est pas optimal !
cs_Zart Messages postés 285 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 27 juin 2006 1
14 nov. 2005 à 14:50
Je viens de poser la source en ligne avec Geshi. Cette lib est très intéressante et très puissante. Je dirais même qu'elle est très simple à mettre en place.
Par contre ce que je regrette c'est qu'elle ne soit pas paramètrable facilement, avec une feuille de style pouir coloriser syntaxiquement à coté comme on le souhaite. là au contraire on doit aller fouiller dans le code. S'il est évolu ça fous la merde.
En revanche il est vrai que c'est un script beaucoup plus éprouvé que ce que j'avais fait, donc je garde cette option. SI vous pouviez me faire parvenir les extensions de tous les fichiers que Geshi supporte ce pourrait être intéressant. Car moi même je ne connais pas tous les langages.
Grâce à Geshi ça reste evolutif facilement. Je pense néanmoins faire un listage récursif de tous les fichiers avec des exceptions ... J'ai une source qui doit trainer quelque part !!!
Reste quelque modifs notamment dans la présentation du choix des fichiers, si vous avez des idées contactez moi.
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
10 nov. 2005 à 19:33
Salut,
c'est claire que la bibliothèque geshi est plus simple à mettre en place.
Petits détails :
1) print est lent alors utilise echo ;-)
2) Les trucs du genre :
$src = str_replace('[', '<', $src);
$src = str_replace(']', '>', $src);

return '
'.nl2br($src).'
';

tu fait plustot :
return '
'.str_replace(array('[',']',"\r\n"), array('<','>','
'."\r\n"), $src).'
';

@+
freeloony Messages postés 13 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 15 novembre 2005
10 nov. 2005 à 10:17
pourquoi ne pas utiliser la bibliothèque geshi pour faire de la coloration synthaxique: il est facile à mettre en place et peut supporter une multitude de langage que l'on peut compléter...
sinon la source est intéressante quand on veut faire sa propre coloration.
Rejoignez-nous