summaryrefslogtreecommitdiffstats
path: root/hugolib/page.go
diff options
context:
space:
mode:
authorCameron Moore <moorereason@gmail.com>2016-12-26 15:23:20 -0600
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2017-03-11 17:52:25 +0100
commitf039e3be9e4a11808508c8cd3043b340deea040f (patch)
treedf3e709fc6321fd2a3e1d23efa2c3512d8ed4a94 /hugolib/page.go
parentddc8cc0082965143a650052a9aa538bac9133481 (diff)
parser: Refactor frontmatter parser and add tests
Lots of cleanups here: - Refactor InterfaceToConfig and InterfaceToFrontMatter to use io.Writer. - Simplify InterfaceToFrontMatter by wrapping InterfaceToConfig. - Export FrontmatterType since we return it in DetectFrontMatter. - Refactor removeTOMLIdentifier to avoid blindly replacing "+++". - Update HandleJSONMetaData to return an empty map on nil input. - Updates vendored goorgeous package and test for org-mode frontmatter. - Add tests and godoc comments. Coverage for parser package increased from 45.2% to 85.2%.
Diffstat (limited to 'hugolib/page.go')
-rw-r--r--hugolib/page.go13
1 files changed, 9 insertions, 4 deletions
diff --git a/hugolib/page.go b/hugolib/page.go
index 02f889d93..5ee31c2a8 100644
--- a/hugolib/page.go
+++ b/hugolib/page.go
@@ -1424,15 +1424,20 @@ func (p *Page) SetSourceMetaData(in interface{}, mark rune) (err error) {
}
}()
- var by []byte
+ buf := bp.GetBuffer()
+ defer bp.PutBuffer(buf)
- by, err = parser.InterfaceToFrontMatter(in, mark)
+ err = parser.InterfaceToFrontMatter(in, mark, buf)
if err != nil {
return
}
- by = append(by, '\n')
- p.Source.Frontmatter = by
+ _, err = buf.WriteRune('\n')
+ if err != nil {
+ return
+ }
+
+ p.Source.Frontmatter = buf.Bytes()
return
}