{{- $context := .context -}}
{{- $setup := .setup -}}
{{- $separator := "&" -}}
{{- $title := $context.Title | transform.HTMLEscape -}}
{{- $description := $context.Summary | transform.Plainify | transform.HTMLEscape -}}
{{- $permalink := $context.Permalink | transform.HTMLEscape -}}
{{- with $setup.separator -}}
  {{- $separator = . -}}
{{- end -}}
{{- $link := fmt.Printf "%s%s" $setup.link "?" -}}
{{- range $key, $value := $setup.particles -}}
  {{- if compare.Eq $key "params" -}}
    {{- $link = fmt.Printf "%s%s%s" $link $separator $value -}}
  {{- else -}}
    {{- if compare.Eq $value "description" -}}
      {{- $link = fmt.Printf "%s%s%s" $link $separator (collections.Querify $key $description) -}}
    {{- else if compare.Eq $value "title" -}}
      {{- $link = fmt.Printf "%s%s%s" $link $separator (collections.Querify $key $title) -}}
    {{- else if compare.Eq $value "permalink" -}}
      {{- $link = fmt.Printf "%s%s%s" $link $separator (collections.Querify $key $permalink) -}}
    {{- end -}}
  {{- end -}}
{{- end -}}
{{- return $link -}}
