Come evidenziare il codice sorgente in HTML?

Voglio evidenziare i codici sorgente C / C ++ / Java / C # etc nel mio sito web.

Come posso fare questo?

È un lavoro intensivo della CPU per evidenziare il codice sorgente?

Puoi farlo lato server o lato client. Non è molto intenso sul processore, ma se lo fai lato client (usando Javascript) ci sarà un ritardo notevole. La maggior parte delle soluzioni lato client ruotano attorno al motore di evidenziazione della syntax di Google Code. Questo sembra essere il più popolare: SyntaxHighlighter

Le soluzioni lato server tendono ad essere più flessibili, specialmente nel modo di definire nuovi linguaggi e di configurare il modo in cui sono evidenziati (ad es. I colors usati). Io uso GeSHi, che è una soluzione PHP con un plugin moderatamente bello per WordPress. Ci sono anche alcune librerie create per Java, e anche alcune basate su VIM (di solito richiede l’installazione di un modulo Perl da CPAN).

In breve: hai alcune opzioni, quali sono i tuoi criteri? È difficile fare una raccomandazione solida senza conoscere le tue esigenze.

Uso GeSHi (“Generic Syntax Highlighter”) su pastebin.com

pastebin ha un traffico elevato, quindi memorizzo nella cache i risultati della trasformazione, che certamente riduce il carico.

Personalmente, preferisco gli strumenti offline: non vedo il punto di analizzare il codice (in particolare quelli di grandi dimensioni) più e più volte, per ogni pagina pubblicata o, peggio ancora, su ciascun browser (per le librerie JS), perché come indicato sopra, queste librerie sono spesso in ritardo (spesso si vede la fonte grezza prima che sia formattata).

Ci sono un certo numero di strumenti per fare questo lavoro, alcuni sopra indicati. Uso solo la funzione di esportazione del mio editor preferito (SciTE) perché rispetta solo le scelte di colore che ho accuratamente impostato … 🙂 E può anche generare XML, PDF, RTF e LaTeX.

Pygment è una buona libreria Python per generare HTML, RTF, ANSI (stile terminale) o codice LaTeX. Supporta un’ampia gamma di linguaggi (C, C ++, Lua, Erlang, …) e puoi perfino scrivere il tuo formattatore di output.

Io uso google-code-prettify . È il più semplice da configurare e funziona alla grande con tutti i linguaggi in stile C.

Se usi jEdit , potresti voler usare il plugin Code2HTML .

Io uso SyntaxHighligher sul mio blog .

Basta eseguirlo con uno strumento come: http://www.gnu.org/software/src-highlite/

Se si utilizza PHP, è ansible utilizzare GeSHi per evidenziare molte lingue diverse. L’ho usato prima e funziona abbastanza bene. Un rapido googling scoprirà anche i plugin GeSHi per wordpress e drupal .

Non prenderei in considerazione l’evidenziazione per l’utilizzo intensivo della CPU, a meno che non si intenda visualizzare megabyte di tutto in una volta. E anche allora, il carico della CPU sarebbe minimo e il tuo problema principale sarebbe la velocità di trasferimento per tutto.