{{- if eq .Type "alert" }}
  {{- $alerts := dict
    "caution" (dict "color" "red" "icon" "exclamation-triangle")
    "important" (dict "color" "blue" "icon" "exclamation-circle")
    "note" (dict "color" "blue" "icon" "information-circle")
    "tip" (dict "color" "green" "icon" "light-bulb")
    "warning" (dict "color" "orange" "icon" "exclamation-triangle")
  }}

  {{- $alertTypes := slice }}
  {{- range $k, $_ := $alerts }}
    {{- $alertTypes = $alertTypes | append $k }}
  {{- end }}
  {{- $alertTypes = $alertTypes | sort }}

  {{- $alertType := strings.ToLower .AlertType }}
  {{- if in $alertTypes $alertType }}
    {{- partial "layouts/blocks/alert.html" (dict
      "color" (or ((index $alerts $alertType).color) "blue")
      "icon" (or ((index $alerts $alertType).icon) "information-circle")
      "text" .Text
      "title" .AlertTitle
      "class" .Attributes.class
      )
    }}
  {{- else }}
    {{- errorf `Invalid blockquote alert type. Received %s. Expected one of %s (case-insensitive). See %s.` .AlertType (delimit $alertTypes ", " ", or ") .Page.String }}
  {{- end }}
{{- else }}
  <blockquote {{- with .Attributes.class }}class="{{ . }}"{{- end }}>
    {{ .Text }}
  </blockquote>
{{- end }}
