added information about calendar events and how they need to be formatted in order to appear unter "/termine/"
This commit is contained in:
parent
00a25fdad9
commit
e7efa26817
46
README.md
46
README.md
@ -133,6 +133,52 @@ Alle Werke und Texte hingegen verwenden das Template `article.html`.
|
||||
|
||||
### Termine neu einlesen
|
||||
|
||||
Um die Termine automatisch einzulesen und dem Pelican-Template `theme/templates/termine.html` zur Verfügung zu stellen, gibt es das Python-Script `utils/refresh_events.py`. Dieses Script
|
||||
|
||||
1. öffnet die Config-Datei `events.ini` – diese muss im Hauptverzeichnis des Projekts liegen –,
|
||||
2. öffnet den in der Config-Datei definierten CalDAV-Kalender und liest daraus alle Events ein, die der Kategorie "Veranstaltung" angehören,
|
||||
3. bereitet die Event-Daten für die Weiterverarbeitung auf
|
||||
4. und speichert sie im YAML-Format in der Datei `content/pages/termine.md`.
|
||||
|
||||
Im Development-Modus muss `refresh_events.py` per Hand aufgerufen werden; im Publication-Modus geschieht dies automatisch.
|
||||
|
||||
Damit eine Lesung aus dem Kalender auf die Termine-Seite übernommen wird, muss sie folgende Voraussetzungen erfüllen:
|
||||
|
||||
1. im richtigen Kalender eingetragen sein (duh)
|
||||
2. der Kategorie "Veranstaltung" angehören
|
||||
3. in der Zukunft liegen
|
||||
|
||||
Standardmäßig werden alle Properties des "icalender"-Standards eingelesen und als Metadaten abgespeichert; ausgenommen davon sind nur die Properties "action", "repeat" und "trigger". Konkret werden vom Template die folgenden Properties ausgewertet:
|
||||
|
||||
* "dtstart": wird vom Script in "startdate" und ggf. "starttime" aufgespalten
|
||||
* "dtend": wird vom Script zu "enddate" umgewandelt, wenn es vom Startdatum abweicht
|
||||
* "summary": der Titel der Veranstaltung
|
||||
* "description": zusäzliche Informationen zur Veranstaltung
|
||||
* bestimmte Einträge in "categories":
|
||||
* "Moderation": hängt "(Moderation)" an die Summary an
|
||||
* "Babelsberger Lesesalon", "Andere Welten": gibt dem Datumsfeld des Termins die der entsprechenden Veranstaltungsreihe zugeordnete Hintergrundfarbe
|
||||
* "attach": das Script geht die dem Event angehängten Links durch und stellt dem Template zur Verfügung:
|
||||
* max. einen Link zu einer Webseite (als "link")
|
||||
* max. einen Link zu einer Bilddatei (als "image")
|
||||
|
||||
Zu den Attachments ist Folgendes zu beachten:
|
||||
|
||||
* Alle Links, die zu einer Bilddatei verweisen (bei denen der "Pfad"-Teil der URL auf eine Datei mit einer Bilddatei-Suffix, z.B. "jpg", verweist), gelten als Bild-Links. Alle akzeptierten Suffixe sind in der Script-Variable "image_suffixes" definiert.
|
||||
* Alle Links, die nicht als Bild-Links eingestugt werden, gelten als reguläre Links.
|
||||
* Wenn mehrere Bild- oder reguläre Links existieren, wird der jeweils letzte verwendet.
|
||||
* Soll auf eine lokale Bilddatei verwiesen werden, muss der Hostname des "attach"-Eintrags `localhost`, und eine gleićhnamige Datei muss im Verzeichnis `content/images/termine/` vorhanden sein. URL-Schema, -Pfad und Query-Parameter werden nicht ausgewertet. Attachments, die auf Webseiten oder auf Bilddateien auf externen Servern verweisen, bleiben unverändert.
|
||||
|
||||
Beispiele:
|
||||
|
||||
| Attachment URL | URL-Typ | aufbereitete URL |
|
||||
| -------------- | ---------------- | ------- |
|
||||
| `http://localhost/spam/eggs/image.jpg` | Bild | `../images/termine/image.jpg` |
|
||||
| `ftp://localhost/image2.png` | Bild | `../images/termine/image2.jpg` |
|
||||
| `https://example.com/path/to/image3.png` | Bild | (unverändert) |
|
||||
| `http://veranstaltungsort.de/kalender/coole-lesung-mit-tobi.html` | Link | (unverändert) |
|
||||
| `https://127.0.0.1/foo/bar/image4.webp?size=400&height=260` | Bild | `../images/termine/image4.webp` |
|
||||
|
||||
|
||||
|
||||
|
||||
## TODOs
|
||||
|
||||
Loading…
Reference in New Issue
Block a user