Bug: Panic for resources.GetMatch("https://picsum.photos/400/300.webp") on Windows

First, your example site directory is confusing. I see now what you mean. But when I look in content and see what looks like a site structure, well… Maybe I didn’t look at it as carefully as I should have, but I wouldn’t be surprised if others were similarly confused.

Second, you need to refactor func-resource.html so that you’re not passing a URL to a method that expects a path.

{{ $u := $url | urls.Parse }}

{{ if $u.IsAbs }}
    {{ with resources.GetRemote $u.String }}
        {{ $result = . }}
    {{ end }}
{{ else }}
    {{ with $page.Resources.GetMatch $u.Path }}
        {{ $result = . }}
    {{ else }}
        {{ with $page.Resources.Get $u.Path }}
            {{ $result = . }}
        {{ else }}
            {{ with resources.GetMatch $u.Path }}
                {{ $result = . }}
            {{ else }}
                {{ with resources.Get $u.Path }}
                    {{ $result = . }}
                {{ end }}
            {{ end }}
        {{ end }}
    {{ end }}
{{ end }}

It aslo wouldn’t hurt if the remote call had some error or warning handlers, something like:

{{ $r := "" }}
{{ $u := urls.Parse "https://example.org/kitten.jpg" }}

{{ if $u.IsAbs }}
  {{ with resources.GetRemote $u.String }}
    {{ with .Err }}
      {{ errorf "%s" . }}
    {{ else }}
      {{ $r = . }}
    {{ end }}
  {{ else }}
    {{ errorf "Unable to get remote resource %q" $u.String }}
  {{ end }}
{{ end }}