shithub: hugo

Download patch

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
 		}