get_address.html 1.5 KB

123456789101112131415161718192021
  1. {{/* Function to return a formatted address given a semantic address. */}}
  2. {{/* Check for valid site config. */}}
  3. {{ if not site.Params.address_format }}{{errorf "Address format missing from `params.toml`!"}}{{end}}
  4. {{ if not site.Params.address_formats }}{{errorf "Address formats missing from `params.toml`!"}}{{end}}
  5. {{ $page := . }}
  6. {{ $address := .address }}
  7. {{ $format_name := $page.Params.address_format | default site.Params.address_format | default "en-us" }}
  8. {{ $format := index site.Params.address_formats $format_name }}
  9. {{ $address_display := slice }}
  10. {{ range $k, $v := $format.order }}
  11. {{ if eq $v "street" | and $address.street }}{{$address_display = $address_display | append $address.street | append (index $format.delimiters $k | default "") }}{{end}}
  12. {{ if eq $v "city" | and $address.city }}{{$address_display = $address_display | append $address.city | append (index $format.delimiters $k | default "") }}{{end}}
  13. {{ if eq $v "region" | and $address.region }}{{$address_display = $address_display | append $address.region | append (index $format.delimiters $k | default "") }}{{end}}
  14. {{ if eq $v "postcode" | and $address.postcode }}{{$address_display = $address_display | append $address.postcode | append (index $format.delimiters $k | default "") }}{{end}}
  15. {{ if eq $v "country" | and $address.country }}{{$address_display = $address_display | append $address.country | append (index $format.delimiters $k | default "") }}{{end}}
  16. {{end}}
  17. {{ return (delimit $address_display "") }}