diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2017-03-19 15:25:32 +0100 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2017-03-27 15:43:56 +0200 |
commit | c7c6b47ba8bb098cf9fac778f7818afba40a1e2f (patch) | |
tree | f02b2a70ba758949bcb180868200dbf8c1d2ae95 /hugolib/page_output.go | |
parent | 08fa2b112407c1fe180e6c02dd8fe63735608336 (diff) |
hubolib: Pick layout per output format
Diffstat (limited to 'hugolib/page_output.go')
-rw-r--r-- | hugolib/page_output.go | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/hugolib/page_output.go b/hugolib/page_output.go index de51a4401..fa9a45190 100644 --- a/hugolib/page_output.go +++ b/hugolib/page_output.go @@ -14,6 +14,7 @@ package hugolib import ( + "html/template" "sync" "github.com/spf13/hugo/output" @@ -81,3 +82,30 @@ func (p *PageOutput) copy() *PageOutput { } return c } + +func (p *PageOutput) layouts(layouts ...string) []string { + // TODO(bep) output the logic here needs to be redone. + if len(layouts) == 0 && len(p.layoutsCalculated) > 0 { + return p.layoutsCalculated + } + + layoutOverride := "" + if len(layouts) > 0 { + layoutOverride = layouts[0] + } + + return p.s.layoutHandler.For( + p.layoutDescriptor, + layoutOverride, + p.outputFormat) +} + +func (p *PageOutput) Render(layout ...string) template.HTML { + l := p.layouts(layout...) + return p.s.Tmpl.ExecuteTemplateToHTML(p, l...) +} + +// TODO(bep) output +func (p *Page) Render(layout ...string) template.HTML { + return p.mainPageOutput.Render(layout...) +} |