mirror of
https://github.com/gohugoio/hugo.git
synced 2025-08-18 21:11:19 +02:00
Remove page module dependence on opening files
The site is responsible for reading files, page only operates on buffers.
This commit is contained in:
@@ -25,7 +25,6 @@ import (
|
||||
"github.com/theplant/blackfriday"
|
||||
"html/template"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"launchpad.net/goyaml"
|
||||
"os"
|
||||
"path/filepath"
|
||||
@@ -91,7 +90,7 @@ func getSummaryString(content []byte) ([]byte, bool) {
|
||||
|
||||
// TODO abstract further to support loading from more
|
||||
// than just files on disk. Should load reader (file, []byte)
|
||||
func NewPage(filename string) *Page {
|
||||
func newPage(filename string) *Page {
|
||||
page := Page{contentType: "",
|
||||
File: File{FileName: filename, Extension: "html"},
|
||||
Node: Node{Keywords: make([]string, 10, 30)},
|
||||
@@ -134,15 +133,6 @@ func StripHTML(s string) string {
|
||||
return output
|
||||
}
|
||||
|
||||
func (page *Page) Initalize() error {
|
||||
err := page.buildPageFromFile()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
page.analyzePage()
|
||||
return nil
|
||||
}
|
||||
|
||||
func (p *Page) guessSection() {
|
||||
if p.Section == "" {
|
||||
x := strings.Split(p.FileName, string(os.PathSeparator))
|
||||
@@ -186,7 +176,7 @@ func ReadFrom(buf io.Reader, name string) (page *Page, err error) {
|
||||
return nil, errors.New("Zero length page name")
|
||||
}
|
||||
|
||||
p := NewPage(name)
|
||||
p := newPage(name)
|
||||
|
||||
if err = p.parse(buf); err != nil {
|
||||
return
|
||||
@@ -360,7 +350,7 @@ var ErrMatchingEndingFrontMatterDelimiter = errors.New("unable to match ending f
|
||||
func (page *Page) parseFrontMatter(data *bufio.Reader) (err error) {
|
||||
|
||||
if err = checkEmpty(data); err != nil {
|
||||
return
|
||||
return fmt.Errorf("%s: %s", page.FileName, err)
|
||||
}
|
||||
|
||||
var mark rune
|
||||
@@ -487,22 +477,6 @@ func (p *Page) ExecuteTemplate(layout string) *bytes.Buffer {
|
||||
return buffer
|
||||
}
|
||||
|
||||
func (page *Page) readFile() (data []byte, err error) {
|
||||
data, err = ioutil.ReadFile(page.FileName)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return data, nil
|
||||
}
|
||||
|
||||
func (page *Page) buildPageFromFile() error {
|
||||
f, err := os.Open(page.FileName)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return page.parse(bufio.NewReader(f))
|
||||
}
|
||||
|
||||
func (page *Page) parse(reader io.Reader) error {
|
||||
data := bufio.NewReader(reader)
|
||||
|
||||
|
Reference in New Issue
Block a user