Jinja2 Projekt - "PyBlogger"

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Crazed
User
Beiträge: 171
Registriert: Sonntag 18. Mai 2008, 11:44

Jinja2 Projekt - "PyBlogger"

Beitragvon Crazed » Mittwoch 3. Dezember 2008, 18:16

Hallo,

Ich programmiere momentan an einem Script rum das statische Blogs (HTML) erstellen soll. Dazu möchte ich Jinja2 benutzen weil es mir von einigen Usern in diesem Forum empfohlen worden ist.

Ich habe jetzt schon viele verschiedene Ansätze für "PyBlogger" (So heißt das Projekt) programmiert aber keiner dieser Ansätze gefällt mir. Es ist mir entweder zu "dumm", zu unflexibel oder einfach nur zu hässlich, Ich weiß nicht wie ich es besser ausdrücken soll.

Momentan sieht es so aus:
http://paste.pocoo.org/show/08arvHFN2K0vjxONQ9wi/

Das was hier jetzt z.b hässlich ist, ist die eigentlich völlig sinnlose OOP und das es einfach eine riesige render Methode gibt in der alles, wie ich finde, sehr umständlich gemacht wird. Mir fällt aber leider nichts intelligenteres ein.

Ihr solltet aber wissen das ich momentan die "Posts" tatsächlich in Python Dateien schreibe weil es dadurch einfach viel einfacher ist die relevanten Daten aus den Dateien zu filtern.

Ich habe allerdings vor auf eine MarkUp Engine wie reST umzusteigen und die Posts für den Blog dann mit Hilfe von Jinja2 zu erstellen.

Eventuell nutze ich Jinja auch einfach viel zu wenig aus.
Könnt ihr mir vielleicht ein paar Anregungen und Tipps dazu geben? Wie würdet ihr es intelligent und strukturiert Aufbauen?

MfG,
CracKPod
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Re: Jinja2 Projekt - "PyBlogger"

Beitragvon sma » Mittwoch 3. Dezember 2008, 20:44

Crazed hat geschrieben:Ihr solltet aber wissen das ich momentan die "Posts" tatsächlich in Python Dateien schreibe weil es dadurch einfach viel einfacher ist die relevanten Daten aus den Dateien zu filtern.


Eine Funktion, Konfigurationen im eigenen Format in dicts umzuwandeln in 18 Zeilen Python. Dann brauchst du auch keine Python-Dateien mehr.

Code: Alles auswählen

# encoding: utf-8
s = u"""
 title: An example
author: Stefan
  date: 2008-12-02 12:03:00
  text:
This is the blog entry and
a longer text which can have
paragraphs.

This text goes up to but not
including a "•" in a single
line.

keywords: foo, bar, baz
"""

import re

RE = re.compile(r"\s*(\w+):(?:\s+(.*)\s*)?$", re.U)

def parse(s):
    attrs = {}
    lines = iter(s.splitlines())
    for line in lines:
        m = RE.match(line)
        if m:
            if m.group(2) is None:
                value = []
                for line in lines:
                    if line == u"•":
                        break
                    value.append(line)
                attrs[m.group(1)] = "\n".join(value)
            else:
                attrs[m.group(1)] = m.group(2)
    return attrs

print parse(s)

Stefan
Benutzeravatar
tiax
User
Beiträge: 152
Registriert: Samstag 23. Juli 2005, 17:28
Kontaktdaten:

Beitragvon tiax » Mittwoch 3. Dezember 2008, 20:51

Hi,

recht "einfach" ist es auch, diese Dinge einfach oben an den Anfang der Datei zu schreiben:

Code: Alles auswählen

title: blablabla
tags: a,b,c


und dann das email modul zu verwenden, um es wie eine nach rfc2822 formatierte mail zu behandeln
Ne invoces expellere non possis
xmpp:florian@florianheinle.de
Crazed
User
Beiträge: 171
Registriert: Sonntag 18. Mai 2008, 11:44

Beitragvon Crazed » Mittwoch 3. Dezember 2008, 21:08

Vielen Dank für die beiden Vorschläge!

Aber sma, wir wollen doch nachher reST parsen, wir werden warhscheinlich so nicht an die Daten bei einer reST Formatierung des Postes kommen, aber wenn es geht wollen wir auch verschiedene MarkUp engines unterstützen, danke für die Idee!
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Beitragvon Y0Gi » Donnerstag 4. Dezember 2008, 14:52

.oO(Anderen Projektnamen! Anderen Projektnamen!)
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Beitragvon sma » Samstag 6. Dezember 2008, 12:13

Crazed hat geschrieben:Aber sma, wir wollen doch nachher reST parsen

Wollen wir das? Wusste ich gar nicht ;)

Crazed hat geschrieben: wir werden warhscheinlich so nicht an die Daten bei einer reST Formatierung des Postes kommen

Doch wenn ihr es einfach nur wollt (und nicht ich), das Eingabeformat, was ich vorstellte, hat mit reST oder einem anderen Textformat keine Probleme, da ich ja ein eher ungewöhnliches Unicode-Zeichen (das aber auf dem Mac sehr schon griffig auf Alt+Ü liegt) benutze. Einzig wichtig ist, dass diese Endmarkierung - wie sie auch immer aussieht - nicht Teil des restlichen Dokuments ist.

Oder meintest du, dass du nachher nur ein reST-Dokument haben willst und aus diesem dann die Metadaten ziehen willst? Das wäre natürlich dann ein anderer Ansatz, der auch ginge.

Stefan
BlackJack

Beitragvon BlackJack » Samstag 6. Dezember 2008, 12:28

So ungewöhnlich ist das Zeichen nicht, das aktuelle `docutils` erkennt das als Bulletzeichen für Listen an.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder