ref: 60c9f3b1c34b69771e25a66906f150f460d73223
parent: 57e10f174e51cc5e1cf5f37eed30a0f3b153dd64
author: Bjørn Erik Pedersen <[email protected]>
date: Fri Jan 12 12:46:50 EST 2018
resource: Make GetByPrefix work for Page resources Fixes #4264
--- a/hugolib/page_bundler_test.go
+++ b/hugolib/page_bundler_test.go
@@ -111,6 +111,10 @@
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]
--- a/resource/resource.go
+++ b/resource/resource.go
@@ -72,8 +72,15 @@
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
}