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
}