ref: 47587321d9a153ef4158739e8f238c850fb1ee7a
parent: 40fccf2251a7187f002165653d42178e2f53a49b
author: digitalcraftsman <digitalcraftsman@users.noreply.github.com>
date: Mon Nov 23 15:44:59 EST 2015
Add themesDir option to configuration themesDir can be used to change the default path of the themes folder. Fixes 1556
--- a/commands/hugo.go
+++ b/commands/hugo.go
@@ -210,6 +210,7 @@
viper.SetDefault("ArchetypeDir", "archetypes") viper.SetDefault("PublishDir", "public") viper.SetDefault("DataDir", "data")+ viper.SetDefault("ThemesDir", "themes") viper.SetDefault("DefaultLayout", "post") viper.SetDefault("BuildDrafts", false) viper.SetDefault("BuildFuture", false)@@ -514,7 +515,7 @@
filepath.Walk(helpers.AbsPathify(viper.GetString("LayoutDir")), walker) filepath.Walk(helpers.AbsPathify(viper.GetString("StaticDir")), walker) if helpers.ThemeSet() {- filepath.Walk(helpers.AbsPathify("themes/"+viper.GetString("theme")), walker)+ filepath.Walk(helpers.AbsPathify(viper.GetString("themesDir")+"/"+viper.GetString("theme")), walker)}
return a
--- a/commands/new.go
+++ b/commands/new.go
@@ -176,8 +176,8 @@
return newUserError("theme name needs to be provided")}
- createpath := helpers.AbsPathify(filepath.Join("themes", args[0]))- jww.INFO.Println("Creating theme at", createpath)+ createpath := helpers.AbsPathify(filepath.Join(viper.GetString("themesDir"), args[0]))+ jww.INFO.Println("creating theme at", createpath) if x, _ := helpers.Exists(createpath, hugofs.SourceFs); x {return newUserError(createpath, "already exists")
--- a/create/content.go
+++ b/create/content.go
@@ -132,7 +132,7 @@
search := []string{helpers.AbsPathify(viper.GetString("archetypeDir"))} if viper.GetString("theme") != "" {- themeDir := filepath.Join(helpers.AbsPathify("themes/"+viper.GetString("theme")), "/archetypes/")+ themeDir := filepath.Join(helpers.AbsPathify(viper.GetString("themesDir")+"/"+viper.GetString("theme")), "/archetypes/") if _, err := os.Stat(themeDir); os.IsNotExist(err) { jww.ERROR.Println("Unable to find archetypes directory for theme :", viper.GetString("theme"), "in", themeDir) } else {--- a/docs/content/overview/configuration.md
+++ b/docs/content/overview/configuration.md
@@ -130,7 +130,8 @@
staticdir: "static"
# display memory and timing of different steps of the program
stepAnalysis: false
- # theme to use (located in /themes/THEMENAME/)
+ # theme to use (located by default in /themes/THEMENAME/)
+ themesdir = "themes"
theme: ""
title: ""
# if true, use /filename.html instead of /filename/
--- a/helpers/path.go
+++ b/helpers/path.go
@@ -142,7 +142,7 @@
// If there is no theme, returns the empty string.
func GetThemeDir() string { if ThemeSet() {- return AbsPathify(filepath.Join("themes", viper.GetString("theme")))+ return AbsPathify(filepath.Join(viper.GetString("themesDir"), viper.GetString("theme")))}
return ""
}
--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -495,7 +495,7 @@
}
func (s *Site) absThemeDir() string {- return helpers.AbsPathify("themes/" + viper.GetString("theme"))+ return helpers.AbsPathify(viper.GetString("themesDir") + "/" + viper.GetString("theme"))}
func (s *Site) absLayoutDir() string {--
⑨