URI: 
       Merge pull request #10 from noahcampbell/master - hugo - [fork] hugo port for 9front
  HTML git clone git@git.drkhsh.at/hugo.git
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
   DIR README
   DIR LICENSE
       ---
   DIR commit 47783c1f0308e63fab656c090ed4d2985b7d98b4
   DIR parent 61258858af90fc43bea406af5f065d0b2e6c94dc
  HTML Author: Steve Francia <steve.francia@gmail.com>
       Date:   Thu,  1 Aug 2013 22:00:58 -0700
       
       Merge pull request #10 from noahcampbell/master
       
       Fixed section labels causing panic on windows.
       Diffstat:
         M .gitignore                          |       2 ++
         M hugolib/page.go                     |       2 +-
         M hugolib/site.go                     |      22 ++++++++++++++++------
         M main.go                             |      24 ++++++++++++++++--------
       
       4 files changed, 35 insertions(+), 15 deletions(-)
       ---
   DIR diff --git a/.gitignore b/.gitignore
       @@ -1,2 +1,4 @@
        hugo
        docs/public*
       +hugo.exe
       +*.swp
   DIR diff --git a/hugolib/page.go b/hugolib/page.go
       @@ -91,7 +91,7 @@ func initializePage(filename string) (page Page) {
        }
        
        func (p *Page) setSection() {
       -        x := strings.Split(p.FileName, "/")
       +        x := strings.Split(p.FileName, string(os.PathSeparator))
        
                if section := x[len(x)-2]; section != "content" {
                        p.Section = section
   DIR diff --git a/hugolib/site.go b/hugolib/site.go
       @@ -24,6 +24,7 @@ import (
                "path/filepath"
                "strings"
                "time"
       +        "errors"
                //"sync"
        )
        
       @@ -59,10 +60,13 @@ func NewSite(config *Config) *Site {
                return &Site{c: *config, timer: nitro.Initalize()}
        }
        
       -func (site *Site) Build() {
       -        site.Process()
       +func (site *Site) Build() (err error) {
       +        if err = site.Process(); err != nil {
       +                return
       +        }
                site.Render()
                site.Write()
       +        return nil
        }
        
        func (site *Site) Analyze() {
       @@ -70,14 +74,17 @@ func (site *Site) Analyze() {
                site.checkDescriptions()
        }
        
       -func (site *Site) Process() {
       +func (site *Site) Process() (err error){
                site.initialize()
                site.prepTemplates()
                site.timer.Step("initialize & template prep")
                site.CreatePages()
                site.timer.Step("import pages")
       -        site.BuildSiteMeta()
       +        if err = site.BuildSiteMeta(); err != nil {
       +                return
       +        }
                site.timer.Step("build indexes")
       +        return
        }
        
        func (site *Site) Render() {
       @@ -213,7 +220,7 @@ func (s *Site) CreatePages() {
                s.Pages.Sort()
        }
        
       -func (s *Site) BuildSiteMeta() {
       +func (s *Site) BuildSiteMeta() (err error) {
                s.Indexes = make(IndexList)
                s.Sections = make(Index)
        
       @@ -243,8 +250,11 @@ func (s *Site) BuildSiteMeta() {
                }
        
                s.Info.Indexes = s.Indexes.BuildOrderedIndexList()
       -
       +        if len(s.Pages) == 0 {
       +                return errors.New(fmt.Sprintf("Unable to build site metadata, no pages found in directory %s", s.c.ContentDir))
       +        }
                s.Info.LastChange = s.Pages[0].Date
       +        return
        }
        
        func (s *Site) RenderPages() {
   DIR diff --git a/main.go b/main.go
       @@ -90,7 +90,7 @@ func main() {
                        defer pprof.StopCPUProfile()
        
                        for i := 0; i < *cpuprofile; i++ {
       -                        _ = buildSite(config)
       +                        _, _ = buildSite(config)
                        }
                }
        
       @@ -108,15 +108,20 @@ func main() {
        
                if *watchMode {
                        fmt.Println("Watching for changes. Press ctrl+c to stop")
       -                _ = buildSite(config)
       +                _, err = buildSite(config)
       +                if err != nil {
       +                        fmt.Println(err)
       +                        return
       +                }
                        err := NewWatcher(config, *port, *server)
       -
                        if err != nil {
                                fmt.Println(err)
                        }
                }
        
       -        _ = buildSite(config)
       +        if _, err = buildSite(config); err != nil {
       +                fmt.Println(err)
       +        }
        
                if *server {
                        serve(*port, config)
       @@ -135,13 +140,16 @@ func serve(port string, config *hugolib.Config) {
                panic(http.ListenAndServe(":"+port, http.FileServer(http.Dir(config.GetAbsPath(config.PublishDir)))))
        }
        
       -func buildSite(config *hugolib.Config) *hugolib.Site {
       +func buildSite(config *hugolib.Config) (site *hugolib.Site, err error) {
                startTime := time.Now()
       -        site := hugolib.NewSite(config)
       -        site.Build()
       +        site = hugolib.NewSite(config)
       +        err = site.Build()
       +        if err != nil {
       +                return
       +        }
                site.Stats()
                fmt.Printf("in %v ms\n", int(1000*time.Since(startTime).Seconds()))
       -        return site
       +        return site, nil
        }
        
        func watchChange(c *hugolib.Config) {