shithub: hugo

Download patch

ref: 492327368848bcf21cfd23d5490bc47b6ea44897
parent: 930a3df1b79d21f005a63918b89cc01ae5a4cd9e
author: Bjørn Erik Pedersen <[email protected]>
date: Mon Mar 27 06:25:29 EDT 2017

tplimpl: Fix lookup with non-standard layout folder

--- a/tpl/tplimpl/template.go
+++ b/tpl/tplimpl/template.go
@@ -476,25 +476,23 @@
 				return nil
 			}
 
-			workingDir := t.PathSpec.WorkingDir()
-			themeDir := t.PathSpec.GetThemeDir()
+			var (
+				workingDir = t.PathSpec.WorkingDir()
+				themeDir   = t.PathSpec.GetThemeDir()
+				layoutDir  = t.PathSpec.LayoutDir()
+			)
 
 			if themeDir != "" && strings.HasPrefix(absPath, themeDir) {
 				workingDir = themeDir
+				layoutDir = "layouts"
 			}
 
-			li := strings.LastIndex(path, t.PathSpec.LayoutDir()) + len(t.PathSpec.LayoutDir()) + 1
-
-			if li < 0 {
-				// Possibly a theme
-				li = strings.LastIndex(path, "layouts") + 8
-			}
-
+			li := strings.LastIndex(path, layoutDir) + len(layoutDir) + 1
 			relPath := path[li:]
 
 			descriptor := output.TemplateLookupDescriptor{
 				WorkingDir: workingDir,
-				LayoutDir:  t.PathSpec.LayoutDir(),
+				LayoutDir:  layoutDir,
 				RelPath:    relPath,
 				Prefix:     prefix,
 				Theme:      t.PathSpec.Theme(),
@@ -509,6 +507,7 @@
 			tplID, err := output.CreateTemplateNames(descriptor)
 			if err != nil {
 				t.Log.ERROR.Printf("Failed to resolve template in path %q: %s", path, err)
+
 				return nil
 			}