shithub: hugo

Download patch

ref: 7a51a8a5a32881c01dcd472d818b4d774a487935
parent: b4bcc591e45e9526b7eb9fe77f355da5ead8e627
parent: 97eb9225a72fd08f671e5000bbc4c94cf6b78d7e
author: Steve Francia <[email protected]>
date: Tue Aug 13 16:03:18 EDT 2013

Merge pull request #38 from noahcampbell/workflow_dotfile

Workflow dotfile

--- /dev/null
+++ b/hugolib/content_directory_test.go
@@ -1,0 +1,25 @@
+package hugolib
+
+import (
+	"testing"
+)
+
+func TestIgnoreDotFiles(t *testing.T) {
+	tests := []struct {
+		path string
+		ignore bool
+	} {
+		{"barfoo.md", false},
+		{"foobar/barfoo.md", false},
+		{"foobar/.barfoo.md", true},
+		{".barfoo.md", true},
+		{".md", true},
+		{"", true},
+	}
+
+	for _, test := range tests {
+		if ignored := ignoreDotFile(test.path); test.ignore != ignored {
+			t.Errorf("File not ignored.  Expected: %t, got: %t", test.ignore, ignored)
+		}
+	}
+}
--- a/hugolib/path_seperators_test.go
+++ b/hugolib/path_seperators_test.go
@@ -23,10 +23,10 @@
 }
 
 func TestNewPageWithFilePath(t *testing.T) {
-	toCheck := []struct{
-		input string
+	toCheck := []struct {
+		input   string
 		section string
-		layout string
+		layout  string
 	}{
 		{filepath.Join("sub", "foobar.html"), "sub", "sub/single.html"},
 		{filepath.Join("content", "sub", "foobar.html"), "sub", "sub/single.html"},
@@ -47,5 +47,3 @@
 		}
 	}
 }
-
-
--- a/hugolib/path_seperators_windows_test.go
+++ b/hugolib/path_seperators_windows_test.go
@@ -7,7 +7,7 @@
 func TestTemplatePathSeperator(t *testing.T) {
 	config := Config{
 		LayoutDir: "c:\\a\\windows\\path\\layout",
-		Path: "c:\\a\\windows\\path",
+		Path:      "c:\\a\\windows\\path",
 	}
 	s := &Site{Config: config}
 	if name := s.generateTemplateNameFrom("c:\\a\\windows\\path\\layout\\sub1\\index.html"); name != "sub1/index.html" {
--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -106,7 +106,9 @@
 	site.timerStep("render shortcodes")
 	site.AbsUrlify()
 	site.timerStep("absolute URLify")
-	site.RenderIndexes()
+	if err = site.RenderIndexes(); err != nil {
+		return
+	}
 	site.RenderIndexesIndexes()
 	site.timerStep("render and write indexes")
 	site.RenderLists()
@@ -199,12 +201,15 @@
 			site.Directories = append(site.Directories, path)
 			return nil
 		} else {
+			if ignoreDotFile(path) {
+				return nil
+			}
 			site.Files = append(site.Files, path)
 			return nil
 		}
 	}
 
-	filepath.Walk(s.Config.GetAbsPath(s.Config.ContentDir), walker)
+	filepath.Walk(s.absContentDir(), walker)
 
 	s.Info = SiteInfo{
 		BaseUrl: template.URL(s.Config.BaseUrl),
@@ -214,6 +219,10 @@
 	}
 
 	s.Shortcodes = make(map[string]ShortcodeFunc)
+}
+
+func ignoreDotFile(path string) bool {
+	return filepath.Base(path)[0] == '.'
 }
 
 func (s *Site) absLayoutDir() string {