2008-09-16 37 views
25

Quiero resaltar los códigos fuente de C/C++/Java/C# etc. en mi sitio web.¿Cómo resaltar el código fuente en HTML?

¿Cómo puedo hacer esto?

¿Es un trabajo intensivo de CPU para resaltar el código fuente?

+0

El código que he usado para esto se ha publicado en el artículo de [colorizing Source Code] (http://www.blackbeltcoder.com/Articles/strings/colorizing-source-code). –

Respuesta

27

Puede hacer esto desde el lado del servidor o desde el lado del cliente. No es muy intensivo en el uso del procesador, pero si lo haces desde el lado del cliente (usando Javascript) habrá un retraso notable. La mayoría de las soluciones del lado del cliente giran en torno al motor de resaltado de sintaxis de Google Code. Este parece ser el más popular: SyntaxHighlighter

Las soluciones del lado del servidor tienden a ser más flexibles, especialmente en la forma de definir nuevos idiomas y configurar cómo se resaltan (por ejemplo, los colores utilizados). Uso GeSHi, que es una solución PHP con un plugin moderadamente agradable para Wordpress. También hay algunas bibliotecas creadas para Java, e incluso algunas basadas en VIM (que generalmente requieren un módulo Perl para instalarse desde CPAN).

En resumen: tiene bastantes opciones, ¿cuál es su criterio? Es difícil hacer una recomendación sólida sin conocer sus requisitos.

11

utilizo GeSHi ("Generic Syntax Highlighter") en pastebin.com

Pastebin tiene mucho tráfico, por lo que almacenar en caché los resultados de la transformación, lo que sin duda reduce la carga

0

Si está utilizando PHP, puede usar GeSHi para resaltar muchos idiomas diferentes. Lo he usado antes y funciona bastante bien. Un rápido Google también descubrirá los complementos GeSHi para wordpress y drupal.

No consideraría resaltar como intensivo de la CPU a menos que tenga la intención de mostrar megabytes de todo al mismo tiempo. E incluso entonces, la carga de la CPU sería mínima y su principal problema sería la velocidad de transferencia para todo.

5

Yo uso google-code-prettify. Es el más simple de configurar y funciona muy bien con todos los lenguajes de estilo C.

5

Pygment es una buena biblioteca de Python para generar código HTML, RTF, ANSI (estilo terminal) o LaTeX. Es compatible con large range of languages (C, C++, Lua, Erlang, ...) e incluso puede escribir su propio formateador de salida.

6

Personalmente, prefiero las herramientas sin conexión: no veo el sentido de analizar el código (especialmente los grandes) una y otra vez, para cada página servida, o incluso peor, en cada navegador (para las bibliotecas JS), porque como se señaló anteriormente, estas bibliotecas suelen retrasarse (a menudo se ve la fuente sin formato antes de formatearla).

Hay una serie de herramientas para hacer este trabajo, algunas apuntadas arriba. Solo uso la función de exportación de mi editor favorito (SciTE) porque solo respeta las opciones de color que configuré cuidadosamente ... :-) Y también puede generar XML, PDF, RTF y LaTeX.

Cuestiones relacionadas