From 60c9f3b1c34b69771e25a66906f150f460d73223 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Fri, 12 Jan 2018 17:46:50 +0100 Subject: [PATCH] resource: Make GetByPrefix work for Page resources Fixes #4264 --- hugolib/page_bundler_test.go | 4 ++++ resource/resource.go | 9 ++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/hugolib/page_bundler_test.go b/hugolib/page_bundler_test.go index f43766fb8..084119241 100644 --- a/hugolib/page_bundler_test.go +++ b/hugolib/page_bundler_test.go @@ -111,6 +111,10 @@ func TestPageBundlerSite(t *testing.T) { assert.Contains(firstPage.Content, "TheContent") assert.Len(leafBundle1.Resources, 6) // 2 pages 3 images 1 custom mime type + assert.Equal(firstPage, pageResources.GetByPrefix("1")) + assert.Equal(secondPage, pageResources.GetByPrefix("2")) + assert.Nil(pageResources.GetByPrefix("doesnotexist")) + imageResources := leafBundle1.Resources.ByType("image") assert.Len(imageResources, 3) image := imageResources[0] diff --git a/resource/resource.go b/resource/resource.go index 9cf9524b8..4a535889d 100644 --- a/resource/resource.go +++ b/resource/resource.go @@ -72,8 +72,15 @@ func (r Resources) ByType(tp string) Resources { func (r Resources) GetByPrefix(prefix string) Resource { prefix = strings.ToLower(prefix) for _, resource := range r { - _, name := filepath.Split(resource.RelPermalink()) + var name string + f, ok := resource.(source.File) + if ok { + name = f.BaseFileName() + } else { + _, name = filepath.Split(resource.RelPermalink()) + } name = strings.ToLower(name) + if strings.HasPrefix(name, prefix) { return resource }