diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2017-03-18 16:46:10 +0100 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2017-03-27 15:43:56 +0200 |
commit | 6178238a0b069ae8ce65a23e3dd60c091de0cfef (patch) | |
tree | e4ddac46efc6324c2d79e3769eb6f5396e59745e /hugolib/page.go | |
parent | df953839143c15e147d35f8908ed7f02fb62a10a (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.go | 7 |
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 } |