Seite 1 von 1
Python-Code auf einer Homepage darstellen
Verfasst: Sonntag 14. Januar 2007, 15:03
von Mawilo
Hallo,
mir ist zwar so, als hätte ich zu diesem Thema schon mal was gelesen - ich weis nur nicht mehr wo.
Alos - ich möchte Python Code auf einer Homepage darstellen. Mit allen Einrückungen und ggf. auch mit der farblichen Darstellung. Gibt es dazu schon etwas fertiges? Ich habe mich bisher kaum mit so etwas beschäftigt. Ich benötige deshalb etwas, was nicht so kompliziert ist
Stephan
Verfasst: Sonntag 14. Januar 2007, 15:18
von Leonidas
Dann nimm
Pygments. Unterstützt neben Python auch viele andere Sprachen und ist inzwischen ziemlich populär.
Verfasst: Sonntag 14. Januar 2007, 16:15
von mawe
Ich verwende dafür recht gerne vim. Einfach
im command-mode eintippen, und fertig.
Verfasst: Montag 15. Januar 2007, 09:11
von Mawilo
Danke für die Tips. Ich werde das in der nächsten Zeit mal ausprobieren.
Stephan
Verfasst: Montag 15. Januar 2007, 10:39
von birkenfeld
Verfasst: Mittwoch 17. Januar 2007, 20:44
von Mawilo
Ich habe mit folgender Datei getestet:
Code: Alles auswählen
# -*- coding: iso-8859-15 -*-
from pygments import highlight
from pygments.lexers import get_lexer_by_name
from pygments.formatters import HtmlFormatter
f = file('JoPop3.2.pyw', 'r')
out = file('testcode.html', 'a')
code = f.read()
lexer = get_lexer_by_name("python", stripall=True)
formatter = HtmlFormatter(linenos=True, encoding='utf-8', style='colorful')
result = highlight(code, lexer, formatter, outfile = out)
f.close()
out.close()
Der Code wird auch als html dargestellt. Nur leider ohne die gewünschte Farbgebung.
Was muss da noch geändert werden, damit ich eine farbige Darstellung bekomme? In der Doku habe ich nichts gefunden (oder überlesen?)
Stephan
Verfasst: Mittwoch 17. Januar 2007, 21:27
von birkenfeld
Wie du an der HTML-Ausgabe sehen kannst, gibt Pygments nur CSS-Klassen aus. Die passenden CSS-Definitionen bekommst du mit `formatter.get_style_defs()` oder, wenn du ein ganzes HTML-Dokument mit der Formatteroption "full=True" erzeugst.
Verfasst: Mittwoch 17. Januar 2007, 21:45
von Mawilo
Danke, jetzt wird's bunt
Stephan
Verfasst: Sonntag 21. Januar 2007, 11:36
von mitsuhiko
Ansonsten gibts noch (gut, die Lösung ist nicht so groovy) die Möglichkeit mit der Formatteroption noclasses=True pygments die Stildefinitionen direkt in die <span> Elemente zu stecken. Ich rate aber mal davon ab