From 03599c42d5d97cab187a29b935537a019076a24c Mon Sep 17 00:00:00 2001 From: George Cushen Date: Sun, 21 Jul 2019 19:40:58 +0100 Subject: [PATCH] feat: add support for multi-day events Previously, the talk layout was intended for talks (intra-day events). This commit adds support for more general events which can span multiple days. Close #1169 --- layouts/partials/functions/get_event_dates.html | 17 +++++++++++++++++ layouts/partials/li_card.html | 9 +-------- layouts/partials/li_compact.html | 9 +-------- layouts/partials/li_list.html | 9 +-------- layouts/talk/single.html | 11 +---------- 5 files changed, 21 insertions(+), 34 deletions(-) create mode 100644 layouts/partials/functions/get_event_dates.html diff --git a/layouts/partials/functions/get_event_dates.html b/layouts/partials/functions/get_event_dates.html new file mode 100644 index 00000000..db621b92 --- /dev/null +++ b/layouts/partials/functions/get_event_dates.html @@ -0,0 +1,17 @@ +{{/* Function to get event start and end dates/times. */}} +{{ $t1 := time .Date }}{{/* Start datetime. */}} +{{ $str := slice ((time $t1).Format site.Params.date_format) }}{{/* Init return string with start date. */}} +{{/* Show start time if not all day event. */}} +{{ if not .Params.all_day }}{{ $str = $str | append ((time $t1).Format (site.Params.time_format)) }}{{ end }} +{{/* Show event end date if provided. */}} +{{ if .Params.date_end }} + {{ $str = $str | append "—" }} + {{ $t2 := time .Params.date_end}}{{/* End datetime. */}} + {{/* Show end date if it differs to start date. */}} + {{ if not (eq $t1.Year $t2.Year | and (eq $t1.Month $t2.Month) | and (eq $t1.Day $t2.Day)) }} + {{ $str = $str | append ((time $t2).Format site.Params.date_format) }} + {{ end }} + {{/* Show end time if not all day event. */}} + {{ if not .Params.all_day }}{{ $str = $str | append ((time $t2).Format (site.Params.time_format)) }}{{ end }} +{{ end }} +{{ return (delimit $str " ") }} diff --git a/layouts/partials/li_card.html b/layouts/partials/li_card.html index caa0fe6d..d4888d26 100644 --- a/layouts/partials/li_card.html +++ b/layouts/partials/li_card.html @@ -36,14 +36,7 @@ {{ end }} - {{ $date := $item.Date }} - {{ (time $date).Format site.Params.date_format }} - {{ if not $item.Params.all_day }} - {{ (time $date).Format (site.Params.time_format | default "3:04 PM") }} - {{ with $item.Params.date_end }} - — {{ (time .).Format (site.Params.time_format | default "3:04 PM") }} - {{ end }} - {{ end }} + {{ partial "functions/get_event_dates" $item }} {{ with $item.Params.location }} diff --git a/layouts/partials/li_compact.html b/layouts/partials/li_compact.html index 242b5f4e..1e8b72c2 100644 --- a/layouts/partials/li_compact.html +++ b/layouts/partials/li_compact.html @@ -45,14 +45,7 @@ {{ if eq $item.Type "talk" }}
- {{ $date := $item.Date }} - {{ (time $date).Format site.Params.date_format }} - {{ if not $item.Params.all_day }} - {{ (time $date).Format (site.Params.time_format | default "3:04 PM") }} - {{ with $item.Params.date_end }} - — {{ (time .).Format (site.Params.time_format | default "3:04 PM") }} - {{ end }} - {{ end }} + {{ partial "functions/get_event_dates" $item }} {{ with $item.Params.location }} diff --git a/layouts/partials/li_list.html b/layouts/partials/li_list.html index 11ddfee7..05ce93f0 100644 --- a/layouts/partials/li_list.html +++ b/layouts/partials/li_list.html @@ -25,14 +25,7 @@ {{ if eq $item.Type "talk" }}