Cher Journal,
Voici la suite des mes aventures avec mon site de paste web2.0. Ce petit message est la suite de ce post qui posait des questions sur la façon de classifier des langages et de ce post qui présentait la version 0 du projet.
Depuis, j'ai pas mal avancé sur plusieurs fronts.
Tout d'abord, j'ai fini par adopter highlight.js comme moteur de mise en couleur. Au départ, je n'avais pas d'a priori sur le moteur de mise en couleur sauf que comme à terme, j'aimerai bien permettre la création de paste encrypté (à la zerobin), je préférais une solution js pure.
Je suis allé lire la doc de Pygments, l'excellent moteur de coloration en python, et surtout, j'ai lu ici comment son intégration était faite dans ruby et c'est assez moche, je cite :
[…] it embeds the python interpreter inside ruby via FFI. This avoids the cost of setting up the python VM on every invocation and speeds up code highlighting from ruby by 10-15x.
Quand j'ai lu ça, j'ai ri. Et puis j'ai décidé que c'était vraiment pas la peine de faire ça côté serveur. Je suis tombé sur highlight.js en lisant le comparatif totalement injuste des colorateurs de syntaxe. Ce qui m'a plu avec highlight.js, c'est qu'il detecte automatiquement la meilleure coloration. Et ça, c'est rudement pratique.
Évidemment, je compte toujours essayer d'utiliser Linguist de Github côté serveur parce qu'il est plus malin que highlight.js. Bah évidemment, ils ne supportent par les mêmes langages et ne les écrivent pas pareil et ça c'est moche (cpp vs c++ par exemple).
J'ai mis une nouvelle version en ligne qui commence à faire des trucs pas trop mal. Tu peux la tester http://uu.zoy.org. On peut paster du texte, ça essaye de deviner, ça sauve le paste sur le serveur, lui donne une jolie url et on peut changer la coloration syntaxe juste en cliquant sur les petits liens à gauche.
Par exemple :
Je me pose encore tout un tas de questions sur les problématiques suivantes:
- Expiration automatique ou pas d'un paste
- Nom des pastes (j'utilise rufus/mnemo, mais c'est prédictible et donc incompatible avec des pastes privés)
- Pastes privé/Pastes publics
Et j'ai encore des problèmes à résoudre pour faire converger le detecteur ruby avec celui en javascript que j'utilise pour faire le highlight. J'ai un plan pour essayer d'avoir toujours la "meilleure" détection de langage possible. Mais après tout, ce qui est important, c'est que ce soit aussi coloré que possible (peu importe le langage détecté, non ?)
Une fois que j'aurai résolu les trois problèmes ci-dessus, je pourrai faire la première release publique et on ira boire du champomy, hein ?
# Y U NO C++
Posté par Zarmakuizz (site web personnel) . Évalué à 3.
http://uu.zoy.org/v/gu.objective-c
Euh oui, du C++ détecté en Objective C, et pas moyen de sélectionner C++ ? Bug ?
Commentaire sous licence LPRAB - http://sam.zoy.org/lprab/
[^] # Re: Y U NO C++
Posté par Michaël Ughetto . Évalué à 2.
http://uu.zoy.org/v/ho.arduino
header c++ détecté comme css ?
[^] # Re: Y U NO C++
Posté par Octplane (site web personnel) . Évalué à 2.
Oui, j'ai encore des problèmes dans la convergence des 2 listes de langages que je manipule (celle du code côté serveur et celle du côté js).
[^] # Re: Y U NO C++
Posté par MCMic (site web personnel) . Évalué à 2.
Si, je vois bien "cpp" dans la liste à gauche ( http://uu.zoy.org/v/gu.objective-c#cpp ), par contre ça colorie pas grand chose!
Seuls les commentaires et les types de retour des fonctions sont mis en valeur on dirait
# Une autre façon d'utiliser Pygments
Posté par Bruno Michel (site web personnel) . Évalué à 5.
Pour info, la coloration syntaxique de LinuxFr.org se fait avec Pygments. Nous n'utilisons pas pygments.rb, mais albino et ça marche bien pour nos besoins : https://github.com/nono/linuxfr.org/blob/master/lib/lfmarkdown.rb#L55
[^] # Re: Une autre façon d'utiliser Pygments
Posté par Octplane (site web personnel) . Évalué à 2.
Oui, mais je ne trouve pas qu'Albino soit super bien, cf.
Ca spawne un éxecutable à chaque fois pour colorier le fragment. Je ne suis vraiment pas fan de la méthode…
[^] # Commentaire supprimé
Posté par Anonyme . Évalué à 2.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Commentaire supprimé
Posté par Anonyme . Évalué à 2.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Re: Une autre façon d'utiliser Pygments
Posté par skety . Évalué à 6.
Merci de l'avoir mis à l'endroit alenvers.
[^] # Re: Une autre façon d'utiliser Pygments
Posté par Bruno Michel (site web personnel) . Évalué à 2.
Je l'ai vu, mais je n'ai pas eu le temps de regarder d'où vient le problème.
[^] # Commentaire supprimé
Posté par Anonyme . Évalué à 2. Dernière modification le 12 juillet 2012 à 19:24.
Ce commentaire a été supprimé par l’équipe de modération.
# Contraste !
Posté par Arthur Accroc . Évalué à 3.
Le projet est sympa, mais il y a un détail qui me chagrine : avec des couleurs pâles sur fond pastel, le résultat manque cruellement de contraste !
Le résultat en capture d’écran.
À comparer par exemple à gedit ou mieux (sur fond noir, plus reposant, même si ce n’est pas à la mode) : gvim et geany.
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Re: Contraste !
Posté par Octplane (site web personnel) . Évalué à 0.
Comme je te comprends, homme sous linux. Enfin, je pense que tu es sous linux, parce que chez moi, les captures d'écrans sont beaucoup plus colorées et c'est sûrement une histoire de fonte, brouteur, anti-aliasing par défaut et autres horreurs sub-pixelesque. Et effectivement, c'est laid.
Mais heureusement, j'ai prévu d'intégrer les nombreux modes de couleurs de highlight.js. Je proposerais même la possibilité de poser un cookie pour que uu s'en souvienne sans qu'il y ait besoin de s'identifier.
Plus d'info sur les capacités de highlight.js, ici.
# Test intéressant
Posté par Matthieu Moy (site web personnel) . Évalué à 3.
Je suis déçu, il n'a pas trouvé le fortran !
http://uu.zoy.org/v/behi.c
# Ne detect pas matlab
Posté par ben (site web personnel) . Évalué à 2.
Sympathique projet, mais a echoue a detecte du code Matlab (identifie comme Perl)
http://uu.zoy.org/v/bemi.perl
# Code canadien.
Posté par ナイコ (site web personnel) . Évalué à 5.
Ah. J'ai un cas un peu particulier de texte reconnu comme du VBScript, là.
=> http://uu.zoy.org/v/bese.javascript
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.