update fullcalendar json source

This commit is contained in:
teuserer 2024-03-14 22:22:31 +01:00
parent 182a3ae1dc
commit 88b9446398
2 changed files with 15 additions and 9 deletions

View file

@ -16,8 +16,8 @@ module Jekyll
events.each do |event| events.each do |event|
title = event.data['title'] title = event.data['title']
date = event.data.dig('event', 'date') || event.data['event_date'] start_date = event.data.dig('event', 'start') || event.data['event_date']
duration = event.data.dig('event', 'duration') end_date = event.data.dig('event', 'end') || event.data['event_date']
organizer = event.data.dig('event', 'organizer') || default_organizer organizer = event.data.dig('event', 'organizer') || default_organizer
location = event.data.dig('event', 'location') || default_location location = event.data.dig('event', 'location') || default_location
@ -31,12 +31,15 @@ module Jekyll
# Create new event and set its properties # Create new event and set its properties
ical_event = Icalendar::Event.new ical_event = Icalendar::Event.new
if duration if start_date > end_date
ical_event.dtstart = date raise StandardError.new "#{File.basename(event.path)}: Start date must not be greater than end date"
ical_event.dtend = date + duration.to_i * 60 end
if start_date < end_date
ical_event.dtstart = start_date
ical_event.dtend = end_date
else else
ical_event.dtstart = Icalendar::Values::Date.new(date) ical_event.dtstart = Icalendar::Values::Date.new(start_date)
ical_event.dtend = Icalendar::Values::Date.new(date) ical_event.dtend = Icalendar::Values::Date.new(end_date)
end end
ical_event.summary = title ical_event.summary = title
ical_event.description = description ical_event.description = description

View file

@ -6,10 +6,13 @@ permalink: /calendar-data/
[ [
{% for event in site.events %} {% for event in site.events %}
{% assign start = event.event.start | default: event.event_date %}
{% assign end = event.event.end | default: start %}
{ {
"title":"{{event.title}}", "title":"{{event.title}}",
"start": "{{event.event_date}}", "start": "{{start | date: "%Y-%m-%dT%H:%M:%S"}}",
"allDay":true, "end": "{{end | date: "%Y-%m-%dT%H:%M:%S"}}",
"allDay": {% if start == end %}true{% else %}false{% endif %},
"url":"{{event.url}}" "url":"{{event.url}}"
} }
{%unless forloop.last %},{%endunless%} {%unless forloop.last %},{%endunless%}