Merge pull request #38 from noahcampbell/workflow_dotfile - 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 7a51a8a5a32881c01dcd472d818b4d774a487935
 (DIR) parent b4bcc591e45e9526b7eb9fe77f355da5ead8e627
 (HTM) Author: Steve Francia <steve.francia@gmail.com>
       Date:   Tue, 13 Aug 2013 20:03:18 -0700
       
       Merge pull request #38 from noahcampbell/workflow_dotfile
       
       Workflow dotfile
       Diffstat:
         A hugolib/content_directory_test.go   |      25 +++++++++++++++++++++++++
         M hugolib/path_seperators_test.go     |       8 +++-----
         M hugolib/path_seperators_windows_te… |       2 +-
         M hugolib/site.go                     |      13 +++++++++++--
       
       4 files changed, 40 insertions(+), 8 deletions(-)
       ---
 (DIR) diff --git a/hugolib/content_directory_test.go b/hugolib/content_directory_test.go
       @@ -0,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)
       +                }
       +        }
       +}
 (DIR) diff --git a/hugolib/path_seperators_test.go b/hugolib/path_seperators_test.go
       @@ -23,10 +23,10 @@ func TestDegenerateMissingFolderInPageFilename(t *testing.T) {
        }
        
        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 @@ func TestNewPageWithFilePath(t *testing.T) {
                        }
                }
        }
       -
       -
 (DIR) diff --git a/hugolib/path_seperators_windows_test.go b/hugolib/path_seperators_windows_test.go
       @@ -7,7 +7,7 @@ import (
        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" {
 (DIR) diff --git a/hugolib/site.go b/hugolib/site.go
       @@ -106,7 +106,9 @@ func (site *Site) Render() (err error) {
                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 @@ func (s *Site) initialize() {
                                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),
       @@ -216,6 +221,10 @@ func (s *Site) initialize() {
                s.Shortcodes = make(map[string]ShortcodeFunc)
        }
        
       +func ignoreDotFile(path string) bool {
       +        return filepath.Base(path)[0] == '.'
       +}
       +
        func (s *Site) absLayoutDir() string {
                return s.Config.GetAbsPath(s.Config.LayoutDir)
        }