2012-05-08 2 views
1

Je suis à la recherche d'un surligneur syntaxique haute performance.Javascript Syntax Highlighter pour les grandes chaînes

J'ai essayé Google, Rainbow.js et un autre dont je ne me souviens pas. Ils luttent tous contre de gros blocs de code HTML. Ils finissent tous par mettre en évidence correctement, mais le navigateur se fige pendant une seconde ou deux. Ou le texte n'est pas en surbrillance et après quelques secondes lorsque la page est chargée, il apparaît tout à la fois. J'ai regardé la façon dont github utilise la syntaxe surligneur et je pense qu'il fonctionne si bien parce que les groupes de texte ont une seule portée autour de chaque mot, ce qui signifie une meilleure performance. Quelqu'un connait-il une syntaxe JS qui prend en charge le code HTML et peut rendre les choses très rapidement?

Répondre

2

Serait-il possible de faire la surbrillance sur le serveur? Peut-être l'encaisser pour que vous n'ayez pas à le faire à chaque fois. Si vous publiez vos informations sur la pile côté serveur, je peux vous donner des liens vers certaines bibliothèques.

Si ce n'est pas possible, effectuez la mise en évidence de la syntaxe dans un thread de travail si vous souhaitez éviter de bloquer l'interface utilisateur.

De plus, voici une liste de 9 autres surligneurs: http://www.webdesignbooth.com/9-useful-javascript-syntax-highlighting-scripts/

+0

Fantastique idée! Surlignement de la syntaxe côté serveur! J'utilise codeigniter et il a déjà une bibliothèque pour ça! http://caseyamcl.github.com/geshiforci/ - Vous êtes un génie merci pour cette pensée! :) – Abs

0

Vous pouvez souhaiter utiliser Gists. Vous pouvez les intégrer n'importe où et la mise en évidence de la syntaxe utilisée est extrêmement rapide. Je ne veux pas être auto-promotion, mais pour un exemple d'utilisation de Gists pour la mise en évidence de la syntaxe Javascript (j'utiliserai Gists pour le HTML aussi bien que nécessaire), vous pouvez consulter my Javascript blog. Je ne me souviens pas des URL des autres sites qui le font mais je les ai déjà vus.

+0

Je ne pense pas que Gists fonctionnera car je ne le fais pas manuellement, j'ai besoin de quelque chose d'automatisé. Gists ne me permettra pas d'imprimer une chaîne dans le bloc 'pre' ou' code'. – Abs

+0

Malheureusement, c'est vrai. Désolé, ceci n'est pas une solution pour vous. –

0

Je suis conscient que c'est une question plus ancienne et l'utilisation du serveur pour mettre en évidence les grands blocs de code semble certainement comme votre meilleur pari. Je voulais juste vous faire savoir que je suis l'auteur de rainbow.js, et je viens de pousser une mise à jour 2.0 qui déplace toute la coloration syntaxique dans le navigateur dans un webworker donc il devrait mieux fonctionner pour les grands blocs de code sans blocage du thread principal/interface utilisateur.

Questions connexes