{{- /*
Renders an absolute URL to the source code for an embedded template.

Accepts either positional or named parameters, and depends on the
embedded_templates.toml file in the data directory.

@param {string} filename The embedded template's file name, excluding extension.

@returns template.HTML

@example {{% et robots.txt %}}
@example {{% et filename=robots.txt %}}
*/}}

{{- /* Get parameters. */}}
{{- $filename := "" -}}
{{- if .IsNamedParams -}}
 {{- $filename = .Get "filename" -}}
{{- else -}}
 {{- $filename = .Get 0 -}}
{{- end -}}

{{- /* Render. */}}
{{- with $filename -}}
  {{- with site.Data.embedded_template_urls -}}
    {{- with index . $filename -}}
      {{- urls.JoinPath site.Data.embedded_template_urls.base_url . -}}
    {{- else -}}
      {{- errorf "The %q shortcode was unable to find a URL for the embedded template named %q. Check the name. See %s" $.Name $filename $.Position -}}
    {{- end -}}
  {{- else -}}
    {{- errorf "The %q shortcode was unable to find the embedded_template_urls data file in the site's data directory. See %s" $.Name $.Position -}}
  {{- end -}}
{{- else -}}
 {{- errorf "The %q shortcodes requires a named or positional parameter, the file name of the embedded template, excluding its extension. See %s" .Name .Position -}}
{{- end -}}
