Ich denke deine Argumentation ist nicht kausal. Die Formatierung ist ja nicht im Quelltext enthalten sondern ist lediglich eine Darstellungsfrage.Leonidas hat geschrieben:Pygments highlightet auch Quelltext der fast immer in Monospace gesetzt ist, daher passt das ja auch so
Mein erstes Python MINI Webprojekt
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Die Ausgaben von Pygments werden fast immer Monospaced dargestellt. Du hingegen stellst es nicht monospaced dar, daher passt die Ausrichtung nicht.hendrikS hat geschrieben:Ich denke deine Argumentation ist nicht kausal. Die Formatierung ist ja nicht im Quelltext enthalten sondern ist lediglich eine Darstellungsfrage.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Try this one:hendrikS hat geschrieben: Und ich habe mir auch den HTMLCalendar angesehen, mit dem man in drei Zeilen und ein bisschen CSS das auch ordentlich hinbekommen kann.
Leider lassen sich die Feiertage in den Algorithmus von calender.py nicht so einfach integrieren. Also auf den ersten Blick schien das so.
Code: Alles auswählen
from calendar import HTMLCalendar
from datetime import date
class MyCal(HTMLCalendar):
def formatday(self, day, weekday, thedate):
"""
Return a day as a table cell.
"""
if day == 0:
return '<td class="noday"> </td>' # day outside month
else:
year, month = thedate
d = date(year, month, day)
if not self.specialday(d):
return '<td class="%s">%d</td>' % (self.cssclasses[weekday], day)
else:
return '<td class="%s">%d</td>' % ('specialday', day)
def formatweek(self, theweek, thedate):
"""
Return a complete week as a table row.
"""
s = ''.join(self.formatday(d, wd, thedate) for (d, wd) in theweek)
return '<tr>%s</tr>' % s
def formatmonth(self, theyear, themonth, withyear=True):
"""
Return a formatted month as a table.
"""
v = []
a = v.append
a('<table border="0" cellpadding="0" cellspacing="0" class="month">')
a('\n')
a(self.formatmonthname(theyear, themonth, withyear=withyear))
a('\n')
a(self.formatweekheader())
a('\n')
for week in self.monthdays2calendar(theyear, themonth):
a(self.formatweek(week, (theyear, themonth)))
a('\n')
a('</table>')
a('\n')
return ''.join(v)
http://www.felix-benner.com
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo!tordmor hat geschrieben:Code: Alles auswählen
v = [] a = v.append a('<table border="0" cellpadding="0" cellspacing="0" class="month">') a('\n') a(self.formatmonthname(theyear, themonth, withyear=withyear)) ...
Genau so -- würde ich es nicht programmieren!
Solcher Code wird sehr schnell sehr unübersichtlich. Einfacher wird es, wenn man für das Zusammensetzen von HTML-Seiten eine Vorlagensprache verwendet. Jinja, Genshi, oder Cheetah --- egal was du nimmst, aber versuche nicht HTML mit Python zusammenzusetzen. Die Fehlersuche wird bei solchem Code zur Hölle. Aber OK, jeder wie er mag.
mfg
Gerold

