Compare commits
1 commit
staging
...
hugo-tempa
| Author | SHA1 | Date | |
|---|---|---|---|
| a84e1e2153 |
5 changed files with 11 additions and 44 deletions
|
|
@ -1 +0,0 @@
|
|||
{{ block "main" . }}{{ .Content }}{{ end }}
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
BEGIN:VCALENDAR
|
||||
VERSION:2.0
|
||||
PRODID:-//CCCB//Calendar//DE
|
||||
{{ with .Title }}
|
||||
X-WR-CALNAME:{{ . }}
|
||||
{{ end }}
|
||||
CALSCALE:GREGORIAN
|
||||
METHOD:PUBLISH
|
||||
{{ range .Pages }}
|
||||
{{ if .Date }}
|
||||
BEGIN:VEVENT
|
||||
UID:{{ .File.UniqueID }}@berlin.ccc.de
|
||||
DTSTAMP:{{ .Date.Format "20060102T150405Z" }}
|
||||
DTSTART:{{ .Date.Format "20060102T150405Z" }}
|
||||
SUMMARY:{{ .Title }}
|
||||
DESCRIPTION:{{ .Summary | plainify }}
|
||||
URL:{{ .Permalink }}
|
||||
END:VEVENT
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
END:VCALENDAR
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
BEGIN:VCALENDAR
|
||||
VERSION:2.0
|
||||
PRODID:-//CCCB//Calendar//DE
|
||||
{{ with .Title }}
|
||||
X-WR-CALNAME:{{ . }}
|
||||
{{ end }}
|
||||
CALSCALE:GREGORIAN
|
||||
METHOD:PUBLISH
|
||||
{{ if .Date }}
|
||||
BEGIN:VEVENT
|
||||
UID:{{ .File.UniqueID }}@berlin.ccc.de
|
||||
DTSTAMP:{{ .Date.Format "20060102T150405Z" }}
|
||||
DTSTART:{{ .Date.Format "20060102T150405Z" }}
|
||||
{{ with .Params.event.end }}DTEND:{{ dateFormat "20060102T150405Z" . }}{{ end }}
|
||||
SUMMARY:{{ .Title }}
|
||||
DESCRIPTION:{{ .Summary | plainify }}
|
||||
URL:{{ .Permalink }}
|
||||
{{ with .Params.location }}LOCATION:{{ . }}{{ end }}
|
||||
END:VEVENT
|
||||
{{ end }}
|
||||
END:VCALENDAR
|
||||
|
|
@ -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