{{- /*
  Resolve a Hugo resource by path.

  Attempts to find the resource from page resources first, then global resources.
  Returns 0 if the resource is not found.

  @param {String} .Path - The resource path (page resource or global resource)
  @param {Object} [.Resources] - Page resources collection
  @return {resource.Resource|Number} The resolved resource, or 0 if not found
*/ -}}

{{- $Resources := .Resources | default page.Resources -}}
{{- $resource := 0 -}}
{{- $url := urls.Parse .Path -}}
{{- if not (partial "function/is-url-remote.html" $url) -}}
  {{- $dest := strings.TrimPrefix "./" $url.Path -}}
  {{- if $Resources -}}
    {{- with $Resources.GetMatch $dest -}}
      {{- $resource = . -}}
    {{- end -}}
  {{- end -}}
  {{- if not $resource -}}
    {{- with resources.Get $dest -}}
      {{- $resource = . -}}
    {{- end -}}
  {{- end -}}
{{- end -}}

{{- return $resource -}}