http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Nicht nur das, aber man sollte dann auch darauf achten Sachen selbst zu escapen sonst hat man prompt eine XSS-Lücke. Templatesprachen beherrschen teilweise sogar Autoescaping, so dass jeder Code erstmal als "gefährlich" angesehen wird und dann als "safe" markiert werden muss. Meiner Meinung nach ist das eigentlich eine gute Idee, denn ich escape lieber "sichere" Eingaben als alle unsicheren Eingaben zu escapen, was zu größeren Problemen führen kann.gerold hat geschrieben:Genau so -- würde ich es nicht programmieren!
Solcher Code wird sehr schnell sehr unübersichtlich. Einfacher wird es, wenn man für das Zusammensetzen von HTML-Seiten eine Vorlagensprache verwendet. Jinja, Genshi, oder Cheetah --- egal was du nimmst, aber versuche nicht HTML mit Python zusammenzusetzen. Die Fehlersuche wird bei solchem Code zur Hölle.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ich habe die Formatierung des Kalenders jetzt mal korigiert. Getestet habe ich das ganze mit http://www.browsershots.org. War sehr hilfreich. Lediglich der Konqueror weigert sich noch das ganze monospaced darzustellen. Hier scheint es aber ein Browserproblem zu sein. Auch Pygments generierte Seiten kommen schlecht rüber im Konquerer. Es werden im Web auch jede Menge Bugs von Konqueror im Zusammenhang mit <PRE> reported.
Kurzes Feedback noch mal wäre vielleicht nicht schlecht.
Nichts desto trotz werde ich jetzt noch eine weitere Version erstellen, die eine Tabellendarstellung verwendet. Die Idee einfach von HTMLCalender abzuleiten ist eigentlich nicht schlecht. Sonst ist es natürlich auch eine gute Gelegenheit mal Jinja oder Cheetah kennenzulernen.
Ich werde den Kalender demnächst permanent in meine kommende Webseite integrieren und auch noch ein bisschen erweitern wie schon im Root Posting beschrieben. Werde sicher hier mal informieren, wenn noch das ein oder andere Feature dazugekommen ist.
Sonst danke allen für das Feedback. Ich hätte es sonst vielleicht gar nicht gemerkt, daß es mit einigen Browsern ziemlich güllig aussieht.
Kurzes Feedback noch mal wäre vielleicht nicht schlecht.
Nichts desto trotz werde ich jetzt noch eine weitere Version erstellen, die eine Tabellendarstellung verwendet. Die Idee einfach von HTMLCalender abzuleiten ist eigentlich nicht schlecht. Sonst ist es natürlich auch eine gute Gelegenheit mal Jinja oder Cheetah kennenzulernen.
Ich werde den Kalender demnächst permanent in meine kommende Webseite integrieren und auch noch ein bisschen erweitern wie schon im Root Posting beschrieben. Werde sicher hier mal informieren, wenn noch das ein oder andere Feature dazugekommen ist.
Sonst danke allen für das Feedback. Ich hätte es sonst vielleicht gar nicht gemerkt, daß es mit einigen Browsern ziemlich güllig aussieht.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Also für das <FONT>-Element würden dich Web-Designer wohl lynchenhendrikS hat geschrieben:Kurzes Feedback noch mal wäre vielleicht nicht schlecht.

<PRE> ist übrigens im Standard-Style schon monospaced, da muss man nicht zusätzlich monospace anwenden. Für sowas ist Firebug ziemlich toll weil man da mit einem Klick CSS-Eigenschaften ein und ausschalten kann sowie diese auch verändern kann.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Damit könnte ich im Zweifel leben.Leonidas hat geschrieben: Also für das <FONT>-Element würden dich Web-Designer wohl lynchen![]()

Ist wie ein komplettes Layout basierend auf Tabellen machen - einfach veraltet. Die ganze Conten von Präsentation trennen ist auch HTML nicht spurlos vorbeigezogen... Man verwendet heute meistens Container im Zusammenhang mit CSS für das komplette Design.hendrikS hat geschrieben:Damit könnte ich im Zweifel leben.Leonidas hat geschrieben: Also für das <FONT>-Element würden dich Web-Designer wohl lynchen![]()
Aber was ist daran eigentlich falsch oder nicht Web-Designer konform? Ich bin im Web noch Anfänger.
http://www.csszengarden.com/
Die Seite zeigt was's möglich macht. Eigentlich wird nur die CSS geändert und es sind unendlich viele Designgs möglich...
Beeindruckend. Danke für den Tip.BlackVivi hat geschrieben: http://www.csszengarden.com/
Öhm, der Code ist aus der standardlib kopiert (calendar.py). Ich hab nur die Übergabe des Datums an format_day hinzugefügt. Ansonsten stimme ich dir zugerold hat geschrieben: Genau so -- würde ich es nicht programmieren!
Solcher Code wird sehr schnell sehr unübersichtlich. Einfacher wird es, wenn man für das Zusammensetzen von HTML-Seiten eine Vorlagensprache verwendet. Jinja, Genshi, oder Cheetah --- egal was du nimmst, aber versuche nicht HTML mit Python zusammenzusetzen. Die Fehlersuche wird bei solchem Code zur Hölle. Aber OK, jeder wie er mag.
mfg
Gerold

http://www.felix-benner.com
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo tordmor!tordmor hat geschrieben:Öhm, der Code ist aus der standardlib kopiert (calendar.py).
Dass die für die Standardlib keine externe Vorlagensprache einbinden, sehe ich ein.

mfg
Gerold

http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.