shithub: hugo

Download patch

ref: 1302ef9f636911296c737f0844036c9d5d604936
parent: cbd9506c296dba99c59fef310a16b21be12b7b63
author: spf13 <[email protected]>
date: Thu May 1 09:20:58 EDT 2014

Making site page initialization a bit more granular and accessible

--- a/hugolib/page.go
+++ b/hugolib/page.go
@@ -138,8 +138,6 @@
 	}
 }
 
-// TODO abstract further to support loading from more
-// than just files on disk. Should load reader (file, []byte)
 func newPage(filename string) *Page {
 	page := Page{contentType: "",
 		File:   File{FileName: filename, Extension: "html"},
@@ -207,7 +205,7 @@
 	return
 }
 
-func ReadFrom(buf io.Reader, name string) (page *Page, err error) {
+func NewPage(name string) (page *Page, err error) {
 	if len(name) == 0 {
 		return nil, errors.New("Zero length page name")
 	}
@@ -215,6 +213,10 @@
 	// Create new page
 	p := newPage(name)
 
+	return p, nil
+}
+
+func (p *Page) ReadFrom(buf io.Reader) (err error) {
 	// Parse for metadata & body
 	if err = p.parse(buf); err != nil {
 		jww.ERROR.Print(err)
@@ -224,7 +226,7 @@
 	//analyze for raw stats
 	p.analyzePage()
 
-	return p, nil
+	return nil
 }
 
 func (p *Page) analyzePage() {
--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -231,6 +231,10 @@
 	}
 }
 
+func (s *Site) Initialise() (err error) {
+	return s.initialize()
+}
+
 func (s *Site) initialize() (err error) {
 	if err = s.checkDirectories(); err != nil {
 		return err
@@ -317,7 +321,11 @@
 		go func(file *source.File) (err error) {
 			defer wg.Done()
 
-			page, err := ReadFrom(file.Contents, file.LogicalName)
+			page, err := NewPage(file.LogicalName)
+			if err != nil {
+				return err
+			}
+			err = page.ReadFrom(file.Contents)
 			if err != nil {
 				return err
 			}