War ein wenig Bastelei, aber seit dem heutigen Morgen habe ich – wenn ich dies richtig ueberblicken kann – auch noch die letzten Kleinigkeiten angepasst: im Laufe der vergangenen eineinhalb Tage habe ich die Machinerie hinter den Workshop Seiten auf Anuyoga.de fast komplett umgebaut. Ausgehen von der urspruenglichen Loesung, bei welcher ich mich der Liquid Rendering Engine bedient habe, ist nun der Switch zu einer Data-driven, Plugin-basierten Implementierung fertig. Als einen kleinen Nebeneffekt habe ich bei dieser Gelegenheit auch noch ein wenig an dem Layout gedreht, so dass dieses (hoffentlich) ein Stueck weiter besser lesbar und eleganter geworden ist.

Screenhot Anuyoga

Was ich persoenlich besonders an der nun gefundenen Loesung mag, ist die Tatsache, dass letzten Endes alles – wie dies bei einer vollwertigen Web-Anwendung der Fall waere – aus einem hinterlegten Datensatz erzeugt wird und ich mir die manualle Anpassung von Seiten sparen kann. Einer der wesentlichen Unterschiede zu einer richtigen Webanwendung, wie z.B. Ruby on Rails, ist u.a. dass ich mit einem recht einfachen Datenmodell arbeite, welches keine Datenbank erfordert; stattdessen sind die Informationen in einer Reihe einfacher YAML-Dateien abgelegt, welches seitens Jekyll von Hause aus als Data-Store unterstuetzt werden. Einer der Vorteil an dieser Sache ist, dass einfacher Texteditor reicht, um neue Inhalte – z.B. einen Workhop – hinzuzufuegen:

    - title:       "Yoga für moderne Menschen"
      subtitle:    "Alltag und Praxis nach André Van Lysebeth"
      start:       "2016-01-01T12:00Z"
      end:         "2016-01-01T16:00Z"
      date:        "2016-01-01"
      time:        "12:00-16:00"
      location:    "Atempause Damenfitness"
      costs:       "50 €"
      description: "Mehr Infos gibt es in Kürze."

Mit der nun gefundenen Implementierung kriege nun aus dem gleichen Datenbestand

  1. eine Uebersichtsseite der geplanten und vergangenen Workshops,
  2. eine Seite pro Workshop, auf welcher alle weiteren Details hinterlegt sind,
  3. die Definition eines Liquid Tags, mittels welchem ich Inhalte in andere Seiten einbetten kann.

Nachdem dies fertig ist, kann ich mir als naechstes anschauen, wie ich aus den gleichen Eingangsdaten iCalender Eintraege generiert kriege, damit sich die Workshop-Informationen mit einem einfachen Klick in den persoenlichen Kalender importieren lassen.