summaryrefslogtreecommitdiffstats
path: root/hugolib/page.go
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2017-03-18 16:46:10 +0100
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2017-03-27 15:43:56 +0200
commit6178238a0b069ae8ce65a23e3dd60c091de0cfef (patch)
treee4ddac46efc6324c2d79e3769eb6f5396e59745e /hugolib/page.go
parentdf953839143c15e147d35f8908ed7f02fb62a10a (diff)
output: Speed up layout calculations
``` BenchmarkLayout-4 4883 497 -89.82% benchmark old allocs new allocs delta BenchmarkLayout-4 18 1 -94.44% benchmark old bytes new bytes delta BenchmarkLayout-4 1624 32 -98.03% ```
Diffstat (limited to 'hugolib/page.go')
-rw-r--r--hugolib/page.go7
1 files changed, 5 insertions, 2 deletions
diff --git a/hugolib/page.go b/hugolib/page.go
index cad9b398b..1308aa49d 100644
--- a/hugolib/page.go
+++ b/hugolib/page.go
@@ -190,6 +190,8 @@ type Page struct {
permalink string
relPermalink string
+ layoutDescriptor output.LayoutDescriptor
+
scratch *Scratch
// It would be tempting to use the language set on the Site, but in they way we do
@@ -666,7 +668,7 @@ func (p *Page) layouts(layouts ...string) []string {
}
return p.s.layoutHandler.For(
- p.createLayoutDescriptor(),
+ p.layoutDescriptor,
layoutOverride,
output.HTMLType)
}
@@ -880,6 +882,7 @@ func (p *Page) initURLs() error {
p.permalink = p.s.permalink(rel)
rel = p.s.PathSpec.PrependBasePath(rel)
p.relPermalink = rel
+ p.layoutDescriptor = p.createLayoutDescriptor()
return nil
}
@@ -1558,7 +1561,7 @@ func (p *Page) Hugo() *HugoInfo {
func (p *Page) RSSlink() template.URL {
// TODO(bep) we cannot have two of these
// Remove in Hugo 0.20
- helpers.Deprecated(".Page", "Use RSSlink", "RSSLink", true)
+ helpers.Deprecated(".Page", "RSSlink", "Use RSSLink", true)
return p.RSSLink
}