Behebe Layoutauswahl unter aktuellem Hugo.
Die layouts/_default/*.calendar.html-Vorlagen werden in Hugo
≥0.158 fälschlich für die HTML-Ausgabe ausgewählt, sodass alle
Sektions- und Einzelseiten VCALENDAR- statt HTML-Inhalt
enthielten. Die Vorlagen waren ohnehin nie funktionsfähig
(Warnung „found no layout file for calendar"); die ICS-Feeds
liefern die abschnittsspezifischen Vorlagen unter
layouts/{veranstaltungen,datengarten,page}/.
list.xml.html bekommt aus demselben Grund die korrekte Endung
.xml.
tools/gen_upcoming.py vergleicht Datumsangaben jetzt
zeitzonenneutral, damit Events mit Z-Suffix keinen TypeError
auslösen.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
parent
607da4c5fe
commit
a84e1e2153
5 changed files with 11 additions and 44 deletions
|
|
@ -3,13 +3,23 @@
|
|||
import sys
|
||||
import logging
|
||||
import locale
|
||||
from dateutil.parser import parse
|
||||
from dateutil.parser import parse as _parse
|
||||
from datetime import datetime, timedelta
|
||||
from dateutil.rrule import rruleset, rrulestr
|
||||
|
||||
import icalendar
|
||||
|
||||
|
||||
def parse(value):
|
||||
# Some templates emit DTSTART with a trailing "Z" (e.g. 20260507T190000Z)
|
||||
# which produces tz-aware datetimes, while others emit naive local times.
|
||||
# Normalize to naive so comparisons and sorting don't mix the two.
|
||||
dt = _parse(value)
|
||||
if dt.tzinfo is not None:
|
||||
dt = dt.replace(tzinfo=None)
|
||||
return dt
|
||||
|
||||
|
||||
def vevent_to_event(event, rrstart=None):
|
||||
if rrstart == None:
|
||||
begin = parse(event["DTSTART"].to_ical())
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue