ref: 08c30b6e447921104516ef28e6dbc08b674c5354
parent: bff1f1e6893a365056afd8abb47b81c592c12d55
author: spf13 <[email protected]>
date: Thu May 1 21:04:48 EDT 2014
Using new helpers in page.go
--- a/hugolib/page.go
+++ b/hugolib/page.go
@@ -156,15 +156,7 @@
func (p *Page) guessSection() {
if p.Section == "" {
- x := strings.Split(p.FileName, "/")
- x = x[:len(x)-1]
- if len(x) == 0 {
- return
- }
- if x[0] == "content" {
- x = x[1:]
- }
- p.Section = path.Join(x...)
+ p.Section = helpers.GuessSection(p.FileName)
}
}
@@ -582,25 +574,45 @@
return nil
}
-func (page *Page) SaveSourceAs(path string) {
+func (page *Page) SafeSaveSourceAs(path string) error {
+ return page.saveSourceAs(path, true)
+}
+
+func (page *Page) SaveSourceAs(path string) error {
+ return page.saveSourceAs(path, false)
+}
+
+func (page *Page) saveSourceAs(path string, safe bool) error {
b := new(bytes.Buffer)
b.Write(page.sourceFrontmatter)
b.Write(page.sourceContent)
- page.saveSource(b.Bytes(), path)
+ err := page.saveSource(b.Bytes(), path, safe)
+ if err != nil {
+ return err
+ }
+ return nil
}
-func (page *Page) saveSource(by []byte, inpath string) (err error) {
+func (page *Page) saveSource(by []byte, inpath string, safe bool) (err error) {
if !path.IsAbs(inpath) {
inpath = helpers.AbsPathify(inpath)
}
jww.INFO.Println("creating", inpath)
- helpers.WriteToDisk(inpath, bytes.NewReader(by))
+
+ if safe {
+ err = helpers.SafeWriteToDisk(inpath, bytes.NewReader(by))
+ } else {
+ err = helpers.WriteToDisk(inpath, bytes.NewReader(by))
+ }
+ if err != nil {
+ return
+ }
return nil
}
-func (page *Page) SaveSource() {
- page.SaveSourceAs(page.FullFilePath())
+func (page *Page) SaveSource() error {
+ return page.SaveSourceAs(page.FullFilePath())
}
func (p *Page) ProcessShortcodes(t Template) {