diff --git a/calendar_event.templ b/calendar_event.templ
index 71a8830..3113a9f 100644
--- a/calendar_event.templ
+++ b/calendar_event.templ
@@ -12,10 +12,51 @@ templ calendarEventTemplate(params CalendarPageParams) {
params.Event,
) {
- { params.CalendarEvent.Title }
+ { params.CalendarEvent.Title }
-
-
+
+
+ if params.StartAtDate == params.EndAtDate {
+
+
Date
+
+
{ params.StartAtDate }
+ if params.StartAtTime != "" && params.EndAtTime != "" {
+
From { params.StartAtTime } to { params.EndAtTime }
+ }
+
+
+ } else {
+
+
Start date
+
+
{ params.StartAtDate }
+
{ params.StartAtTime }
+
+
+
+
End date
+
+
{ params.EndAtDate }
+
{ params.EndAtTime }
+
+
+ }
+
+
Location
+
+ { params.CalendarEvent.Locations[0] }
+
+
+
+
+
+ @templ.Raw(params.Content)
+
+ if params.CalendarEvent.Image != "" {
+
+ }
+
for _, v := range params.CalendarEvent.Hashtags {
diff --git a/data.go b/data.go
index 90701c2..a46286e 100644
--- a/data.go
+++ b/data.go
@@ -145,6 +145,7 @@ func grabData(ctx context.Context, code string, isProfileSitemap bool) (*Data, e
case 31922, 31923:
data.templateId = CalendarEvent
data.kind31922Or31923Metadata = &Kind31922Or31923Metadata{CalendarEvent: nip52.ParseCalendarEvent(*event)}
+ data.content = event.Content
default:
data.templateId = Other
}
diff --git a/pages.go b/pages.go
index c3b5e4b..5f4a859 100644
--- a/pages.go
+++ b/pages.go
@@ -239,10 +239,12 @@ type CalendarPageParams struct {
BaseEventPageParams
OpenGraphParams
HeadParams
- Details DetailsParams
-
- Content template.HTML
-
+ Details DetailsParams
+ StartAtDate string
+ StartAtTime string
+ EndAtDate string
+ EndAtTime string
+ Content template.HTML
CalendarEvent Kind31922Or31923Metadata
Clients []ClientReference
}
diff --git a/render_event.go b/render_event.go
index 56115bf..238b21e 100644
--- a/render_event.go
+++ b/render_event.go
@@ -444,6 +444,33 @@ func renderEvent(w http.ResponseWriter, r *http.Request) {
if data.kind31922Or31923Metadata.Image != "" {
opengraph.Image = data.kind31922Or31923Metadata.Image
}
+
+ // Fallback for deprecated 'name' field
+ if data.kind31922Or31923Metadata.Title == "" {
+ for _, tag := range data.event.Tags {
+ if tag[0] == "name" {
+ data.kind31922Or31923Metadata.Title = tag[1]
+ break
+ }
+ }
+ }
+
+ var StartAtDate, StartAtTime string
+ StartAtDate = data.kind31922Or31923Metadata.Start.Format("02 January 2006")
+ if data.kind31922Or31923Metadata.Start.Hour() != 0 ||
+ data.kind31922Or31923Metadata.Start.Minute() != 0 ||
+ data.kind31922Or31923Metadata.Start.Second() != 0 {
+ StartAtTime = data.kind31922Or31923Metadata.Start.Format("15:04")
+ }
+
+ var EndAtDate, EndAtTime string
+ EndAtDate = data.kind31922Or31923Metadata.End.Format("02 January 2006")
+ if data.kind31922Or31923Metadata.End.Hour() != 0 ||
+ data.kind31922Or31923Metadata.End.Minute() != 0 ||
+ data.kind31922Or31923Metadata.End.Second() != 0 {
+ EndAtTime = data.kind31922Or31923Metadata.End.Format("15:04")
+ }
+
component = calendarEventTemplate(CalendarPageParams{
BaseEventPageParams: baseEventPageParams,
OpenGraphParams: opengraph,
@@ -453,9 +480,14 @@ func renderEvent(w http.ResponseWriter, r *http.Request) {
NeventNaked: data.neventNaked,
},
- Details: detailsData,
- Content: template.HTML(data.content),
- Clients: generateClientList(data.event.Kind, data.naddr),
+ StartAtDate: StartAtDate,
+ StartAtTime: StartAtTime,
+ EndAtDate: EndAtDate,
+ EndAtTime: EndAtTime,
+ CalendarEvent: *data.kind31922Or31923Metadata,
+ Details: detailsData,
+ Content: template.HTML(data.content),
+ Clients: generateClientList(data.event.Kind, data.naddr),
})
case Other:
detailsData.HideDetails = false // always open this since we know nothing else about the event