Files
HugoBlox-kit/layouts/partials/functions/get_address.html
T
George Cushen e6eb27deee feat: enable semantic address format to be localised
For example, US sites can use the US address format and Chinese sites can use the Chinese address format.

A default address_format can be set in params.toml, which can be overriden on a per page basis using a parameter of the same name in a page's front matter. Optionally, multilingual sites may wish to add a default format for each site in languages.toml.

BREAKING CHANGES
- list_delimiter removed from params.toml
- address_format added to params.toml
- [address_formats] added to params.toml

Close #1344
2019-11-16 17:55:17 +00:00

22 lines
1.5 KiB
HTML

{{/* Function to return a formatted address given a semantic address. */}}
{{/* Check for valid site config. */}}
{{ if not site.Params.address_format }}{{errorf "Address format missing from `params.toml`!"}}{{end}}
{{ if not site.Params.address_formats }}{{errorf "Address formats missing from `params.toml`!"}}{{end}}
{{ $page := . }}
{{ $address := .address }}
{{ $format_name := $page.Params.address_format | default site.Params.address_format | default "en-us" }}
{{ $format := index site.Params.address_formats $format_name }}
{{ $address_display := slice }}
{{ range $k, $v := $format.order }}
{{ if eq $v "street" | and $address.street }}{{$address_display = $address_display | append $address.street | append (index $format.delimiters $k | default "") }}{{end}}
{{ if eq $v "city" | and $address.city }}{{$address_display = $address_display | append $address.city | append (index $format.delimiters $k | default "") }}{{end}}
{{ if eq $v "region" | and $address.region }}{{$address_display = $address_display | append $address.region | append (index $format.delimiters $k | default "") }}{{end}}
{{ if eq $v "postcode" | and $address.postcode }}{{$address_display = $address_display | append $address.postcode | append (index $format.delimiters $k | default "") }}{{end}}
{{ if eq $v "country" | and $address.country }}{{$address_display = $address_display | append $address.country | append (index $format.delimiters $k | default "") }}{{end}}
{{end}}
{{ return (delimit $address_display "") }}