Add support for baseof.ace templates in themes. - hugo - [fork] hugo port for 9front
 (HTM) git clone git@git.drkhsh.at/hugo.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) Submodules
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 0987e98db368611ceae6e83f14bbf57b8330c110
 (DIR) parent 29e786aac5b3674b26f24fae6a8dd6ad92a12137
 (HTM) Author: Jonathan Anderson <jonathan.anderson@ieee.org>
       Date:   Thu, 18 Jun 2015 22:59:08 -0230
       
       Add support for baseof.ace templates in themes.
       
       When we find a template that requires a base template, we should also look
       for that base template in the current theme.
       
       Fixes #1215.
       
       Diffstat:
         M docs/content/templates/ace.md       |       2 ++
         M tpl/template.go                     |      10 +++++++++-
       
       2 files changed, 11 insertions(+), 1 deletion(-)
       ---
 (DIR) diff --git a/docs/content/templates/ace.md b/docs/content/templates/ace.md
       @@ -35,6 +35,8 @@ In Hugo the base template will be chosen in the following order:
        2. <current-path>/baseof.ace
        3. _default/<template-name>-baseof.ace, e.g. list-baseof.ace.
        4. _default/baseof.ace        
       +5. <themedir>/layouts/_default/<template-name>-baseof.ace
       +6. <themedir>/layouts/_default/baseof.ace
        ```
        
        In the above, `current-path` is where the corresponding inner template lives, `list.ace`, `single.ace`, `index.ace` ...
 (DIR) diff --git a/tpl/template.go b/tpl/template.go
       @@ -21,6 +21,7 @@ import (
                "github.com/spf13/hugo/helpers"
                "github.com/spf13/hugo/hugofs"
                jww "github.com/spf13/jwalterweatherman"
       +        "github.com/spf13/viper"
                "github.com/yosssi/ace"
                "html/template"
                "io"
       @@ -300,15 +301,22 @@ func (t *GoHTMLTemplate) loadTemplates(absPath string, prefix string) {
                                                //   2. <current-path>/baseof.ace
                                                //   3. _default/<template-name>-baseof.ace, e.g. list-baseof.ace.
                                                //   4. _default/baseof.ace
       +                                        //   5. <themedir>/layouts/_default/<template-name>-baseof.ace
       +                                        //   6. <themedir>/layouts/_default/baseof.ace
        
                                                currBaseAceFilename := fmt.Sprintf("%s-%s", helpers.Filename(path), baseAceFilename)
                                                templateDir := filepath.Dir(path)
       +                                        themeDir := filepath.Join(
       +                                                viper.GetString("WorkingDir"), "themes", viper.GetString("theme"))
        
                                                pathsToCheck := []string{
                                                        filepath.Join(templateDir, currBaseAceFilename),
                                                        filepath.Join(templateDir, baseAceFilename),
                                                        filepath.Join(absPath, "_default", currBaseAceFilename),
       -                                                filepath.Join(absPath, "_default", baseAceFilename)}
       +                                                filepath.Join(absPath, "_default", baseAceFilename),
       +                                                filepath.Join(themeDir, "layouts", "_default", currBaseAceFilename),
       +                                                filepath.Join(themeDir, "layouts", "_default", baseAceFilename),
       +                                        }
        
                                                for _, pathToCheck := range pathsToCheck {
                                                        if ok, err := helpers.Exists(pathToCheck, hugofs.OsFs); err == nil && ok {