Python-Code auf einer Homepage darstellen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Benutzeravatar
Mawilo
User
Beiträge: 446
Registriert: Sonntag 22. Februar 2004, 10:58
Wohnort: Sachsen
Kontaktdaten:

Python-Code auf einer Homepage darstellen

Beitragvon Mawilo » Sonntag 14. Januar 2007, 15:03

Hallo,

mir ist zwar so, als hätte ich zu diesem Thema schon mal was gelesen - ich weis nur nicht mehr wo.:oops:
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 :D

Stephan
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Sonntag 14. Januar 2007, 15:18

Dann nimm Pygments. Unterstützt neben Python auch viele andere Sprachen und ist inzwischen ziemlich populär.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Beitragvon mawe » Sonntag 14. Januar 2007, 16:15

Ich verwende dafür recht gerne vim. Einfach

Code: Alles auswählen

:runtime! syntax/2html.vim

im command-mode eintippen, und fertig.
Benutzeravatar
Mawilo
User
Beiträge: 446
Registriert: Sonntag 22. Februar 2004, 10:58
Wohnort: Sachsen
Kontaktdaten:

Beitragvon Mawilo » Montag 15. Januar 2007, 09:11

Danke für die Tips. Ich werde das in der nächsten Zeit mal ausprobieren.

Stephan
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Beitragvon birkenfeld » Montag 15. Januar 2007, 10:39

Mit Pygments:

Code: Alles auswählen

pygmentize -o mein.html python-datei.py
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
Benutzeravatar
Mawilo
User
Beiträge: 446
Registriert: Sonntag 22. Februar 2004, 10:58
Wohnort: Sachsen
Kontaktdaten:

Beitragvon Mawilo » Mittwoch 17. Januar 2007, 20:44

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
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Beitragvon birkenfeld » Mittwoch 17. Januar 2007, 21:27

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.
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
Benutzeravatar
Mawilo
User
Beiträge: 446
Registriert: Sonntag 22. Februar 2004, 10:58
Wohnort: Sachsen
Kontaktdaten:

Beitragvon Mawilo » Mittwoch 17. Januar 2007, 21:45

Danke, jetzt wird's bunt :D

Stephan
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Beitragvon mitsuhiko » Sonntag 21. Januar 2007, 11:36

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 ;)
TUFKAB – the user formerly known as blackbird

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]