2009-03-18 19 views
6

Come puoi o non potresti sapere, puoi generare un file HTML higlighted di sintassi del colore da un file sorgente PHP usando php -s.Python equivalente a "php -s"

Conosco lo syntaxhighlighter che StackOverflow utilizza e non è proprio quello che sto cercando. Sto cercando qualcosa genererà output HTML senza Javascript.

Qualcuno sa di qualcosa di equivalente a php - s per Python?
+0

Gee, non sapevo nulla dell'evidenziatore di sintassi – Xolve

+0

In molti casi, il syntaxhighlighter è ottimo. C'è una versione di plugin per Wordpress che uso in modo estensivo sul mio blog. –

+0

+1 Non sapevo né –

risposta

12
$ pygmentize -O full -O style=native -o test.html test.py 

Per installare Pygments:

$ easy_install Pygments 

è possibile utilizzarlo come una libreria.

from pygments import highlight 
from pygments.lexers import guess_lexer 
from pygments.formatters import HtmlFormatter 

code = '#!/usr/bin/python\nprint "Hello World!"' 
lexer = guess_lexer(code) # or just pygments.lexers.PythonLexer() 
formatter = HtmlFormatter(noclasses=True, nowrap=True, lineseparator="<br>\n") 
print highlight(code, lexer, formatter) 

uscita:

<span style="color: #408080; font-style: italic">#!/usr/bin/python</span><br> 
<span style="color: #008000; font-weight: bold">print</span> 
<span style="color: #BA2121">&quot;Hello World!&quot;</span><br> 

(spazio bianco aggiunto per chiarezza)

come HTML:

#/usr/bin/python
stampa " Ciao Mondo! "

+0

Perfetto! Grazie –

0

Se si ha accesso a kwrite da KDE, è possibile esportare un file in formato HTML che avrà la stessa colorazione che si utilizza per la modifica. Questo funziona per tutte le lingue.

0

se hai bisogno solo di pochi file per convertire in pagine html e sei su windows puoi usare Notepad ++. Viene fornito (a partire dalle ultime versioni) con il plugin NppExport, che consente di convertire il codice sorgente in HTML e RTF evidenziati (in base allo schema di colorazione). Funziona non solo con Python, ma con qualsiasi linguaggio che puoi usare in Notepad ++.

1

Ho trovato Evidenziare a http://www.andre-simon.de per essere uno strumento estremamente buono per farlo. È Open-source (GPL'ed però!)