{{ $formattedDate := "" }} {{ $rawDate := . }} {{- $date := "1800-01-01" -}} {{- $datePrecision := "day" -}} {{ if reflect.IsMap $rawDate }} {{ partial "FormatHistoricalDate" ($rawDate.from) }} - {{ partial "FormatHistoricalDate" ($rawDate.to) }} {{ else }} {{ $rawDate = string $rawDate }} {{ if eq (len $rawDate) 4 }} {{ $datePrecision = "year" }} {{ $date = printf "%s-01-01" $rawDate }} {{ end }} {{ if eq (len $rawDate) 7 }} {{ $datePrecision = "month" }} {{ $date = printf "%s-01" $rawDate }} {{ end }} {{ if eq (len $rawDate) 10 }} {{ $datePrecision = "day" }} {{ $date = $rawDate }} {{ end }} {{- if eq $datePrecision "year" -}} {{ $formattedDate = ($date | time.Format "2006") }} {{- end -}} {{- if eq $datePrecision "month" -}} {{ $formattedDate = ($date | time.Format "January 2006") }} {{- end -}} {{- if eq $datePrecision "day" -}} {{ $formattedDate = ($date | time.Format "2 January 2006") }} {{- end -}} {{ end }} {{ printf "%s" $formattedDate }}