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
}