shithub: hugo

Download patch

ref: 7ab28c564f89b32fd1a3db78a34db14587f54cad
parent: 92c31bbe10a68bb29c62535f5a7a6b4bfc80a21d
author: spf13 <[email protected]>
date: Fri Jul 26 14:06:13 EDT 2013

Adding support for destination dir, split out static

--- a/hugolib/config.go
+++ b/hugolib/config.go
@@ -27,13 +27,13 @@
 
 // config file items
 type Config struct {
-	SourceDir, PublishDir, BaseUrl, StaticDir string
-	Path, CacheDir, LayoutDir, DefaultLayout  string
-	ConfigFile                                string
-	Title                                     string
-	Indexes                                   map[string]string // singular, plural
-	ProcessFilters                            map[string][]string
-	BuildDrafts, UglyUrls, Verbose            bool
+	ContentDir, PublishDir, BaseUrl, StaticDir string
+	Path, CacheDir, LayoutDir, DefaultLayout   string
+	ConfigFile                                 string
+	Title                                      string
+	Indexes                                    map[string]string // singular, plural
+	ProcessFilters                             map[string][]string
+	BuildDrafts, UglyUrls, Verbose             bool
 }
 
 var c Config
@@ -51,7 +51,7 @@
 	}
 
 	// set defaults
-	c.SourceDir = "content"
+	c.ContentDir = "content"
 	c.LayoutDir = "layouts"
 	c.PublishDir = "public"
 	c.StaticDir = "static"
--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -165,7 +165,7 @@
 		return nil
 	}
 
-	filepath.Walk(s.c.GetAbsPath(s.c.SourceDir), walker)
+	filepath.Walk(s.c.GetAbsPath(s.c.ContentDir), walker)
 
 	s.Info = SiteInfo{BaseUrl: template.URL(s.c.BaseUrl), Title: s.c.Title, Config: &s.c}
 
@@ -176,8 +176,8 @@
 	if b, _ := dirExists(s.c.GetAbsPath(s.c.LayoutDir)); !b {
 		FatalErr("No layout directory found, expecting to find it at " + s.c.GetAbsPath(s.c.LayoutDir))
 	}
-	if b, _ := dirExists(s.c.GetAbsPath(s.c.SourceDir)); !b {
-		FatalErr("No source directory found, expecting to find it at " + s.c.GetAbsPath(s.c.SourceDir))
+	if b, _ := dirExists(s.c.GetAbsPath(s.c.ContentDir)); !b {
+		FatalErr("No source directory found, expecting to find it at " + s.c.GetAbsPath(s.c.ContentDir))
 	}
 	mkdirIf(s.c.GetAbsPath(s.c.PublishDir))
 }
--- a/main.go
+++ b/main.go
@@ -27,19 +27,20 @@
 )
 
 var (
-	baseUrl    = flag.StringP("base-url", "b", "", "hostname (and path) to the root eg. http://spf13.com/")
-	cfgfile    = flag.String("config", "", "config file (default is path/config.yaml|json|toml)")
-	checkMode  = flag.Bool("check", false, "analyze content and provide feedback")
-	draft      = flag.BoolP("build-drafts", "d", false, "include content marked as draft")
-	help       = flag.BoolP("help", "h", false, "show this help")
-	path       = flag.StringP("source", "s", "", "filesystem path to read files relative from")
-	verbose    = flag.BoolP("verbose", "v", false, "verbose output")
-	version    = flag.Bool("version", false, "which version of hugo")
-	cpuprofile = flag.Int("profile", 0, "Number of times to create the site and profile it")
-	watchMode  = flag.BoolP("watch", "w", false, "watch filesystem for changes and recreate as needed")
-	server     = flag.BoolP("server", "S", false, "run a (very) simple web server")
-	port       = flag.String("port", "1313", "port to run web server on, default :1313")
-	uglyUrls   = flag.Bool("uglyurls", false, "use /filename.html instead of /filename/ ")
+	baseUrl     = flag.StringP("base-url", "b", "", "hostname (and path) to the root eg. http://spf13.com/")
+	cfgfile     = flag.String("config", "", "config file (default is path/config.yaml|json|toml)")
+	checkMode   = flag.Bool("check", false, "analyze content and provide feedback")
+	draft       = flag.BoolP("build-drafts", "D", false, "include content marked as draft")
+	help        = flag.BoolP("help", "h", false, "show this help")
+	source      = flag.StringP("source", "s", "", "filesystem path to read files relative from")
+	destination = flag.StringP("destination", "d", "", "filesystem path to write files to")
+	verbose     = flag.BoolP("verbose", "v", false, "verbose output")
+	version     = flag.Bool("version", false, "which version of hugo")
+	cpuprofile  = flag.Int("profile", 0, "Number of times to create the site and profile it")
+	watchMode   = flag.BoolP("watch", "w", false, "watch filesystem for changes and recreate as needed")
+	server      = flag.BoolP("server", "S", false, "run a (very) simple web server")
+	port        = flag.String("port", "1313", "port to run web server on, default :1313")
+	uglyUrls    = flag.Bool("uglyurls", false, "use /filename.html instead of /filename/ ")
 )
 
 func usage() {
@@ -57,11 +58,15 @@
 		usage()
 	}
 
-	config := hugolib.SetupConfig(cfgfile, path)
+	config := hugolib.SetupConfig(cfgfile, source)
 	config.BuildDrafts = *draft
 	config.UglyUrls = *uglyUrls
 	config.Verbose = *verbose
 
+	if *destination != "" {
+		config.PublishDir = *destination
+	}
+
 	if *baseUrl != "" {
 		config.BaseUrl = *baseUrl
 	} else if *server {
@@ -194,7 +199,7 @@
 		return nil
 	}
 
-	filepath.Walk(c.GetAbsPath(c.SourceDir), walker)
+	filepath.Walk(c.GetAbsPath(c.ContentDir), walker)
 	filepath.Walk(c.GetAbsPath(c.LayoutDir), walker)
 
 	return a