Retourner aux forums || Retourner au forum Programmation.web
Programmation.web : Affichage de codes sources avec coloration syntaxique en html
Posté par Manuel Dahmen (page perso, ) le 15 mai 2005Je cherche un script (php ou autre) ou un programme qui permette de convertir un code source (c, php, python, java, bash, html, etc) avec la coloration syntaxique en html.
Pour le moment j'ai trouvé ceci: http://pixelated-dreams.com/~davey/PEAR/Text_Highlight/docs/element(...)
Ça marche pas mal, sauf que pour le php, quand on demande à afficher les numéros de lignes, le code html généré est franchement pourri. (ex.: http://manueldahmen.no-ip.org/~manuel/Text_Highlight-0.2.0/exemple.(...) ), et puis il ne fait pas le Bash.
Puis j'ai trouvé le programme states qui a été conçu spécialement pour faire de la coloration syntaxique (man page:
States is an awk-alike text processing tool with some).
state machine extensions. It is designed for program
source code highlighting and to similar tasks where state
information helps input processing.
Mais je ne trouve pas d'exemples ni d'explications sur le principe de la col. syn.
Voilà si vous avez un programme comme le premier que j'ai présenté (mais plus complet et plus propre) ou des explications et exemples sur la manière d'implémenter ça soi-même, je suis preneur...
> Lire le message (7 commentaires, moyenne: 2,3).
un éditeur de texte
vim et emacs le font très bien, et si tu es satisfait avec leur colorisation syntaxique, tu trouvera le résultat satisfaisant.
Pour vim:
http://www.polarhome.com/vim/manual/v63/syntax.html#convert-to-XML(...)
ou
http://www.polarhome.com/vim/manual/v63/syntax.html#convert-to-HTML(...)
J'ai pas de lien sous la main pour emacs, mais c'est probablement pas plus compliqué.
Et bien sur, tu peux dans les deux cas scripter pour faire la conversion en ligne de commande, sans lancer vraiment l'interface
voila, amuses toi bien !
-
[^]Re: un éditeur de texte
Posté par Manuel Dahmen (page perso, ) le 15/05/2005 à 17:11. (lien). Évalué à 1.Merci, ça m'évitera de me casser la tête pour réinventer la roue.
Pour convertir en html à partir de vim, ok, c'est tout simple.
Pour en faire un script, je regarde la doc: http://www.polarhome.com/vim/manual/v63/usr_41.html(...) .
Mais une fois que j'aurai écrit le script, comment le lancer sur la ligne de commande?-
[^]Re: un éditeur de texte
Posté par Pascal Terjan (Jabber id, page perso, ) le 15/05/2005 à 17:24. (lien). Évalué à 4.Il y a un exemple dans la doc en question. En ajoutant des options, ca donne :
vim -f +"syn on" +"let use_xhtml=1" +"let html_use_css=1" +"run! syntax/2html.vim" +"wq" +"q" "$f"
Ca lance vim sur le fichier $f, active la coloration, met les options pour la génération html, genere le html (qui apparait ans un nouveau buffer), ecrit le html et le ferme, ferme le source original.
-
-
[^]Re: un éditeur de texte
Posté par CrEv (page perso, ) le 16/05/2005 à 15:39. (lien). Évalué à 2.Pour emacs : M-x htmlize
-> http://fly.srk.fer.hr/~hniksic/emacs/htmlize.el(...)
C'est dans pas mal de distrib je pense
Bon évidemment, à la lecture du journal c'est pas ce que tu cherche, mais ça peut toujours servir
Si vous voulez un exemple du code généré (suffisament propre à mon gout) -> http://winsos.net/sauv/download/winsos.s2.html(...)
highlight
je te conseille "highlight" que tu trouvera ici : http://www.andre-simon.de/,(...) il est fort possible qu'il soit dispo dans ta distrib !!!
M.
-
[^]Re: highlight
Posté par Manuel Dahmen (page perso, ) le 15/05/2005 à 17:21. (lien). Évalué à 1.Juste ce qu'il me fallait, merci.
-
[^]Re: highlight
Posté par GCN (Jabber id, page perso, ) le 16/05/2005 à 07:51. (lien). Évalué à 2.Y'a aussi GeSHi => http://qbnz.com/highlighter/(...)
C'est utilisé notamment par Dokuwiki (c'est comme ça que j'ai découvert son existence :).
-
Revenir en haut de page || Retourner aux forums || Retourner au forum Programmation.web



Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.